{"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 \u00ab1C: Ettev\u00f5te\u00bb \u2014 mis on kapoti all?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Tere, Habr! <br \/>\nSelles artiklis alustame jutustamist sellest, kuidas see seestpoolt t\u00f6\u00f6tab <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">platvorm \u00ab1C: Ettev\u00f5te 8\u00bb<\/a><\/noindex> ja milliseid tehnoloogiaid selle arendamisel kasutatakse.<\/p>\n<p><img decoding=\"async\" alt=\"Platvorm \u00ab1C: Ettev\u00f5te\u00bb \u2014 mis on 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 koodi rea) rakendus C++ keeles (kliendi-, serveri jne), JavaScriptis (veebi klient) ning, mis on hiljuti lisandunud, <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Java<\/a><\/noindex>. Suured projektid on huvitavad juba oma suuruse t\u00f5ttu, sest k\u00fcsimused, mis v\u00e4ikestes koodibaasides j\u00e4\u00e4vad m\u00e4rkamatuks, muutuvad sellistes projektides selgelt n\u00e4htavaks. Teiseks, \u00ab1C: Ettev\u00f5te\u00bb on korduv, \u201ekarbikeskus\u201c, ja artikleid selliste arenduste kohta Habras on v\u00e4ga v\u00e4he. Ja alati on huvitav teada saada, kuidas teistes meeskondades ja ettev\u00f5tetes elatakse.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nNii et alustame. Selles artiklis anname \u00fclevaate m\u00f5nedest tehnoloogiatest, mida platvormis kasutatakse, visandame maastiku, ilma s\u00fcgavale rakendamisse s\u00fcvenemata. Sest paljude mehhanismide detailne arutelu tooks kaasa eraldi artikli, m\u00f5nedel aga terve raamatu!<br \/>\nAlustuseks tasub selgusele j\u00f5uda, mis on \u00ab1C:Ettev\u00f5te\u00bb platvorm ja millest see koosneb. Vastus sellele k\u00fcsimusele pole nii lihtne, sest termini \u00abPlatvorm\u00bb (tutvumisteks nimetame seda lihtsalt nii) alla kuuluvad nii \u00e4rirakenduste arendamise vahend kui ka k\u00e4ituskeskkond ja haldustooted. \u00dcldiselt v\u00f5ib eristada j\u00e4rgmisi komponente:<\/p>\n<ul>\n<li>serverikluster<\/li>\n<li>\u00ab\u00f5huke\u00bb klient, mis suudab serveriga \u00fchendada http ja oma binaarprotokolli kaudu<\/li>\n<li>klient t\u00f6\u00f6ks kahetasandilises arhitektuuris andmebaasiga, mis asub k\u00f5vakettal v\u00f5i v\u00f5rgu kaustas<\/li>\n<li>veebiklient<\/li>\n<li>rakenduste serveri haldustooted<\/li>\n<li>arenduskeskkond (tuntud kui Konfigureerija)<\/li>\n<li>k\u00e4ituskeskkond iOS, Android ja Windows Phone jaoks (mobiilne 1C platvorm)<\/li>\n<\/ul>\n<p>\nK\u00f5ik need osad, v\u00e4lja arvatud veebiklient, on kirjutatud C++-s. Lisaks on \u00e4sja v\u00e4lja kuulutatud <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">uus p\u00f5lvkond Konfigureerijat<\/a><\/noindex>, mis on kirjutatud Java-s.<\/p>\n<h3>Natiivrakendused<\/h3>\n<p>\nNatiivsete rakenduste arendamiseks kasutatakse C++03. Windowsi puhul kasutatakse kompilatorina Microsoft Visual C++ 12 (Windows XP \u00fchilduv profiil) ning Linuxi ja Androidi puhul gcc 4.8, iOS-i puhul aga clang 5.0. Standardbiblioteek on k\u00f5igi ops\u00fcsteemide ja kompil\u00e1torite jaoks \u00fchtne \u2014 STLPort. See lahendus v\u00e4hendab STL-i rakendusega seotud vigu. Praegu kavatseme \u00fcle minna STL-i rakendusele, mida pakub CLang, kuna STLPort on oma arenduse l\u00f5petanud ja ei \u00fchildu gcc-s sisse l\u00fclitatud C++11 toetusega.<br \/>\nServeri koodibaas on 99% jagatud, kliendi oma aga 95%. Veelgi enam, isegi mobiilplatvorm kasutab sama C++ koodi, mis 'suurem', kuigi seal on \u00fchtsuse m\u00e4\u00e4r veidi madalam. <br \/>\nNagu enamik C++ kasutajaid, ei p\u00fc\u00fca me kasutada k\u00f5iki keele ja selle raamatukogude funktsioone. N\u00e4iteks kasutame harva Boost'i ning keele v\u00f5imalustest peaaegu mitte \u00fcldse d\u00fcnaamilist t\u00fc\u00fcpide teisendamist. Samas rakendame aktiivselt:<\/p>\n<ul>\n<li>STL (eriti stringid, konteinerid ja algoritmid)<\/li>\n<li>mitmikp\u00e4rand, sealhulgas mitmikp\u00e4rand rakendustest<\/li>\n<li>mallid<\/li>\n<li>erandid<\/li>\n<li>nutikad viidikud (enda lahendus)<\/li>\n<\/ul>\n<p>\nLiideste (t\u00e4ielikult abstraktsete klasside) mitmekordse p\u00e4rimise kasutamine v\u00f5imaldab komponentide mudelit, millest r\u00e4\u00e4gitakse edasi.<\/p>\n<h3>Komponendid<\/h3>\n<p>\nModulaarsuse tagamiseks on kogu funktsionaalsus jagatud komponentideks, mis on d\u00fcnaamilised raamatukogud (*.dll Windowsi jaoks, *.so Linuxi jaoks). Komponente on kokku rohkem kui poolsada, toome v\u00e4lja m\u00f5nede nende kirjeldused:<\/p>\n<p>tagaosa<br \/>\nSisaldab platvormi metaandmete \"mootorit\"<\/p>\n<p>accnt<br \/>\nObjektid, mida rakenduste arendajad kasutavad raamatupidamise koostamiseks (bilansi plaanid ja raamatupidamisregister)<\/p>\n<p>bsl<br \/>\nSisseehitatud keele t\u00e4itev mootor<\/p>\n<p>nuke<br \/>\nOma m\u00e4lu jaoturi teostus<\/p>\n<p>dbeng8<br \/>\nFailide andmebaasi mootor. Lihtne failiserveri andmebaasimootor, mis p\u00f5hineb ISAM-il ning sisaldab ka lihtsat SQL-protsessorit<\/p>\n<p>wbase<br \/>\nSisaldab p\u00f5hilisi klasse ja funktsioone Windowsi kasutajaliidese rakendamiseks \u2014 aknaklassid, juurdep\u00e4\u00e4s GDI-le jne.<\/p>\n<p>\nJaotamine mitmeks komponendiks on kasulik mitmest vaatepunktist:<\/p>\n<ul>\n<li>Jaotamine aitab parema disaini saavutamisele, sealhulgas koodi paremale isoleerimisele.<\/li>\n<li>Komponentide komplektist saab paindlikult kokku panna erinevaid tarnevariante:\n<ul>\n<li>N\u00e4iteks, \u00f5hukese kliendi installatsioon sisaldab wbase'i, kuid mitte backend'i<\/li>\n<li>ja serveris on vastupidi, wbase puudub<\/li>\n<li>M\u00f5lemad variandid sisaldavad kindlasti nuke'i ja bsl'i<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nK\u00f5ik selle k\u00e4ivitamise variandi jaoks vajalikud komponendid laaditakse programmi alguses. See on vajalik SCOM klasside registreerimiseks, mille kohta allpool juttu tuleb.<\/p>\n<h3>SCOM<\/h3>\n<p>\nMadalamal tasemel dekomponeerimiseks kasutatakse SCOM s\u00fcsteemi \u2014 ideoloogiliselt sarnane ATL raamatukogule. Neile, kes ei ole ATL-iga t\u00f6\u00f6tanud, l\u00fchike loetelu peamistest v\u00f5imalustest ja omadustest. <br \/>\nSpetsiaalselt vormistatud SCOM klassi jaoks:<\/p>\n<ul>\n<li>Pakkub tehase meetodeid, mis v\u00f5imaldavad luua klassi teisest komponendist, teades ainult selle nime (ilma rakenduse avamiseta)<\/li>\n<li>Pakub nutikate viidete infrastruktuuri koos viidete arvestusega. SCOM klassi eluea eest ei pea k\u00e4sitsi j\u00e4lgima<\/li>\n<li>Lubab teada, kas objekt rakendab kindlat interfaa\u017ei ja automaatselt viia objekti viidatud interfaa\u017eiks<\/li>\n<li>Luua teenuse objekt, mis on alati kergesti k\u00e4ttesaadav meetodi get_service kaudu jne.<\/li>\n<\/ul>\n<p>\nN\u00e4iteks v\u00f5ib json.dll komponendis kirjeldada klassi, mis loeb JSON-i (n\u00e4iteks JSONStreamReader).<br \/>\nKlasse ja eksemplare, mida saab luua teistest komponentidest, tuleb registreerida SCOM-masinas:<\/p>\n<pre><code class=\"cpp\">SCOM_CLASS_ENTRY(JSONStreamReader)\n<\/code><\/pre>\n<p>\nSee makro kirjeldab spetsiifilist staatilist klassi-registraatorit, mille konstruktor kutsutakse \u00fcles, kui komponent laaditakse m\u00e4llu.<br \/>\nP\u00e4rast seda saab selle eksemplari luua teises komponendis:<\/p>\n<pre><code class=\"cpp\">IJSONStreamReaderPtr jsonReader = create_instance&lt;IJSONStreamReader&gt;(SCOM_CLSIDOF(JSONStreamReader));\n<\/code><\/pre>\n<p>\nSCOM toetab teenuste jaoks t\u00e4iendavat ja piisavalt keerulist infrastruktuuri. Keskne m\u00f5isted on SCOM-protsess, mis teenib konteinerina k\u00e4ivitatud teenustele (st toimib Teenuse Otsijana) ja sisaldab samuti sidumist lokaliseeritavate ressurssidega. SCOM protsess seondub OS-i l\u00f5imuga. T\u00e4nu sellele saab rakenduses teenuseid sellisel moel saada:<\/p>\n<pre><code class=\"cpp\">SCOM_Process* process = core::current_process();\nif (process)\n         return get_service&lt;IMyService&gt;(process);\n<\/code><\/pre>\n<p>\nLisaks, l\u00fclitades loogilisi (SCOM) protsesse, mis on seotud vooluga, saab praktiliselt iseseisvaid rakendusi, mis toimivad \u00fche voolu raames. Selline on meie \u00f5huke klient, mis t\u00f6\u00f6tab failibaasiga \u2014 \u00fche OPS-protsessi sees on kaks SCOM-protsessi, \u00fcks on seotud kliendi ja teine serveriga. Selline l\u00e4henemine v\u00f5imaldab koodi kirjutamise \u00fchtsust, mis t\u00f6\u00f6tab nii kohaliku failibaasi kui ka \"reaalses\" kliendiserveri variandis. Sellise \u00fchtsuse hind on kulud, kuid praktika n\u00e4itab, et need on seda v\u00e4\u00e4rt.<\/p>\n<p>SCOM-i komponentide mudel 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 juhtseadmestikud on otse realiseeritud Windows API-s. Linuxi versiooni jaoks on loodud vahekiht, mis t\u00f6\u00f6tab wxWidgets'i raamatukogu kaudu.<br \/>\nJuhtseadmestike teek ei s\u00f5ltu mujalt 1C: Ettev\u00f5tte osadest ja seda kasutatakse ka mitmes muus v\u00e4ikestes sisemistes utiliitides.<\/p>\n<p>1C:Enterprise'i arendamise aastate jooksul on kontrollide v\u00e4limus muutunud, kuid p\u00f5him\u00f5ttelised muudatused toimusid ainult kord, 2009. aastal, versiooni 8.2 v\u00e4ljastamisega ja \u201ehallitavate vormide\u201c ilmumisega. Lisaks v\u00e4limuse muutumisele muutus fundamentaalselt ka vormi koostamise p\u00f5him\u00f5te \u2014 loobuti pikselip\u00f5hisest elementide paigutamisest elementide voogude koostamise kasuks. Lisaks sellele t\u00f6\u00f6tavad uues mudelis juhtnupud mitte otse domeeni objektidega, vaid spetsiaalsete DTO-dega (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DTO\">Data Transfer Objects<\/a><\/noindex>).<br \/>\nNeed muutused v\u00f5imaldasid luua 1C:Enterprise'i veebikliendi, mis kordab C++ kontrollide loogikat JavaScriptis. P\u00fc\u00fcame s\u00e4ilitada funktsionaalset ekvivalentsi \u00f5hukese ja veebikliendi vahel. Kui see pole v\u00f5imalik, n\u00e4iteks JavaScripti API-st saadud piirangute t\u00f5ttu (nt failidega t\u00f6\u00f6tamise v\u00f5imalused on v\u00e4ga piiratud), rakendame sageli vajaliku funktsionaalsuse brauseri laienduste abil, mis on kirjutatud C++. Hetkel toetame Internet Exploreri ja Microsoft Edge\u2019i (Windows), Google Chrome\u2019i (Windows), Firefoxi (Windows ja Linux) ja Safari (MacOS).<\/p>\n<p>Lisaks kasutatakse hallatud vormide tehnoloogiat 1C mobiilirakenduste liidese loomisel. Mobiilseadmetes on juhtnuppude joonistamine rakendatud operatsioonis\u00fcsteemile 'looduslike' tehnoloogiate abil, kuid vormi paigutuse ja liidese reageerimise loogika jaoks kasutatakse sama koodi nagu suurtes 1C: Ettev\u00f5te platvormides.<\/p>\n<p><img decoding=\"async\" alt=\"Platvorm \u00ab1C: Ettev\u00f5te\u00bb \u2014 mis on kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/a4a87ca99cef465e82429739a8845300.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>1C liides Linuxi operatsioonis\u00fcsteemil<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Platvorm \u00ab1C: Ettev\u00f5te\u00bb \u2014 mis on 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 \u00ab1C: Ettev\u00f5te\u00bb \u2014 mis on kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/d04d2431d8c5240d44acce675d837018.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>1C liides Windowsi operatsioonis\u00fcsteemil<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Platvorm \u00ab1C: Ettev\u00f5te\u00bb \u2014 mis on kapoti all?\" src=\"\/wp-content\/uploads\/2019\/04\/a443f6e2d1cb95e256e0dcff4fe139d2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>1C liides \u2013 veebiklient<\/i><\/p>\n<p><\/p>\n<h3>Avatud l\u00e4htekood<\/h3>\n<p>\nKuigi me ei kasuta Windowsile t\u00fc\u00fcpilisi C++ arendaja raamatukogusid (MFC, WinAPI juhtnupud), ei kirjuta me k\u00f5iki komponente ise. Juba oli mainitud raamatukogu <noindex><a rel=\"nofollow\" href=\"http:\/\/www.wxwidgets.org\/\">wxWidgets<\/a><\/noindex>, ja lisaks kasutame:<\/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> postiprotokollidega (POP3, SMTP, IMAP) t\u00f6\u00f6tamiseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.codesink.org\/mimetic_mime_library.html\">mimetic<\/a><\/noindex> kliendimeili s\u00f5numite anal\u00fc\u00fcsimiseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.sqlite.org\/\">sqlite<\/a><\/noindex> kasutajate t\u00f6\u00f6logide salvestamiseks<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/site.icu-project.org\/\">ICU<\/a><\/noindex> rahvusvahelisteks t\u00f6\u00f6deks<\/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> \u00fcksuse testide arendamisel.<br \/>\nRaamatukogude kohandamine oli vajalik, et need oleksid \u00fchilduvad organisatsiooni komponentide SCOM mudeliga.<br \/>\n1C laialdane levik muudab platvormi suurep\u00e4raseks katses\u00fcsteemiks kasutatavate raamatukogade jaoks. Kasutajate ja stsenaariumide mitmekesisus avastab vead kiiresti isegi k\u00f5ige harvemini kasutatavates koodi osades. Me parandame need enda juures ja p\u00fc\u00fcame need raamatukogude autoritele tagasi anda. Koost\u00f6\u00f6 kogemus on 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> reageerivad kiiresti pull-request'idele, kuid n\u00e4iteks plaastrit <noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> ei ole me siiani suutnud tagasi anda.<\/p>\n<h3>Kokkuv\u00f5te<\/h3>\n<p>\nArtiklis k\u00e4sitlesime mitmeid peamisi aspekte 1C: Enterprise platvormi arendamisel. Artikli piiratud mahus puudutasime vaid m\u00f5ningaid huvitavaid aspekte, meie arvates. <br \/>\nErinevate platvormi mehhanismide \u00fcldkirjeldust saab vaadata <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">siin<\/a><\/noindex>.<br \/>\nMillised teemad oleksid Teile huvitavad j\u00e4rgmistes artiklites?<\/p>\n<p>Kuidas on realiseeritud 1C mobiiliplatvorm?<br \/>\nVeebikliendi sisemise struktuuri kirjeldus? <br \/>\nV\u00f5i on Teil huvi uute v\u00e4ljaannete funktsioonide valimise, arendamise ja testimise protsessi vastu?<\/p>\n<p>Kirjutage 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 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\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\" \/>\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) 4.9.10\" \/>\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! \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\" \/>\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 \u201e1C: Ettev\u00f5te\u201c \u2014 mis on kapoti all? | ProHoster","description":"Tere, Habr! Selles artiklis alustame jutu sellest, kuidas on \u00fclesehitatud platvorm \u201e1C:Ettev\u00f5te 8\u201c ning milliseid tehnoloogiaid selle arendamisel kasutatakse. Miks me arvame, et see on huvitav? Esiteks, kuna platvorm \u201e1C:Ettev\u00f5te 8\u201c on suur (rohkem kui 10 miljonit koodirida) rakendus C++-s (kliendi-, serveri jms), JavaScriptis (veebiklient) ja hiljuti","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! \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","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"},"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}]}}