Platform "1C: Enterprise" - maxaa ku hoos jira daboolka?

Haye Habr!
Maqaalkan waxaan ku bilaabi doonaa sheekada ku saabsan sida ay u shaqeyso gudaha madal "1C: Enterprise 8" iyo waxa tignoolajiyada loo isticmaalo horumarkeeda.

Platform "1C: Enterprise" - maxaa ku hoos jira daboolka?

Maxaynu u malaynaynaa in tani ay tahay mid xiiso leh? Marka hore, sababtoo ah 1C: Enterprise 8 waa codsi weyn (in ka badan 10 milyan oo khadadka code) ee C ++ (macmiilka, server, iwm.), JavaScript (macmiilka shabakadda), iyo, dhawaanahan, iyo Java. Mashruucyada waaweyni waxay noqon karaan kuwo xiiso leh ugu yaraan sababtoo ah miisaankooda, sababtoo ah arrimaha aan la arki karin ee saldhigga code yar ayaa si buuxda u soo baxa mashaariicdan oo kale. Marka labaad, "1C:Enterprise" waa badeecad la soo celin karo, "sanduuq", waxaana jira maqaallo aad u yar oo ku saabsan horumarka noocaan ah ee HabrΓ©. Waxa kale oo had iyo jeer xiiso leh in la ogaado sida ay noloshu ugu jirto kooxaha iyo shirkadaha kale.

Haddaba aan bilowno. Maqaalkan waxaan ku siin doonaa dulmar ku saabsan qaar ka mid ah tignoolajiyada loo isticmaalo madal oo aan dulmarno muuqaalka muuqaalka, annagoo aan si qoto dheer u quusin hirgelinta. Runtii, habab badan, sheeko tafatiran waxay qaadan doontaa maqaal gaar ah, qaarna, buug dhan!
Marka hore, waxaa habboon in la go'aamiyo waxyaabaha aasaasiga ah - waa maxay 1C: madal ganacsi iyo qaybaha ay ka kooban tahay. Jawaabta su'aashani maaha mid sahlan, sababtoo ah ereyga "Platform" (oo kooban, waxaan ugu yeeri doonaa habkaas) waxaa loola jeedaa habka horumarinta codsiyada ganacsiga, jawi runtime, iyo qalabka maamulka. Qaybaha soo socda ayaa qiyaas ahaan loo kala saari karaa:

  • kooxda server
  • Macmiil "khafiif ah" oo awood u leh in uu ku xidho serverka isaga oo isticmaalaya http iyo borotokoolkiisa binary
  • macmiilka si uu ugu shaqeeyo qaab dhismeed laba-heer ah oo leh xog-ururin ku taal darawal adag ama gal shabakad
  • macmiilka webka
  • qalabka maamulka server codsiga
  • deegaanka horumarinta (oo loo yaqaan Configurator)
  • Bey'adda runtime ee iOS, Android iyo Windows Phone (madal mobaylada 1C)

Dhammaan qaybahan, marka laga reebo macmiilka shabakadda, waxay ku qoran yihiin C++. Intaa waxaa dheer, waxaa jira dhawaan lagu dhawaaqay Habeeyaha jiilka cusub, oo ku qoran Java.

Barnaamijyada asalka ah

C++03 waxaa loo isticmaalaa in lagu horumariyo codsiyada hooyo. Dhanka Windows-ka, Microsoft Visual C++ 12 (profile la jaan qaadaya Windows XP) waxaa loo istcimaalayaa aruuriye ahaan, iyo Linux iyo Android - gcc 4.8, ee iOS - qabiilg 5.0. Maktabadda caadiga ah ee la isticmaalo waxay la mid tahay dhammaan nidaamyada hawlgalka iyo isku-dariyeyaasha -STLPort. Xalkani wuxuu yareynayaa suurtagalnimada khaladaadka fulinta-gaarka ah ee STL. Waxaan hadda qorsheyneynaa inaan u haajiro hirgelinta STL oo lagu soo raro CLang, maadaama STLPort la joojiyay oo aysan la socon karin gcc's C++11 hab karti leh.
Saldhigga koodhka server-ku waa 99% caadi, macmiilka - 95%. Waxaa intaa dheer, xitaa goobta moobilka waxay isticmaashaa isla koodka C ++ kan "weyn", in kasta oo boqolkiiba mideynta ay jirto waxoogaa ka hooseeya.
Sida inta badan isticmaalayaasha C++, ma sheeganno inaan isticmaalno 100% awoodaha luqadda iyo maktabadaha. Marka, ficil ahaan ma isticmaalno Boost, oo mid ka mid ah astaamaha luqaddu waa nooc wax ka shubid ah. Isla markaana, waxaanu si firfircoon u isticmaalnaa:

  • STL (gaar ahaan xargaha, weelasha iyo algorithms)
  • Dhaxal badan, oo ay ku jiraan. dhaxalka fulinta badan
  • qaababka
  • ka reeban
  • tilmaame caqli-gal ah (fulinta caadada ah)

Adiga oo isticmaalaya dhaxal badan oo isdhexgal ah (fasalo dhammaystiran oo aan la taaban karin), nooc ka kooban ayaa suurtagal noqon doona, kaas oo lagaga hadli doono hoos.

Qeybaha

Si loo hubiyo qaab-dhismeedka, dhammaan shaqeyntu waxay u qaybsan tahay qaybo, kuwaas oo ah maktabado firfircoon (* .dll ee Windows, * .so loogu talagalay Linux). Guud ahaan waxa jira in ka badan boqol iyo konton qaybood; Halkan waxaa ah tilmaanta qaar ka mid ah:

backend
Waxa ku jira matoorka xogta badan

accnt
Walxaha ay horumariyayaashu arjiyada u isticmaalaan si ay u dhisaan diiwaannada xisaabaadka (shaxda xisaabaadka iyo diiwaannada xisaabaadka)

bsl
Matoorka fulinta luqadda ku dhexjira

nukle
Hirgelinta gaarka ah ee qoondeeyaha xusuusta

dbeng8
Matoorka xogta faylka. Matoorka xogta kaydinta faylka fudud ee ku salaysan ISAM, kaas oo sidoo kale ku jira processor SQL fudud

wbase
Waxay ka kooban tahay fasallada aasaasiga ah iyo shaqooyinka loogu talagalay hirgelinta is-dhexgalka isticmaalaha Windows - fasallada daaqadaha, gelitaanka GDI, iwm.

U qaybinta qaybo badan ayaa faa'iido leh marka laga eego dhinacyo badan:

  • Kala soociddu waxay kor u qaadaa nakhshad ka sii fiican, gaar ahaan go'doomin kood oo wanaagsan
  • Qaybo ka kooban waxaad si dabacsan u ururin kartaa xulashooyinka gaarsiinta kala duwan:
    • Tusaale ahaan, rakibaadda macmiilka khafiifka ah waxay ka koobnaan doontaa wbase, laakiin ma yeelan doonto gadaal
    • laakiin server-ka wbase, liddi ku ah, ma noqon doonto
    • Labada doorasho ayaa dabcan ka koobnaan doona nuke iyo bsl

Dhammaan qaybaha looga baahan yahay doorashadan bilaabista waxa la raray marka barnaamijku bilowdo. Tani, gaar ahaan, waxay lagama maarmaan u tahay diiwaangelinta fasallada SCOM, kuwaas oo looga hadli doono hoos.

SCOM

Burburinta heerka hoose, nidaamka SCOM ayaa loo isticmaalaa, maktabad la mid ah fikirka ATL. Kuwa aan la shaqayn ATL, waxaan si kooban u taxnay awoodaha iyo sifooyinka ugu muhiimsan.
Loogu talagalay fasalka SCOM si gaar ah loo qorsheeyay:

  • Waxay ku siisaa habab warshadeed oo kuu oggolaanaya inaad ka abuurto fasal qayb ka mid ah qayb kale oo garanaya magaciisa oo keliya (adoo aan muujin hirgelinta)
  • Waxay bixisaa kaabayaal tilmaame caqli-gal ah oo tix-raaca. Nolosha fasalka SCOM uma baahna in si gacanta ah loola socdo
  • Ku ogolanaya in aad ogaato in shay uu fuliyo is-dhexgal gaar ah oo si toos ah ugu beddelo tilmaame shayga tilmaanta is-dhexgalka.
  • Samee shay adeeg oo had iyo jeer laga heli karo habka get_service, iwm.

Tusaale ahaan, waxaad ku sifayn kartaa fasalka akhrinta JSON (tusaale, JSONStreamReader) ee qaybta json.dll.
Fasallada iyo tusaalooyinka waxaa laga abuuri karaa qaybo kale; waxay u baahan yihiin in lagu diiwaan geliyo mashiinka SCOM:

SCOM_CLASS_ENTRY(JSONStreamReader)

Makro-gudahani waxa uu sharxi doonaa fasal rikoodheyaal gaar ah, kaas oo dhismihiisu la wici doono marka qaybta lagu shubo xusuusta.
Taas ka dib, waxaad samayn kartaa tusaale ahaan qayb kale:

IJSONStreamReaderPtr jsonReader = create_instance<IJSONStreamReader>(SCOM_CLSIDOF(JSONStreamReader));

Si loo taageero adeegyada, SCOM waxa ay bixisaa kaabayaal dheeri ah oo kakan. Udub dhexaad u ah waa fikradda habka SCOM, kaas oo u adeega sidii weel loogu talagalay socodsiinta adeegyada (ie, wuxuu ciyaaraa doorka Adeegga Meeleeyaha), sidoo kale wuxuu ka kooban yahay ku-xirnaanta ilaha degaanka. Habka SCOM wuxuu ku xidhan yahay dunta OS. Mahadsanid tan, gudaha codsiga waxaad ka heli kartaa adeegyadan oo kale:

SCOM_Process* process = core::current_process();
if (process)
         return get_service<IMyService>(process);

Intaa waxaa dheer, adigoo beddelaya hababka macquulka ah (SCOM) ee ku xiran dunta, waxaad heli kartaa codsiyo si dhab ah uga madaxbannaan aragtida booska macluumaadka, oo ku dhex socda isla dunta. Tani waa sida macmiilkayaga khafiifka ah uu ula shaqeeyo kaydka xogta - gudaha hal nidaamka OS waxaa jira laba hab oo SCOM ah, mid la xidhiidha macmiilka, iyo tan labaad ee server-ka. Habkani wuxuu noo ogolaanayaa inaan mideyno qorista koodka oo ka shaqeyn doona labadaba kaydka xogta faylka deegaanka iyo nooca macmiilka-server-ka "dhabta ah". Qiimaha labbiska noocan oo kale ah ayaa ka sarreeya, laakiin dhaqanka ayaa muujinaya inay mudan tahay.

Iyada oo ku saleysan qaabka qaybta SCOM, labadaba macquulka ganacsiga iyo qaybta interface ee 1C: Ganacsiga waa la fuliyay.

Isticmaalaha adeegsadaha

By habka, ku saabsan interfaces. Ma isticmaalno kontaroolada caadiga ah ee Windows; kontarooladayada waxa si toos ah loogu fuliyaa Windows API. Nooca Linux, lakab ayaa loo sameeyay ka shaqeeya maktabadda wxWidgets.
Maktabadda koontaroolku kuma xirna qaybaha kale ee 1C:Erterprise waxaana anaga u isticmaalnaa adeegyo yaryar oo kale oo gudaha ah.

Sanadihii la soo dhaafay ee horumarinta 1C: Shirkad, muuqaalka kontaroolada ayaa isbeddelay, laakiin isbeddel halis ah oo mabaadi'da ayaa dhacay hal mar oo keliya, 2009, iyada oo la sii daayay nooca 8.2 iyo imaatinka "foomamka la maareeyey". Waxa u dheer in la beddelo muuqaalka, mabda'a qaabaynta qaabku asal ahaan waa isbeddelay - waxaa jiray diidmo ah meelaynta pixel-by-pixel ee curiyeyaasha iyada oo door bidaaya socodka-qaabaynta walxaha. Intaa waxaa dheer, qaabka cusub, kontaroolada si toos ah uma shaqeeyaan walxaha domain, laakiin leh DTOs gaar ah (Walxaha Wareejinta Xogta).
Isbeddelladani waxay suurtogal ka dhigeen in la abuuro 1C:Macaamiil mareegaha ganacsiga kaas oo nuqul ka dhigaya C++ macquulka ah ee kontaroolada JavaScript. Waxaan isku dayeynaa inaan ilaalino u dhigmidda shaqeynta ee u dhexeysa macaamiisha khafiifka ah iyo kuwa shabakada. Xaaladaha aysan taasi suurtogal ahayn, tusaale ahaan sababtoo ah xaddidaadda JavaScript API ee la heli karo (tusaale ahaan, awoodda lagu shaqeynayo faylasha waa mid aad u xaddidan), waxaan inta badan hirgelineynaa shaqeynta lagama maarmaanka ah iyadoo la adeegsanayo kordhinta browserka ee ku qoran C ++. Waxaan hadda taageernaa Internet Explorer iyo Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows iyo Linux) iyo Safari (MacOS).

Intaa waxaa dheer, tignoolajiyada foomamka la maareeyay ayaa loo isticmaalaa si loo abuuro is-dhexgalka codsiyada mobaylada ee madal 1C. Qalabka mobilada, gudbinta kontaroolada waxaa lagu fuliyaa iyadoo la adeegsanayo tignoolajiyada u dhashay nidaamka hawlgalka, laakiin qaabka qaabaynta macquulka ah iyo jawaabta interface, kood isku mid ah ayaa loo isticmaalaa sida "weyn" 1C: madal ganacsi.

Platform "1C: Enterprise" - maxaa ku hoos jira daboolka?
1C interface ee Linux OS

Platform "1C: Enterprise" - maxaa ku hoos jira daboolka?
1C interface ee aaladda mobilada

1C interface on dhufto ee kale Platform "1C: Enterprise" - maxaa ku hoos jira daboolka?
1C interface ee Windows OS

Platform "1C: Enterprise" - maxaa ku hoos jira daboolka?
Interface 1C - macmiilka shabakadda

il Open

Inkasta oo aynaan u isticmaalin maktabadaha caadiga ah ee horumarinta C++ ee hoos yimaada Windows (MFC, kontaroolada WinAPI), ma qorno dhammaan qaybaha lafteena. Maktabadda mar hore ayaa lagu sheegay wxWidgets, waxaana sidoo kale isticmaalnaa:

  • usu la shaqaynta HTTP iyo FTP.
  • OpenSSL La shaqaynta xog-ururinta iyo samaynta xidhiidhada TLS
  • libxml2 iyo libxslt si loo qiimeeyo XML
  • libtaan ku shaqaynta borotokoolka boostada (POP3, SMTP, IMAP)
  • mimetik si loo kala saaro fariimaha iimaylka
  • sqlite loogu talagalay kaydinta diiwaanka isticmaalaha
  • ICU caalamiyaynta

Liiska ayaa socda.
Intaa waxaa dheer, waxaan isticmaalnaa nooc si heer sare ah loo beddelay Tijaabada Google ΠΈ Google Mock marka la samaynayo imtixaanada unugga.
Maktabadaha ayaa u baahday la qabsi si ay ula jaanqaadaan qaabka ururka qaybta SCOM.
Baahitaanka 1C wuxuu ka dhigayaa madal tijaabo aad u wanaagsan oo xoogga maktabadaha lagu isticmaalo. Isticmaalayaal kala duwan iyo xaalado ayaa si dhakhso ah u muujinaya khaladaadka xitaa meelaha koodka ee aadka loo isticmaalo. Anaga lafteena ayaanu saxnay waxaanan isku daynaa inaan dib ugu celino qorayaasha maktabadda. Waayo-aragnimada is-dhex-galka waxay u noqotaa mid aad u kala duwan.
Developers usu ΠΈ libtaan si degdeg ah uga jawaab codsiyada jiid-jiidka, laakiin balastar, tusaale ahaan, gudaha OpenSSL Marna ma suurtagelin inaan dib u soo celinno.

gunaanad

Maqaalka waxaan ku taabannay dhowr arrimood oo muhiim ah oo ku saabsan horumarinta 1C: platformka ganacsiga. Baaxadda xaddidan ee maqaalka, waxaynu taabanay kaliya qaar xiiso leh, fikraddayada, dhinacyo.
Sharaxaad guud oo ku saabsan hababka kala duwan ee madal ayaa la heli karaa halkan.
Mawaadiicdee ayaa ku xiiso galin doona maqaallada mustaqbalka?

Sidee loo hirgeliyaa mobaylka 1C?
Sharaxaada qaabka gudaha ee macmiilka shabakada?
Mise waxaa laga yaabaa inaad xiisaynayso habka xulashada sifooyinka siidaynta cusub, horumarinta iyo tijaabinta?

Ku qor faallooyinka!

Source: www.habr.com

Add a comment