{"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\/sq\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","title":{"rendered":"Platforma \"1C: Nd\u00ebrmarrja\" \u2014 \u00e7far\u00eb ka n\u00ebn kapak?","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u00ebrsh\u00ebndetje, Habr! <br \/>\nN\u00eb k\u00ebt\u00eb artikull do t\u00eb fillojm\u00eb t\u00eb flasim p\u00ebr m\u00ebnyr\u00ebn se si funksionon brenda <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">platforma \"1C:Nd\u00ebrmarrja 8\"<\/a><\/noindex> dhe cilat teknologji p\u00ebrdoren n\u00eb zhvillimin e saj.<\/p>\n<p><img decoding=\"async\" alt=\"Platforma &quot;1C: Nd\u00ebrmarrja&quot; \u2014 \u00e7far\u00eb ka n\u00ebn kapak?\" src=\"\/wp-content\/uploads\/2019\/04\/9375ea3be32979a7d8c72239dfd50f07.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPse e konsiderojm\u00eb k\u00ebt\u00eb interesante? E para, sepse platforma \"1C:Nd\u00ebrmarrja 8\" \u00ebsht\u00eb nj\u00eb aplikim i madh (m\u00eb shum\u00eb se 10 milion rreshta kodi) n\u00eb C++ (klienti, serveri, etj.), JavaScript (klienti n\u00eb ueb), dhe, s\u00eb fundmi, edhe <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Java<\/a><\/noindex>. Projektet e m\u00ebdha jan\u00eb t\u00eb interesant\u00eb, s\u00eb paku p\u00ebr shkak t\u00eb shkall\u00ebs, sepse pyetjet q\u00eb nuk duken n\u00eb nj\u00eb baz\u00eb t\u00eb vog\u00ebl kodi dalin n\u00eb plan t\u00eb par\u00eb n\u00eb projekte t\u00eb tilla. E dyta, \"1C:Nd\u00ebrmarrja\" \u00ebsht\u00eb nj\u00eb produkt i shp\u00ebrndar\u00eb, \"produkti i kutis\u00eb\", dhe artikujt mbi zhvillime t\u00eb tilla n\u00eb Habr\u00eb jan\u00eb shum\u00eb t\u00eb pakta. \u00cbsht\u00eb gjithashtu interesante t\u00eb dihet si \u00ebsht\u00eb jeta n\u00eb skuadra dhe kompani t\u00eb tjera.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPra, le t\u00eb fillojm\u00eb. N\u00eb k\u00ebt\u00eb artikull do t\u00eb japim nj\u00eb pasqyr\u00eb t\u00eb disa teknologjive q\u00eb p\u00ebrdoren n\u00eb platform\u00eb, duke vizatuar peizazhin, pa u thelluar n\u00eb realizim. Sepse p\u00ebr shum\u00eb mekanizma, nj\u00eb tregim i detajuar do t\u00eb k\u00ebrkonte nj\u00eb artikull t\u00eb ve\u00e7ant\u00eb, nd\u00ebrsa p\u00ebr disa, madje do t\u00eb k\u00ebrkonte nj\u00eb lib\u00ebr t\u00eb t\u00ebr\u00eb!<br \/>\nS\u00eb pari, \u00ebsht\u00eb e r\u00ebnd\u00ebsishme t\u00eb p\u00ebrcaktojm\u00eb disa gj\u00ebra t\u00eb baz\u00eb \u2014 \u00e7far\u00eb \u00ebsht\u00eb platforma \"1C:Nd\u00ebrmarrja\" dhe nga cilat komponente p\u00ebrb\u00ebhet. P\u00ebrgjigjja p\u00ebr k\u00ebt\u00eb pyetje nuk \u00ebsht\u00eb kaq e thjesht\u00eb, sepse me termin \"Platform\u00eb\" (p\u00ebr shkurtim do ta quajm\u00eb ashtu) kuptojm\u00eb dhe mjetin p\u00ebr zhvillimin e aplikacioneve biznesore, dhe mjedisin e ekzekutimit, dhe mjetet e administrimit. Mund t\u00eb dallojm\u00eb n\u00eb m\u00ebnyr\u00eb t\u00eb kusht\u00ebzuar komponent\u00ebt e m\u00ebposht\u00ebm:<\/p>\n<ul>\n<li>kaster server\u00ebsh<\/li>\n<li>\"klienti i holl\u00eb\", i aft\u00eb t\u00eb lidhet me serverin p\u00ebrmes http dhe protokollit t\u00eb tij binar<\/li>\n<li>klienti p\u00ebr t\u00eb punuar n\u00eb nj\u00eb arkitektur\u00eb me dy nivele me DB, e vendosur n\u00eb nj\u00eb disk t\u00eb fort\u00eb ose n\u00eb nj\u00eb dosje rrjet<\/li>\n<li>klienti n\u00eb ueb<\/li>\n<li>mjetet p\u00ebr administrimin e serverit t\u00eb aplikacioneve<\/li>\n<li>mjedisi i zhvillimit (i njohur si Konfiguratori)<\/li>\n<li>mjedisi i ekzekutimit p\u00ebr iOS, Android dhe Windows Phone (platformat mobile 1C)<\/li>\n<\/ul>\n<p>\nT\u00eb gjitha k\u00ebto pjes\u00eb, me p\u00ebrjashtim t\u00eb klientit n\u00eb ueb, jan\u00eb shkruar n\u00eb C++. P\u00ebr m\u00eb tep\u00ebr, ekziston nj\u00eb \" <noindex><a rel=\"nofollow\" href=\"http:\/\/www.1c.ru\/news\/info.jsp?id=19821\">Konfiguratori i brezit t\u00eb ri<\/a><\/noindex>\", i shkruari n\u00eb Java.<\/p>\n<h3>Aplikacione natyrore<\/h3>\n<p>\nP\u00ebr zhvillimin e aplikacioneve natyrore, p\u00ebrdoret C++03. N\u00ebn Windows, kompilator p\u00ebrdoret Microsoft Visual C++ 12 (profil i p\u00ebrputhsh\u00ebm me Windows XP), nd\u00ebrsa n\u00ebn Linux dhe Android \u2013 gcc 4.8, p\u00ebr iOS \u2013 clang 5.0. Biblioteka standarde p\u00ebrdoret e nj\u00ebjt\u00eb p\u00ebr t\u00eb gjitha sistemet operuese dhe kompilator\u00ebt \u2013 STLPort. Ky zgjidhje lejon t\u00eb ulet probabiliteti i gabimeve, specifike p\u00ebr implementimin e STL. Tani ne po planifikojm\u00eb kalimin n\u00eb implementimin e STL-s\u00eb, e cila ofrohet me CLang, pasi STLPort ka ndaluar zhvillimin e tij dhe \u00ebsht\u00eb e pap\u00ebrputhshme me modalitetin e mb\u00ebshtetjes C++11 n\u00eb gcc.<br \/>\nBaza e kodit t\u00eb serverit \u00ebsht\u00eb e p\u00ebrbashk\u00ebt n\u00eb 99%, nd\u00ebrsa e klientit n\u00eb rreth 95%. M\u00eb tep\u00ebr, edhe platforma mobile p\u00ebrdor t\u00eb nj\u00ebjtin kod C++ si 'i madhi', ndon\u00ebse aty p\u00ebrqindja e unifikimit \u00ebsht\u00eb disi m\u00eb e ul\u00ebt. <br \/>\nSi shumica e p\u00ebrdoruesve t\u00eb C++, ne nuk pretendojm\u00eb t\u00eb p\u00ebrdorim 100% t\u00eb mund\u00ebsive t\u00eb gjuh\u00ebs dhe bibliotekave t\u00eb saj. K\u00ebshtu, ne praktikisht nuk p\u00ebrdorim Boost, dhe nga mund\u00ebsit\u00eb e gjuh\u00ebs \u2013 konvertimi dinamik i tipeve. Megjithat\u00eb, ne aktivisht aplikojm\u00eb:<\/p>\n<ul>\n<li>STL (n\u00eb ve\u00e7anti, string, konteiner dhe algoritme)<\/li>\n<li>trash\u00ebgimi shum\u00ebfishe, p\u00ebrfshir\u00eb trash\u00ebgimin\u00eb shum\u00ebfishe t\u00eb implementimit<\/li>\n<li>shabllonat<\/li>\n<li>p\u00ebrjashtime<\/li>\n<li>p\u00ebrcjell\u00ebs inteligjent\u00eb (implementim i brendsh\u00ebm)<\/li>\n<\/ul>\n<p>\nP\u00ebrmes p\u00ebrdorimit t\u00eb trash\u00ebgimis\u00eb shum\u00ebfishe t\u00eb nd\u00ebrfaqeve (klasave krejt\u00ebsisht abstrakte), b\u00ebhet e mundur modeli komponent, p\u00ebr t\u00eb cilin do t\u00eb flasim m\u00eb posht\u00eb.<\/p>\n<h3>Komponent\u00ebt<\/h3>\n<p>\nP\u00ebr t\u00eb siguruar modularitetin, e gjith\u00eb funksionaliteti \u00ebsht\u00eb i ndar\u00eb n\u00eb komponente, t\u00eb cilat paraqesin biblioteka dinamike (*.dll n\u00ebn Windows, *.so \u2013 n\u00ebn Linux). Jan\u00eb m\u00eb shum\u00eb se nj\u00ebqind e pes\u00ebdhjet\u00eb komponente, le t\u00eb japim p\u00ebrshkrimin e disa prej tyre:<\/p>\n<p>backend<br \/>\nP\u00ebrmban 'motorin' e metadatos s\u00eb platform\u00ebs<\/p>\n<p>accnt<br \/>\nObjektet, q\u00eb zhvilluesit e aplikacioneve p\u00ebrdorin p\u00ebr nd\u00ebrtimin e kontabilitetit (planet e llogarive dhe regjistrat e kontabilitetit)<\/p>\n<p>bsl<br \/>\nMotori i ekzekutimit t\u00eb gjuh\u00ebs s\u00eb integruar<\/p>\n<p>nuke<br \/>\nImplementimi yn\u00eb i alokuesit t\u00eb kujtes\u00ebs<\/p>\n<p>dbeng8<br \/>\nMotori i baz\u00ebs s\u00eb t\u00eb dh\u00ebnave me skedar\u00eb. Nj\u00eb makin\u00eb e thjesht\u00eb p\u00ebr skedar\u00eb baza t\u00eb t\u00eb dh\u00ebnave, e bazuar n\u00eb ISAM, duke p\u00ebrfshir\u00eb gjithashtu nj\u00eb procesor t\u00eb thjesht\u00eb SQL<\/p>\n<p>wbase<br \/>\nP\u00ebrmban klasat dhe funksionet kryesore p\u00ebr implementimin e nd\u00ebrfaqes s\u00eb p\u00ebrdoruesit t\u00eb Windows \u2013 klasat e dritareve, qasja n\u00eb GDI etj.<\/p>\n<p>\nNdarja n\u00eb shum\u00eb komponente \u00ebsht\u00eb e dobishme nga disa pikapamje:<\/p>\n<ul>\n<li>Ndarja kontribuon n\u00eb nj\u00eb projektim m\u00eb t\u00eb mir\u00eb, n\u00eb ve\u00e7anti izolimin m\u00eb t\u00eb mir\u00eb t\u00eb kodit<\/li>\n<li>Nga grupi i komponent\u00ebve, mund t\u00eb krijoni variacione t\u00eb ndryshme t\u00eb d\u00ebrges\u00ebs:\n<ul>\n<li>P\u00ebr shembull, instalimi i klientit t\u00eb holl\u00eb do t\u00eb p\u00ebrmbaj\u00eb wbase, por nuk do t\u00eb ket\u00eb backend.<\/li>\n<li>nd\u00ebrsa n\u00eb serverin wbase, p\u00ebrkundrazi, nuk do t\u00eb ket\u00eb.<\/li>\n<li>T\u00eb dy variantet, natyrisht, do t\u00eb p\u00ebrmbajn\u00eb nuke dhe bsl.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\nT\u00eb gjitha komponent\u00ebt e nevojsh\u00ebm p\u00ebr k\u00ebt\u00eb variant nisjeje ngarkohen gjat\u00eb startit t\u00eb programit. Kjo \u00ebsht\u00eb, n\u00eb ve\u00e7anti, e nevojshme p\u00ebr regjistrimin e klasave SCOM, p\u00ebr t\u00eb cilat do t\u00eb flasim m\u00eb posht\u00eb.<\/p>\n<h3>SCOM<\/h3>\n<p>\nP\u00ebr dekompozimin n\u00eb nj\u00eb nivel m\u00eb t\u00eb ul\u00ebt, p\u00ebrdoret sistemi SCOM \u2014 i ngjash\u00ebm n\u00eb ide me bibliotek\u00ebn ATL. P\u00ebr ata q\u00eb nuk kan\u00eb punuar me ATL, do t\u00eb p\u00ebrmendim shkurtimisht mund\u00ebsit\u00eb dhe karakteristikat kryesore. <br \/>\nP\u00ebr klas\u00ebn e ve\u00e7ant\u00eb t\u00eb formatuar SCOM:<\/p>\n<ul>\n<li>Ofron metoda fabrike q\u00eb lejojn\u00eb krijimin e nj\u00eb klase nga nj\u00eb komponent tjet\u00ebr duke ditur vet\u00ebm emrin e saj (pa zbuluar implementimin).<\/li>\n<li>Ofron infrastruktur\u00ebn e treguesve inteligjent\u00eb me num\u00ebrimin e referencave. Nuk \u00ebsht\u00eb e nevojshme t\u00eb mbajm\u00eb mend p\u00ebr jet\u00ebn e klas\u00ebs SCOM manualisht.<\/li>\n<li>Lejon t\u00eb kuptohet n\u00ebse nj\u00eb objekt implementon nj\u00eb nd\u00ebrfaqe t\u00eb ve\u00e7ant\u00eb dhe automatikisht e konverton treguesin te objekti n\u00eb treguesin te nd\u00ebrfaqja.<\/li>\n<li>Krijoni nj\u00eb objekt-sh\u00ebrbim, gjithmon\u00eb n\u00eb dispozicion p\u00ebrmes metod\u00ebs get_service, etj.<\/li>\n<\/ul>\n<p>\nP\u00ebr shembull, mund t\u00eb p\u00ebrshkruhet n\u00eb komponentin json.dll nj\u00eb klas\u00eb p\u00ebr t\u00eb lexuar JSON (p.sh. JSONStreamReader).<br \/>\nKlasat, instancat mund t\u00eb krijohen nga komponent\u00eb t\u00eb tjer\u00eb, duhet t\u00eb regjistrohen n\u00eb makin\u00ebn SCOM:<\/p>\n<pre><code class=\"cpp\">SCOM_CLASS_ENTRY(JSONStreamReader)\n<\/code><\/pre>\n<p>\nKy makro do t\u00eb p\u00ebrshkruaj\u00eb nj\u00eb klas\u00eb statike regjistruese t\u00eb ve\u00e7ant\u00eb, konstruktori i saj do t\u00eb thirret kur komponenti t\u00eb ngarkohet n\u00eb memori.<br \/>\nPas k\u00ebsaj, mund t\u00eb krijoni instanc\u00ebn e tij n\u00eb nj\u00eb komponent tjet\u00ebr:<\/p>\n<pre><code class=\"cpp\">IJSONStreamReaderPtr jsonReader = create_instance(SCOM_CLSIDOF(JSONStreamReader));\n<\/code><\/pre>\n<p>\nP\u00ebr mb\u00ebshtetje t\u00eb sh\u00ebrbimeve, SCOM ofron infrastruktur\u00eb shtes\u00eb, mjaft komplekse. Qendra e saj \u00ebsht\u00eb koncepti i SCOM-procesit, i cili sh\u00ebrben si kontejner p\u00ebr sh\u00ebrbimet e nisura (dmth. luan rolin e Service Locator), si dhe p\u00ebrmban lidhjen me burimet e lokalizuara. Procesi SCOM lidhet me thread-in e OS. Fal\u00eb k\u00ebsaj, brenda aplikacionit mund t\u00eb merrni sh\u00ebrbimet si k\u00ebshtu:<\/p>\n<pre><code class=\"cpp\">SCOM_Process* process = core::current_process();\nif (process)\n         return get_service(process);\n<\/code><\/pre>\n<p>\nP\u00ebr m\u00eb tep\u00ebr, duke kaluar proceset logjike (SCOM) t\u00eb lidhura me rrjedh\u00ebn, mund t\u00eb fitojm\u00eb aplikacione praktikisht t\u00eb pavarura nga pik\u00ebpamja e hap\u00ebsir\u00ebs informative, q\u00eb funksionojn\u00eb brenda nj\u00eb rrjedhe. Ky \u00ebsht\u00eb m\u00ebnyra si funksionon klienti yn\u00eb i holl\u00eb, q\u00eb punon me baz\u00ebn e t\u00eb dh\u00ebnave skedare \u2013 brenda nj\u00eb procesi OS ka dy procese SCOM, nj\u00ebra e lidhur me klientin dhe tjetra me serverin. Ky qasje lejon unifikimin e kodit, i cili do t\u00eb funksionoj\u00eb si n\u00eb baz\u00ebn e t\u00eb dh\u00ebnave lokale ashtu edhe n\u00eb nj\u00eb variant klient-server \"t\u00eb v\u00ebrtet\u00eb\". \u00c7mimi p\u00ebr k\u00ebt\u00eb uniformitet jan\u00eb shpenzimet e mb\u00ebshtetjes, por praktika tregon se ato e meritojn\u00eb.<\/p>\n<p>Bazuar n\u00eb modelin komponent SCOM, jan\u00eb realizuar si logjika biznesore ashtu edhe pjesa e nd\u00ebrfaqes e 1C: Nd\u00ebrmarrjes.<\/p>\n<h3>Nd\u00ebrfaqja e p\u00ebrdoruesit<\/h3>\n<p>\nP\u00ebr t\u00eb folur p\u00ebr nd\u00ebrfaqet. Ne nuk p\u00ebrdorim kontrollet standarde t\u00eb Windows, element\u00ebt tan\u00eb t\u00eb kontrollit jan\u00eb realizuar direkt n\u00eb Windows API. P\u00ebr versionin Linux \u00ebsht\u00eb krijuar nj\u00eb nd\u00ebrmjet\u00ebs q\u00eb punon p\u00ebrmes bibliotek\u00ebs wxWidgets.<br \/>\nBiblioteka e elementeve t\u00eb kontrollit nuk varet nga pjes\u00ebt e tjera t\u00eb \"1C: Nd\u00ebrmarrjes\" dhe p\u00ebrdoret nga ne edhe n\u00eb disa utilitete t\u00eb vogla t\u00eb brendshme.<\/p>\n<p>Gjat\u00eb viteve t\u00eb zhvillimit t\u00eb 1C: Nd\u00ebrmarrjes, pamja e kontrolleve ka ndryshuar, por ndryshimi i r\u00ebnd\u00ebsish\u00ebm i principeve ka ndodhur vet\u00ebm nj\u00eb her\u00eb, n\u00eb vitin 2009, me publikimin e versionit 8.2 dhe shfaqjen e \"formave t\u00eb menaxhuara\". P\u00ebrve\u00e7 ndryshimit t\u00eb pamjes, boja e re e formave ndryshoi gjithashtu krejt\u00ebsisht parimin e kompozimit t\u00eb form\u00ebs - u hoq pozicionimi pixel-p\u00ebr-pixel i elementeve p\u00ebr t\u00eb favorizuar kompozimin flow t\u00eb elementeve. P\u00ebr m\u00eb tep\u00ebr, n\u00eb modelin e ri, element\u00ebt e kontrollit punojn\u00eb jo drejtp\u00ebrdrejt me objektet domene, por me DTO t\u00eb ve\u00e7ant\u00eb (<noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/DTO\">Data Transfer Objects<\/a><\/noindex>).<br \/>\nK\u00ebto ndryshime lejuan krijimin e klientit web \"1C: Nd\u00ebrmarrjes\", q\u00eb p\u00ebrs\u00ebrit logjik\u00ebn e kontrolleve C++ n\u00eb JavaScript. Ne p\u00ebrpiqemi t\u00eb mbajm\u00eb ekvivalenten funksionale midis klient\u00ebve t\u00eb holl\u00eb dhe web. N\u00eb rastet kur kjo \u00ebsht\u00eb e pamundur, p\u00ebr shembull, p\u00ebr shkak t\u00eb kufizimeve t\u00eb API-ve t\u00eb disponuesh\u00ebm nga JavaScript (p.sh., mund\u00ebsit\u00eb p\u00ebr t\u00eb punuar me skedar\u00eb jan\u00eb shum\u00eb t\u00eb kufizuara), ne shpesh realizojm\u00eb funksionalitetin e nevojsh\u00ebm p\u00ebrmes zgjerimeve t\u00eb shfletuesve, t\u00eb shkruara n\u00eb C++. Aktualisht mb\u00ebshtesim Internet Explorer dhe Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows dhe Linux) dhe Safari (MacOS).<\/p>\n<p>P\u00ebr m\u00eb tep\u00ebr, teknologjia e formave t\u00eb menaxhuara p\u00ebrdoret p\u00ebr t\u00eb krijuar nd\u00ebrfaqen e aplikacioneve t\u00eb l\u00ebvizshme n\u00eb platform\u00ebn 1C. N\u00eb pajisjet mobile, renditja e kontrolleve realizohet duke p\u00ebrdorur teknologjit\u00eb \"natyrore\" p\u00ebr sistemin operativ, por p\u00ebr logjik\u00ebn e kompozit\u00ebs s\u00eb form\u00ebs dhe reagimin e nd\u00ebrfaqes p\u00ebrdoret e nj\u00ebjta kod si n\u00eb platform\u00ebn \"1C: Nd\u00ebrmarrja\".<\/p>\n<p><img decoding=\"async\" alt=\"Platforma &quot;1C: Nd\u00ebrmarrja&quot; \u2014 \u00e7far\u00eb ka n\u00ebn kapak?\" src=\"\/wp-content\/uploads\/2019\/04\/a4a87ca99cef465e82429739a8845300.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Nd\u00ebrfaqja 1C n\u00eb OS Linux<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Platforma &quot;1C: Nd\u00ebrmarrja&quot; \u2014 \u00e7far\u00eb ka n\u00ebn kapak?\" src=\"\/wp-content\/uploads\/2019\/04\/23f48ade4e28242104bfd4e9099800e2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Nd\u00ebrfaqja 1C n\u00eb pajisjen mobile<\/i><\/p>\n<p><b class=\"spoiler_title\">Nd\u00ebrfaqja 1C n\u00eb platforma t\u00eb tjera<\/b> <img decoding=\"async\" alt=\"Platforma &quot;1C: Nd\u00ebrmarrja&quot; \u2014 \u00e7far\u00eb ka n\u00ebn kapak?\" src=\"\/wp-content\/uploads\/2019\/04\/d04d2431d8c5240d44acce675d837018.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Nd\u00ebrfaqja 1C n\u00eb OS Windows<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Platforma &quot;1C: Nd\u00ebrmarrja&quot; \u2014 \u00e7far\u00eb ka n\u00ebn kapak?\" src=\"\/wp-content\/uploads\/2019\/04\/a443f6e2d1cb95e256e0dcff4fe139d2.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <i>Nd\u00ebrfaqja 1C \u2014 klienti n\u00eb web<\/i><\/p>\n<p><\/p>\n<h3>Open source<\/h3>\n<p>\nMegjith\u00ebse nuk p\u00ebrdorim bibliotekat standarde p\u00ebr zhvilluesit C++ n\u00eb Windows (MFC, kontrollet nga WinAPI), jo t\u00eb gjitha komponent\u00ebt i shkruajm\u00eb vet\u00eb. Biblioteka e p\u00ebrmendur m\u00eb par\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/www.wxwidgets.org\/\">wxWidgets<\/a><\/noindex>, dhe gjithashtu p\u00ebrdorim:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> p\u00ebr pun\u00eb me HTTP dhe FTP. <\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> p\u00ebr pun\u00eb me kriptografin\u00eb dhe vendosjen e lidhjeve TLS<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.xmlsoft.org\/\">libxml2 dhe libxslt<\/a><\/noindex> p\u00ebr analiz\u00ebn e XML<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> p\u00ebr pun\u00eb me protokollet e post\u00ebs elektronike (POP3, SMTP, IMAP)<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.codesink.org\/mimetic_mime_library.html\">mimetic<\/a><\/noindex> p\u00ebr analizimin e mesazheve t\u00eb post\u00ebs elektronike<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/www.sqlite.org\/\">sqllite<\/a><\/noindex> p\u00ebr ruajtjen e regjistrave t\u00eb pun\u00ebs s\u00eb p\u00ebrdoruesve<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"http:\/\/site.icu-project.org\/\">ICU<\/a><\/noindex> p\u00ebr internacionizimin<\/li>\n<\/ul>\n<p>\nLista mund t\u00eb vazhdoj\u00eb.<br \/>\nP\u00ebr m\u00eb tep\u00ebr, ne p\u00ebrdorim nj\u00eb version t\u00eb modifikuar t\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googletest\/\">Google Test<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"http:\/\/code.google.com\/p\/googlemock\/\">Google Mock<\/a><\/noindex> n\u00eb zhvillimin e testeve unitare.<br \/>\nBibliotekat k\u00ebrkuan adaptim p\u00ebr t\u00eb qen\u00eb t\u00eb p\u00ebrputhshme me modelin SCOM t\u00eb organizat\u00ebs s\u00eb komponent\u00ebve.<br \/>\nP\u00ebrhapja e 1C e b\u00ebn platform\u00ebn nj\u00eb test t\u00eb shk\u00eblqyer p\u00ebr q\u00ebndrueshm\u00ebrin\u00eb e bibliotekave t\u00eb p\u00ebrdorura n\u00eb t\u00eb. Diversiteti i p\u00ebrdoruesve dhe skenar\u00ebve zbulojn\u00eb shpejt gabime edhe n\u00eb pjes\u00ebt m\u00eb t\u00eb p\u00ebrdorura t\u00eb kodit. Ne i korrigjojm\u00eb ato n\u00eb sistemin ton\u00eb dhe p\u00ebrpiqemi t'i japim prapa autor\u00ebve t\u00eb bibliotekave. Eksperianca e bashk\u00ebveprimit \u00ebsht\u00eb shum\u00eb e ndryshme.<br \/>\nZhvilluesit <noindex><a rel=\"nofollow\" href=\"http:\/\/curl.haxx.se\/libcurl\/\">cURL<\/a><\/noindex> dhe <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/dinhviethoa\/libetpan\">libetpan<\/a><\/noindex> shpejt p\u00ebrgjigjen ndaj k\u00ebrkesave p\u00ebr t\u00eb t\u00ebrhequr\/ndihmuar, por patch, p\u00ebr shembull, n\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/openssl.org\/\">OpenSSL<\/a><\/noindex> nuk arrit\u00ebm ta kthenim.<\/p>\n<h3>P\u00ebrfundim<\/h3>\n<p>\nN\u00eb artikull kemi prekur disa aspekte kryesore t\u00eb zhvillimit t\u00eb platform\u00ebs \"1C: Nd\u00ebrmarrja\". N\u00eb nj\u00eb p\u00ebrmas\u00eb t\u00eb kufizuar t\u00eb artikullit, ne trajtuam vet\u00ebm disa aspekte interesante sipas mendimit ton\u00eb. <br \/>\nP\u00ebrshkrimi i p\u00ebrgjithsh\u00ebm i mekanizmave t\u00eb ndrysh\u00ebm t\u00eb platform\u00ebs mund t\u00eb shikohet <noindex><a rel=\"nofollow\" href=\"http:\/\/v8.1c.ru\/overview\/Platform.htm\">k\u00ebtu<\/a><\/noindex>.<br \/>\nCilat tema do ishin interesante p\u00ebr ju n\u00eb artikujt e ardhsh\u00ebm?<\/p>\n<p>Si \u00ebsht\u00eb realizuar platforma mobile 1C?<br \/>\nP\u00ebrshkrimi i struktur\u00ebs s\u00eb brendshme t\u00eb klientit n\u00eb web? <br \/>\nOse, ndoshta, jeni t\u00eb interesuar n\u00eb procesin e zgjedhjes s\u00eb karakteristikave p\u00ebr versionet e reja, zhvillimin dhe testimin?<\/p>\n<p>Shkruani n\u00eb komentet!<br \/>\n<br \/>Burimi: <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.2 - 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\/sq\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\/sq\/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\udd47Platforma \"1C: Nd\u00ebrmarrja\" \u2014 \u00e7far\u00eb ka n\u00ebn kapak? | ProHoster","description":"P\u00ebrsh\u00ebndetje, Habr!","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/platforma-1s-predpriyatie-chto-pod-kapotom","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\/sq\/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\/sq\/wp-json\/wp\/v2\/posts\/32475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=32475"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/24279"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=32475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=32475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=32475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}