ProHoster > Блог > Nchịkwa > Platform "1C: Enterprise" - kedu ihe dị n'okpuru mkpuchi?
Platform "1C: Enterprise" - kedu ihe dị n'okpuru mkpuchi?
Ndewo, Habr!
N'isiokwu a, anyị ga-amalite akụkọ banyere otú o si arụ ọrụ n'ime ikpo okwu "1C: Enterprise 8" na ihe teknụzụ eji eme ihe na mmepe ya.
Gịnị mere anyị ji chee na nke a na-adọrọ mmasị? Mbụ, n'ihi na 1C: Enterprise 8 ikpo okwu bụ nnukwu (ihe karịrị 10 nde ahịrị nke koodu) ngwa na C ++ ( ahịa, ihe nkesa, wdg), Javascript (web ahịa), na, ọzọ na nso nso, Na Java. Nnukwu ọrụ nwere ike ịmasị ma ọ dịkarịa ala n'ihi ọnụ ọgụgụ ha, n'ihi na okwu ndị a na-adịghị ahụ anya na obere koodu koodu na-ebili n'ụzọ zuru ezu na ọrụ ndị dị otú ahụ. Nke abuo, "1C:Enterprise" bụ ngwaahịa a na-emegharị emegharị, "igbe igbe", ma enwere akụkọ ole na ole gbasara ụdị mmepe na Habré. Ọ na-atọkwa ụtọ mgbe niile ịmara otú ndụ dị na otu na ụlọ ọrụ ndị ọzọ.
Ya mere, ka anyị malite. N'isiokwu a, anyị ga-enye nkọwa nke ụfọdụ teknụzụ ndị a na-eji na ikpo okwu na-akọwapụta ọdịdị ala, na-enweghị mmiri miri emi na mmejuputa ya. N'ezie, maka ọtụtụ usoro, akụkọ zuru ezu ga-achọ isiokwu dị iche, na maka ụfọdụ, akwụkwọ dum!
Iji malite, ọ bara uru ikpebi ihe ndị bụ isi - ihe 1C: nyiwe ụlọ ọrụ bụ yana ihe mejupụtara ya. Azịza nke ajụjụ a adịghị mfe, n'ihi na okwu ahụ bụ "Platform" (maka nkenke, anyị ga-akpọ ya otú ahụ) na-ezo aka n'ụzọ maka ịmepụta ngwa azụmahịa, gburugburu oge ịgba ọsọ, na ngwá ọrụ nchịkwa. Enwere ike ịwapụta ihe ndị na-esonụ:
ụyọkọ nkesa
Onye ahịa “dị mkpa” nwere ike ijikọ na sava ahụ site na http na usoro ọnụọgụ abụọ nke ya
onye ahịa maka ịrụ ọrụ n'ime ụlọ okpukpu abụọ nwere nchekwa data dị na draịvụ ike ma ọ bụ nchekwa netwọkụ
onye ahịa weebụ
ngwa ihe nkesa nchịkwa ngwaọrụ
gburugburu mmepe (nke a maara dị ka Configurator)
gburugburu oge ịgba ọsọ maka iOS, gam akporo na Windows Phone (mkpo okwu mkpanaka 1C)
Akụkụ ndị a niile, ewezuga onye ahịa weebụ, ka edere na C++. Na mgbakwunye, enwere ọkwa ọkwa na nso nso a Ọgbọ ọhụrụ nhazi, nke e dere na Java.
Ngwa ala
A na-eji C++03 mepụta ngwa ala. Maka Windows, a na-eji Microsoft Visual C++ 12 (profaịlụ dakọtara na Windows XP) dị ka ihe nchịkọta, yana maka Linux na gam akporo - gcc 4.8, maka iOS - clang 5.0. Ọbá akwụkwọ ọkọlọtọ eji bụ otu maka sistemụ arụmọrụ na ndị na-achịkọta - STLPort. Ihe ngwọta a na-ebelata ohere nke mmejuputa STL-kpọmkwem njehie. Anyị na-eme atụmatụ ịkwaga na mmejuputa STL ejiri CLang bufee, ebe STLPort kwụsịrị yana ekwekọghị na gcc's C++11 mode nyeere.
Ntọala koodu nke ihe nkesa bụ 99% nkịtị, nke onye ahịa - 95%. Ọzọkwa, ọbụna mobile n'elu ikpo okwu na-eji otu C ++ koodu dị ka "nnukwu" otu, ọ bụ ezie na pasent nke ịdị n'otu e nwere dịtụ ala.
Dịka ọtụtụ ndị ọrụ C++, anyị anaghị ekwu na anyị na-eji 100% nke ike asụsụ na ọba akwụkwọ ya. Yabụ, anyị anaghị eji Boost eme ihe, otu n'ime njirimara asụsụ bụ nkedo ụdị ike. N'otu oge ahụ, anyị na-arụsi ọrụ ike:
STL (kpọmkwem eriri, arịa na algọridim)
otutu ihe nketa, gụnyere. otutu mmejuputa ihe nketa
usoro
ewezuga
smart pointers (mmejuputa omenala)
Site n'iji otutu ihe nketa nke ihu (klaasị zuru oke), ụdị akụrụngwa ga-ekwe omume, nke a ga-atụle n'okpuru.
Akụkụ
Iji hụ na modularity, arụ ọrụ niile kewara n'ime akụrụngwa, nke bụ ọba akwụkwọ dị ike (* .dll maka Windows, * .so maka Linux). Enwere ihe karịrị otu narị ngwa na iri ise na mkpokọta; ebe a bụ nkọwa nke ụfọdụ n'ime ha:
backend
Nwere igwe metadata ikpo okwu
accnt
Ihe ndị mmepe ngwa na-eji wuo ndekọ ndekọ ego (akara ngosi akaụntụ na ndekọ ndekọ ego)
bsl
Injin ogbugbu asụsụ agbakwunyere
nuke
Omenala mmejuputa iwu nke ebe nchekwa ihe
dbeng8
Injin nchekwa data faịlụ. Igwe nchekwa data nkesa faịlụ dị mfe dabere na ISAM, nke gụnyekwara ihe nrụpụta SQL dị mfe
wbase
Nwere klaasị na ọrụ ntọala maka mmejuputa interface onye ọrụ Windows - klaasị windo, ohere GDI, wdg.
Ịkekọrịta n'ọtụtụ akụkụ bara uru site n'ọtụtụ echiche:
Nkewa na-akwalite nhazi ka mma, ọkachasị mwepu koodu ka mma
Site n'usoro nke akụrụngwa ị nwere ike na-agbanwe agbanwe na-achịkọta nhọrọ nnyefe dị iche iche:
Dịka ọmụmaatụ, nrụnye ndị ahịa dị mkpa ga-enwe wbase, mana ọ gaghị enwe azụ azụ
mana na sava wbase, n'ụzọ megidere ya, ọ gaghị adị
nhọrọ abụọ a ga-enwekwa nuke na bsl
A na-ebunye akụrụngwa niile achọrọ maka nhọrọ mmalite a mgbe mmemme malitere. Nke a, karịsịa, dị mkpa maka ịdenye aha klas SCOM, nke a ga-atụle n'okpuru.
SCOM
Maka ire ere na ọkwa dị ala, a na-eji usoro SCOM, ọbá akwụkwọ yiri nke echiche na ATL. Maka ndị na-arụ ọrụ na ATL, anyị na-edepụta nkenke ike na njirimara ndị bụ isi.
Maka klaasị SCOM emebere nke ọma:
Na-enye ụzọ ụlọ ọrụ mmepụta ihe nke na-enye gị ohere ịmepụta klaasị site na mpaghara ọzọ mara naanị aha ya (na-egosighi mmejuputa ya)
Na-enye akụrụngwa nrụtụ aka na-agụta smart pointer. Ọ dịghị mkpa ka ejiri aka nyochaa oge ndụ klaasị SCOM
Na-enye gị ohere ịchọpụta ma ihe na-eme ihe na-eme otu interface ma gbanwee pointer na ihe ahụ na-egosi ihe na interface ahụ na-akpaghị aka.
Mepụta ihe ọrụ a na-enweta mgbe niile site na usoro get_service, wdg.
Dịka ọmụmaatụ, ị nwere ike ịkọwa otu klas maka ịgụ JSON (dịka ọmụmaatụ, JSONStreamReader) na mpaghara json.dll.
Enwere ike ịmepụta klaasị na ihe atụ site na akụrụngwa ndị ọzọ; ha kwesịrị ka edebanye aha ha na igwe SCOM:
SCOM_CLASS_ENTRY(JSONStreamReader)
Nke a nnukwu ga-akọwa ihe pụrụ iche static ndekọ klas, onye na-ewu ya ga-akpọ mgbe a na-ebunye akụrụngwa n'ime ebe nchekwa.
Mgbe nke a gasịrị, ị nwere ike ịmepụta ihe atụ ya na mpaghara ọzọ:
Iji kwado ọrụ, SCOM na-enye akụrụngwa mgbakwunye, kama mgbagwoju anya. N'ime ya bụ echiche nke usoro SCOM, nke na-eje ozi dị ka akpa maka ọrụ na-agba ọsọ (ya bụ, na-arụ ọrụ nke Ọrụ Locator), yana nwekwara njikọ na akụrụngwa mpaghara. Ejikọtara usoro SCOM na eri OS. N'ihi nke a, n'ime ngwa ị nwere ike ịnweta ọrụ dịka nke a:
SCOM_Process* process = core::current_process();
if (process)
return get_service<IMyService>(process);
Ọzọkwa, site n'ịgbanwe usoro ezi uche (SCOM) nke ejikọtara na eri, ị nwere ike nweta ngwa ndị nwere onwe ha site na echiche nke oghere ozi, na-agba n'ime otu eri ahụ. Nke a bụ otu onye ahịa anyị siri arụ ọrụ na nchekwa data faịlụ - n'ime otu usoro OS enwere usoro SCOM abụọ, nke jikọtara ya na onye ahịa, yana nke abụọ na sava ahụ. Usoro a na-enye anyị ohere ijikọ ederede koodu nke ga-arụ ọrụ ma na nchekwa data faịlụ mpaghara yana na ụdị "ezigbo" nke ndị ahịa-nkesa. Ọnụ ego maka ịdị n'otu dị otú ahụ dị elu, mana omume na-egosi na ọ bara uru.
Dabere na ụdị akụrụngwa SCOM, ma echiche azụmaahịa yana akụkụ interface nke 1C: Enterprise na-emejuputa atumatu.
Obere nyocha onye ọrụ
Site n'ụzọ, banyere interfaces. Anyị anaghị eji njikwa Windows ọkọlọtọ; a na-emejuputa njikwa anyị ozugbo na Windows API. Maka ụdị Linux, emela oyi akwa na-arụ ọrụ site na ọba akwụkwọ wxWidgets.
Ọbá akwụkwọ njikwa anaghị adabere n'akụkụ ndị ọzọ nke 1C: Enterprise na anyị na-eji ya n'ọtụtụ obere ihe ndị ọzọ dị n'ime.
N'ime afọ nke mmepe nke 1C: Enterprise, ọdịdị nke njikwa agbanweela, ma mgbanwe dị ukwuu na ụkpụrụ mere naanị otu ugboro, na 2009, na ntọhapụ nke 8.2 version na ọbịbịa nke "ejisiri ụdị". Na mgbakwunye na ịgbanwe ọdịdị ahụ, ụkpụrụ nke nhazi ụdị agbanweela n'ụzọ bụ isi - enwere njụjụ nke ntinye pixel-site-pixel nke ihe na-akwado usoro nhazi nke ihe. Na mgbakwunye, na ụdị ọhụrụ ahụ, njikwa anaghị arụ ọrụ ozugbo na ihe ngalaba, mana na DTO pụrụ iche (Ihe Nyefe Data).
Mgbanwe ndị a mere ka o kwe omume ịmepụta onye ahịa weebụ 1C:Enterprise nke na-emegharị mgbagha C++ nke njikwa Javascript. Anyị na-agbalị ịnọgide na-arụ ọrụ nhata n'etiti mkpa na webụ ahịa. N'ọnọdụ ebe nke a na-agaghị ekwe omume, dịka ọmụmaatụ n'ihi njedebe nke Javascript API dị (dịka ọmụmaatụ, ike iji faịlụ rụọ ọrụ dị oke), anyị na-ejikarị arụ ọrụ dị mkpa na-eji ihe nchọgharị edere na C++. Anyị na-akwado Internet Explorer na Microsoft Edge (Windows), Google Chrome (Windows), Firefox (Windows na Linux) na Safari (MacOS).
Na mgbakwunye, a na-eji teknụzụ ụdị ejiri emepụta ihe maka ngwa mkpanaka n'elu ikpo okwu 1C. Na ngwaọrụ mkpanaaka, a na-emejuputa njikwa njikwa site na iji teknụzụ sitere na sistemụ arụmọrụ, mana maka mgbanaka okirikiri nhọrọ ukwuu na nzaghachi interface, a na-eji otu koodu ahụ dị ka “nnukwu” 1C: nyiwe ụlọ ọrụ.
1C interface na Linux OS
1C interface na ekwentị mkpanaaka
1C interface na nyiwe ndị ọzọ 1C interface na Windows OS
Interface 1C - onye ahịa weebụ
emeghe isi
Agbanyeghị na anyị anaghị eji ọba akwụkwọ ọkọlọtọ maka ndị mmepe C ++ n'okpuru Windows (MFC, njikwa sitere na WinAPI), anyị anaghị ede ihe niile n'onwe anyị. Ekwupụtalarị ọbá akwụkwọ ahụ wxWijetị, ma anyị na-ejikwa:
Ndepụta na-aga n'ihu.
Ọzọkwa, anyị na-eji ụdị emegharịrị nke ukwuu Nnwale Google и Google Mock mgbe na-emepe emepe unit ule.
Ụlọ ọba akwụkwọ chọrọ mmegharị ka ọ dakọtara na ụdị nhazi akụrụngwa SCOM.
Ọgbasa nke 1C na-eme ka ikpo okwu bụrụ ezigbo nnwale nke ike maka ọba akwụkwọ ndị ejiri na ya. Ndị ọrụ dị iche iche na ọnọdụ dị iche iche na-ekpughe njehie ngwa ngwa na mpaghara koodu anaghị adịkarị eji. Anyị na-agbazi ha n'onwe anyị ma na-agbalị ịnyeghachi ha ndị ode akwụkwọ ọbá akwụkwọ. Ahụmahụ nke mmekọrịta na-apụta dị nnọọ iche.
Ndị mmepe curl и libetpan zaghachi ngwa ngwa maka ịdọrọ arịrịọ, mana patch ahụ, dịka ọmụmaatụ, n'ime OpenSSL Ọ dịghị mgbe anyị jisiri ike nyeghachi ya.
nkwubi
N'isiokwu ahụ, anyị emetụla ọtụtụ akụkụ nke mmepe nke 1C: Enterprise platform. N'ime oke edemede nke isiokwu a, anyị emetụla naanị akụkụ ụfọdụ na-adọrọ mmasị, n'echiche anyị, akụkụ.
Enwere ike ịchọta nkọwa zuru oke nke usoro ikpo okwu dị iche iche ebe a.
Kedu isiokwu ga-amasị gị n'isiokwu ndị dị n'ihu?
Kedu otu esi etinye usoro mkpanaka 1C?
Nkọwa nke nhazi ime nke onye ahịa weebụ?
Ma ọ bụ ma eleghị anya, ị nwere mmasị na usoro nke ịhọrọ atụmatụ maka mwepụta ọhụrụ, mmepe na ule?