{"id":32475,"date":"2019-10-31T21:47:15","date_gmt":"2019-10-31T18:47:15","guid":{"rendered":"https:\/\/prohoster.info\/blog\/platforma-1s-predpriyatie-chto-pod-kapotom\/"},"modified":"2019-10-31T21:47:15","modified_gmt":"2019-10-31T18:47:15","slug":"platforma-1s-predpriyatie-chto-pod-kapotom","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","title":{"rendered":"Platvorm \"1C: Enterprise\" \u2014 mis peitub kapoti all?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, Habr! <br \/>\nSelles artiklis alustame juttu sellest, kuidas see on korraldatud seestpoolt <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">platvorm \u00ab1C:Ettev\u00f5te 8\u00bb<\/a><\/noindex> ja milliseid tehnoloogiaid kasutatakse selle arendamisel.<\/p>\n<p><img decoding=\"async\" alt=\"Platvorm &quot;1C: Enterprise&quot; \u2014 mis peitub kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/9375ea3be32979a7d8c72239dfd50f07.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMiks me arvame, et see on huvitav? Esiteks, sest platvorm \u00ab1C:Ettev\u00f5te 8\u00bb on suur (\u00fcle 10 miljoni koodirea) C++ (kliendi, serveri jne), JavaScripti (veebi klient) rakendus ja hiljuti ka <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Java<\/a><\/noindex>. Suured projektid on huvitavad v\u00e4hemalt oma ulatuse t\u00f5ttu, kuna k\u00fcsimused, mis j\u00e4\u00e4vad m\u00e4rkamatuks v\u00e4ikestes koodibaasides, t\u00f5usevad sellistes projektides esile. Teiseks, \u00ab1C:Ettev\u00f5te\u00bb on reprodutseeritav, \u201ekarbihindadega\u201d toode ning selliste arenduste kohta on Habrisis \u00fcsna v\u00e4he artikleid. Ja alati on huvitav teada saada, kuidas teistes meeskondades ja ettev\u00f5tetes elatakse.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNiisiis, alustame. Selles artiklis anname \u00fclevaate m\u00f5ningatest tehnoloogiatest, mida rakendatakse platvormil, ja joonistame maastikku, s\u00fcvitsi minemata rakendusse. Paljude mehhanismide kohta on \u00fcksikasjalik jutt pigem eraldi artikkel v\u00f5i isegi terve raamat!<br \/>\nEsmalt tasub paika panna p\u00f5hiasjad \u2014 mis on platvorm \u00ab1C:Ettev\u00f5te\u00bb ja millest see koosneb. Sellele k\u00fcsimusele pole lihtne vastata, kuna termina \u00abPlatvorm\u00bb all m\u00f5istetakse l\u00fchidalt nii \u00e4rirakenduste arendust\u00f6\u00f6riistu, k\u00e4ituskeskkonda kui ka haldusvahendeid. \u00dcldiselt v\u00f5ib v\u00e4lja tuua j\u00e4rgmised osad:<\/p>\n<ul>\n<li>serverite klaster<\/li>\n<li>\u201epeen\u201d klient, mis suudab serveriga \u00fchendada http ja oma binaarprotokolli kaudu<\/li>\n<li>kliendi rakendus kaheastmelise arhitektuuriga, mis t\u00f6\u00f6tab andmebaasiga, mis asub k\u00f5vakettal v\u00f5i v\u00f5rgu kaustas<\/li>\n<li>veebi klient<\/li>\n<li>rakenduste serveri haldustooted<\/li>\n<li>arenduskeskkond (tuntud kui Konfigurator)<\/li>\n<li>teostuskeskkond iOS, Android ja Windows Phone jaoks (mobiilne platvorm 1C)<\/li>\n<\/ul>\n<p>\nK\u00f5ik need osad, v\u00e4lja arvatud veebi klient, on kirjutatud C++ keeles. Lisaks on hiljuti kuulutatud v\u00e4lja <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">uue p\u00f5lvkonna Konfigurator<\/a><\/noindex>, mis on kirjutatud Java keeles.<\/p>\n<h3>Kohalikud rakendused<\/h3>\n<p>\nNative rakenduste arendamiseks kasutatakse C++03. Windowsi all kasutatakse kompilaatorina Microsoft Visual C++ 12 (Windows XP \u00fchilduv profiil), Linuxi ja Androidi puhul gcc 4.8 ning iOS-i puhul clang 5.0. Standardbiblioteek, mida kasutatakse, on k\u00f5igi OS-ide ja kompilaatorite jaoks \u00fchine \u2014 STLPort. See lahendus v\u00e4hendab STL-i teostusele iseloomulike vigade tekkimise t\u00f5en\u00e4osust. Praegu plaanime \u00fcleminekut STL-ile, mida tarnib CLang, kuna STLPort on oma arendamise l\u00f5petanud ja ei \u00fchildu gcc-s lubatud C++11 toe re\u017eiimiga.<br \/>\nServeri koodibaas on sel juhul 99% \u00fchine, kliendi oma 95%. Pealegi kasutab isegi mobiiliplatvorm sama C++ koodi, mis \"suurem\", kuigi seal on \u00fchtlustamise protsent veidi madalam. <br \/>\nNagu enamik C++ kasutajaid, ei pretendeerime me keele ja selle raamatukogude 100% v\u00f5imaluste kasutamisele. Niisiis, meil ei kasutata praktiliselt Boost'i ning keele v\u00f5imalustest \u2014 d\u00fcnaamilist t\u00fc\u00fcpide konverteerimist. Sellegipoolest kasutame aktiivselt:<\/p>\n<ul>\n<li>STL (eriti stringid, konteinerid ja algoritmid)<\/li>\n<li>mitme p\u00e4randi, sealhulgas mitme p\u00e4randi teostamine<\/li>\n<li>\u0161abloone<\/li>\n<li>kuumale koodide asendamisele<\/li>\n<li>nutikaid pointereid (oma teostus)<\/li>\n<\/ul>\n<p>\nMitme p\u00e4randi liideste (t\u00e4iesti abstraktsete klasside) kasutamine v\u00f5imaldab komponentide mudelit, millest r\u00e4\u00e4gime allpool.<\/p>\n<h3>Komponendid<\/h3>\n<p>\nMoodulsuse tagamiseks on kogu funktsionaalsus jagatud komponentideks, mis on d\u00fcnaamilised raamatukogud (*.dll Windowsi all, *.so Linuxi all). Kokku on komponente rohkem kui sada viisk\u00fcmmend, toome v\u00e4lja m\u00f5ne nende kirjeldused:<\/p>\n<p>backend<br \/>\nSisaldab platvormi metaandmete \"mootorit\"<\/p>\n<p>accnt<br \/>\nObjektid, mida rakendusarendajad kasutavad raamatupidamise loomisel (arvelduskavad ja raamatupidamise registrid)<\/p>\n<p>bsl<br \/>\nSiseprogrammi teostuse mootori mootor<\/p>\n<p>nuke<br \/>\nOma m\u00e4lu allocatori teostus<\/p>\n<p>dbeng8<br \/>\nFailibaasi mootori. Lihtne failiserveri andmebaas, mis on p\u00f5hinev ISAM-il ja sisaldab ka lihtsat SQL-protsessorit<\/p>\n<p>wbase<br \/>\nSisaldab baasklasse ja funktsioone Windowsi kasutajaliidese rakendamiseks \u2014 aknaklassid, juurdep\u00e4\u00e4s GDI ja t.<\/p>\n<p>\nJagamine mitmeks komponendiks on kasulik mitmest vaatenurgast:<\/p>\n<ul>\n<li>Jagamine soosib paremat disaini, eriti koodi paremat isoleerimist.<\/li>\n<li>Komponentide komplektist saab paindlikult koostada erinevaid tarnimisvalikuid:\n<ul>\n<li>N\u00e4iteks h\u00f5lmas \u00f5huke klient, kuid ei sisaldanud backend'i<\/li>\n<li>ja serveris wbase, vastupidi, ei ole<\/li>\n<li>Kuid m\u00f5lemad variandid sisaldavad loomulikult nuke'i ja bsl'i<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nK\u00f5ik vajaliku k\u00e4ivitamiseks vajalikud komponendid laaditakse programmi k\u00e4ivitamisel. See on vajalik SCOM klasside registreerimiseks, millest juttu tuleb hiljem.<\/p>\n<h3>SCOM<\/h3>\n<p>\nMadalamal tasemel dekodeerimiseks kasutatakse SCOM s\u00fcsteemi, mis on ideoloogiliselt sarnane ATL raamatukogule. Neile, kes ei ole ATL-iga t\u00f6\u00f6tanud, loetleme l\u00fchidalt p\u00f5hiv\u00f5imalused ja omadused. <br \/>\nEespecialiseeritud SCOM klassi jaoks:<\/p>\n<ul>\n<li>Pakkuda tehase meetodeid, mis v\u00f5imaldavad luua klassi, teades ainult selle nime (ilma rakenduse avalikustamiseta)<\/li>\n<li>Pakkuda nutikate n\u00e4idikute infrastruktuuri koos viidete loendamisega. SCOM klassi eluea \u00fcle ei pea k\u00e4sitsi j\u00e4lgima<\/li>\n<li>V\u00f5imaldab teada saada, kas objekt rakendab konkreetset liidest ja automaatselt viia objekti n\u00e4idik liidese n\u00e4idikuks<\/li>\n<li>Luua teenusobjekt, mis on alati saadaval meetodi get_service kaudu jne.<\/li>\n<\/ul>\n<p>\nN\u00e4iteks v\u00f5ib manustada komponendis json.dll klassi JSON-i lugemiseks (n\u00e4iteks JSONStreamReader).<br \/>\nKlassid, eksemplarid saab luua teistest komponentidest, registreerides SCOM-masinas:<\/p>\n<pre><code class=\"cpp\">SCOM_CLASS_ENTRY(JSONStreamReader)\n<\/code><\/pre>\n<p>\nSee makro kirjeldab spetsiaalset staatilist klassiregistrit, mille konstruktor kutsutakse \u00fcles komponentide m\u00e4lu laadimisel.<br \/>\nP\u00e4rast seda saab luua selle eksemplari teises komponendis:<\/p>\n<pre><code class=\"cpp\">IJSONStreamReaderPtr jsonReader = create_instance(SCOM_CLSIDOF(JSONStreamReader));\n<\/code><\/pre>\n<p>\nTeenuste toetamiseks pakub SCOM t\u00e4iendavat, piisavalt keerulist infrastruktuuri. Selle keskmes on SCOM-protsessi m\u00f5isted, mis toimib k\u00e4itatud teenuste konteinerina (st tegutseb Teenuse Locatorina) ja sisaldab ka sidumist lokaliseeritud ressurssidega. SCOM protsess sidub end OS-i l\u00f5imiga. Selle t\u00f5ttu saab rakenduse sees teenuseid j\u00e4rgmiselt hankida:<\/p>\n<pre><code class=\"cpp\">SCOM_Process* process = core::current_process();\nif (process)\n         return get_service(process);\n<\/code><\/pre>\n<p>\nLisaks sellele, et vahetades loogilisi (SCOM) protsesse, mis on seotud vooga, on v\u00f5imalik saavutada praktiliselt s\u00f5ltumatud rakendused teabepinna m\u00f5ttes, mis t\u00f6\u00f6tavad \u00fche voolu raames. Nii on \u00fcles ehitatud meie \u00f5huke klient, mis t\u00f6\u00f6tab failibaasi kasutades \u2014 \u00fche operatsioonis\u00fcsteemi protsessi sees on kaks SCOM-protsessi, \u00fcks on seotud kliendi ja teine serveriga. Selline l\u00e4henemine v\u00f5imaldab standardiseerida koodi kirjutamist, mis t\u00f6\u00f6tab nii kohalikus failibaasis kui ka \u201ep\u00e4ris\u201c kliendi-serveri variandina. Sellise \u00fchtsuse hind on t\u00e4iendavad kulud, kuid praktika n\u00e4itab, et need on seda v\u00e4\u00e4rt.<\/p>\n<p>Komponentide mudeli SCOM p\u00f5hjal on rakendatud nii \u00e4riloogika kui ka liidese osa 1C: Ettev\u00f5tte jaoks.<\/p>\n<h3>Kasutajaliides<\/h3>\n<p>\nMuide, liidestest. Me ei kasuta Windowsi standardkontrolle, meie juhtseadmed on otseselt rakendatud Windows API-le. Linuxi versiooni jaoks on loodud kiht, mis t\u00f6\u00f6tab wxWidgets teegi kaudu.<br \/>\nKontrollide teek ei s\u00f5ltu teistest \u201e1C: Ettev\u00f5tte\u201c osadest ja seda kasutatakse ka mitmes teises v\u00e4ikestes sisemistes utiliitides.<\/p>\n<p>1C: Ettev\u00f5tte arenguaastate jooksul on kontrollide v\u00e4limus muutunud, kuid p\u00f5him\u00f5tetesse toimusid olulised muutused vaid \u00fcks kord, 2009. aastal, versiooni 8.2 v\u00e4ljalaskmisega ja \u201ehaldatud vormide\u201c tutvustamisega. Lisaks v\u00e4limuse muutusele on fundamentaalselt muutunud ka vormi komponeerimise printsiip - on loobutud piksel-piksel positsioneerimise printsiibist elementide voogkompodeerimise kasuks. Samuti t\u00f6\u00f6tavad uue mudeli kontrollid mitte otse domeeni objektidega, vaid spetsiaalsete DTO-dega (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DTO\">Andmeedastusobjektid<\/a><\/noindex>).<br \/>\nNeed muudatused v\u00f5imaldasid luua veebiklient \u201e1C: Ettev\u00f5tte\u201c, mis kordab C++ loogikat kontrollide osas JavaScriptis. Me p\u00fc\u00fcame s\u00e4ilitada funktsionaalset ekvivalentsust \u00f5hukese ja veebikliendi vahel. Juhul, kui see pole v\u00f5imalik, n\u00e4iteks JavaScripti API kaudu k\u00e4tte saadavatest piirangutest tulenevalt (n\u00e4iteks failide t\u00f6\u00f6tlemise v\u00f5imalused on v\u00e4ga piiratud), rakendame sageli vajaliku funktsionaalsuse brauseri laienduste kaudu, mis on kirjutatud C++-s. Praegu toetame Internet Explorerit ja Microsoft Edge'i (Windows), Google Chrome'i (Windows), Firefoxi (Windows ja Linux) ning Safari't (MacOS).<\/p>\n<p>Lisaks kasutatakse hallatavate vormide tehnoloogiat 1C mobiilirakenduste liidese loomiseks. Mobiilseadmetes on juhtseadmete joonistamine rakendatud operatsioonis\u00fcsteemi \"loomulike\" tehnoloogiate abil, kuid vormi kompositsiooniloogika ja liidese reaktsioonide jaoks kasutatakse sama koodi, mis ka suurem platform \"1C:Ettev\u00f5te\".<\/p>\n<p><img decoding=\"async\" alt=\"Platvorm &quot;1C: Enterprise&quot; \u2014 mis peitub kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/a4a87ca99cef465e82429739a8845300.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1C liides Linuxi operatsioonis\u00fcsteemis<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Platvorm &quot;1C: Enterprise&quot; \u2014 mis peitub kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/23f48ade4e28242104bfd4e9099800e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1C liides mobiilseadmes<\/i><\/p>\n<p><b class=\"spoiler_title\">1C liides teistel platvormidel<\/b> <img decoding=\"async\" alt=\"Platvorm &quot;1C: Enterprise&quot; \u2014 mis peitub kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/d04d2431d8c5240d44acce675d837018.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>1C liides Windowsi operatsioonis\u00fcsteemis<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Platvorm &quot;1C: Enterprise&quot; \u2014 mis peitub kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/a443f6e2d1cb95e256e0dcff4fe139d2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>1C \u2014 veebiklient<\/i><\/p>\n<p><\/p>\n<h3>Avatud l\u00e4htekoodiga<\/h3>\n<p>\nKuigi me ei kasuta Windowsi jaoks C++ arendajate standardraamatukogusid (MFC, WinAPI juhtseaded), ei kirjuta me k\u00f5iki komponente ise. Olemme juba maininud raamatukogu <noindex><a rel=\"nofollow\" href=\"http:\/\/www.wxwidgets.org\/\">wxWidgets<\/a><\/noindex>, ja kasutame veel:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> HTTP ja FTP t\u00f6\u00f6tluseks. <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> kr\u00fcptograafia ja TLS \u00fchenduste seadistamiseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.xmlsoft.org\/\">libxml2 ja libxslt<\/a><\/noindex> XML-i anal\u00fc\u00fcsimiseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> postaliste protokollide (POP3, SMTP, IMAP) t\u00f6\u00f6tluseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.codesink.org\/mimetic_mime_library.html\">mimetic<\/a><\/noindex> e-kirjade s\u00f5numite anal\u00fc\u00fcsimiseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.sqlite.org\/\">sqllite<\/a><\/noindex> kasutajate t\u00f6\u00f6logsude salvestamiseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/site.icu-project.org\/\">ICU<\/a><\/noindex> rahvusvaheliseks lokaliseerimiseks<\/li>\n<\/ul>\n<p>\nLoetelu v\u00f5iks j\u00e4tkuda.<br \/>\nLisaks kasutame tugevalt muudetud versiooni <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googletest\/\">Google Test<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googlemock\/\">Google Mock<\/a><\/noindex> \u00fcksuste testide arendamisel.<br \/>\nRaamatukogud n\u00f5udsid SCOM mudeliga komponentide \u00fchilduvuseks kohandamist.<br \/>\n1C laialdane kasutamine teeb platvormist suurep\u00e4rase testi selle raamatukogude vastupidavuse osas. Kasutajate ja stsenaariumide mitmekesisus tuvastab kiiresti vigu isegi k\u00f5ige harvemini kasutatavates koodiosa. Me parame need enda juures ja p\u00fc\u00fcame tagasi anda raamatukogude autoritele. Koost\u00f6\u00f6 kogemus on olnud v\u00e4ga erinev.<br \/>\nArendajad <noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> ja <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> kiiresti reageerivad pull-request'idele, kuid n\u00e4iteks pat\u0161i <noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> me ei saanud kunagi \u00e4ra anda.<\/p>\n<h3>Kokkuv\u00f5te<\/h3>\n<p>\nArtiklis k\u00e4sitlesime mitmeid peamisi aspekte 1C: Ettev\u00f5tte platvormi arendamisest. Artikli piiratud mahus k\u00e4sitlesime ainult m\u00f5ningaid huvitavaid aspekte, meie arvates. <br \/>\nPlatvormi erinevate mehhanismide \u00fcldise kirjelduse leiate <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">siit<\/a><\/noindex>.<br \/>\nMillised teemad oleksid teile huvipakkuvad j\u00e4rgmistes artiklites?<\/p>\n<p>Kuidas on mobiiliplatvorm 1C rakendatud?<br \/>\nVeebiklientide sisemiste seadmete kirjeldus? <br \/>\nV\u00f5i on teil huvi uute versioonide funktsioonide valimise, arendamise ja testimise protsessi vastu?<\/p>\n<p>Kirjuta kommentaarides!<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/1c\/blog\/269611\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440! \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u043d\u0430\u0447\u043d\u0435\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421:\u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435 8\u00bb \u0438 \u043a\u0430\u043a\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0440\u0438 \u0435\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435. \u041f\u043e\u0447\u0435\u043c\u0443 \u043c\u044b \u0441\u0447\u0438\u0442\u0430\u0435\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e? \u0412\u043e-\u043f\u0435\u0440\u0432\u044b\u0445, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421:\u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435 8\u00bb \u2014 \u044d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 (\u0431\u043e\u043b\u0435\u0435 10 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430) \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 C++ (\u043a\u043b\u0438\u0435\u043d\u0442, \u0441\u0435\u0440\u0432\u0435\u0440 \u0438 \u0442.\u0434.), JavaScript (\u0432\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442), \u0438, \u0441 \u043d\u0435\u0434\u0430\u0432\u043d\u0438\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24279,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421: \u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435\u00bb \u2014 \u0447\u0442\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c? | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:47:15+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:47:15+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Platvorm \"1C: Ettev\u00f5te\" \u2014 mis on kapoti all? | ProHoster","description":"Tere, Habr!","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u00ab1\u0421: \u041f\u0440\u0435\u0434\u043f\u0440\u0438\u044f\u0442\u0438\u0435\u00bb \u2014 \u0447\u0442\u043e \u043f\u043e\u0434 \u043a\u0430\u043f\u043e\u0442\u043e\u043c? | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440!","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:47:15+00:00","article:modified_time":"2019-10-31T18:47:15+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32475","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 11:03:20","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:58:23","updated":"2026-01-21 11:03:20","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/32475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=32475"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/32475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/24279"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=32475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=32475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=32475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}