Hei Habr!
Munyaya ino tichatanga nyaya pamusoro pekuti inoshanda sei mukati
Nei tichifunga kuti izvi zvinonakidza? Chekutanga, nekuti iyo 1C:Enterprise 8 chikuva yakakura (inopfuura mamirioni gumi mitsetse yekodhi) application muC++ (mutengi, server, nezvimwewo), JavaScript (web mutengi), uye, nguva pfupi yadarika, Uye.
Saka ngatitangei. Muchinyorwa chino tichapa mhedziso yemamwe matekinoroji anoshandiswa papuratifomu uye kuburitsa mamiriro, pasina kunyura zvakadzama mukuita. Zvamazvirokwazvo, nokuda kwemitoo yakawanda, nhau ine udzame ingada chinyorwa chakaparadzana, uye nokuda kwavamwe, bhuku rose!
Kutanga, zvakakodzera kusarudza pazvinhu zvakakosha - kuti 1C:Enterprise chikuva chii uye kuti ine zvikamu zvipi. Mhinduro kumubvunzo uyu haisi nyore, nekuti izwi rekuti "Platform" (kupfupika, ticharidaidza saizvozvo) rinoreva nzira yekugadzira bhizinesi maapplication, nharaunda yekumhanya, uye maturusi ekutonga. Zvinotevera zvikamu zvinogona kunyatsosiyaniswa:
- server cluster
- "mutete" mutengi anokwanisa kubatanidza kune sevha kuburikidza ne http uye yayo binary protocol
- mutengi wekushanda mune maviri-tier architecture ane dhatabhesi iri pane hard drive kana network folda
- web client
- application server management maturusi
- budiriro nharaunda (inozivikanwa seConfigurator)
- Runtime nharaunda yeIOS, Android uye Windows Foni (mobile platform 1C)
Zvose izvi zvikamu, kunze kwemutengi wewebhu, zvakanyorwa muC ++. Pamusoro pazvo, kune ichangobva kuziviswa
Native apps
C++03 inoshandiswa kugadzira zvikumbiro zvemuno. YeWindows, Microsoft Visual C++ 12 (profile inoenderana neWindows XP) inoshandiswa semubatanidzwa, uye yeLinux ne Android - gcc 4.8, yeIOS - clang 5.0. Iyo raibhurari yakajairwa inoshandiswa yakafanana kune ese anoshanda masisitimu uye compilers - STLPort. Iyi mhinduro inoderedza mukana weSTL kuita-chaiwo zvikanganiso. Parizvino tiri kuronga kutamira kuSTL kuita iyo ngarava neClang, sezvo STLPort yakamiswa uye haienderane negcc's C++11 inogoneswa modhi.
Iyo server's code base ndeye 99% yakajairika, yemutengi - 95%. Zvakare, kunyangwe iyo nharembozha inoshandisa iyo yakafanana C ++ kodhi se "hombe" imwe, kunyangwe iyo muzana yekubatana ikoko yakati pasi.
Kufanana nevazhinji vashandisi veC++, hatizviti tinoshandisa zana rezvinogona zvemutauro nemaraibhurari awo. Saka, isu hatisi kushandisa Boost, uye imwe yemitauro yemutauro ndeye simba remhando yekukanda. Panguva imwecheteyo, isu tinoshandisa nekushingaira:
- STL (kunyanya tambo, midziyo uye algorithms)
- nhaka yakawanda, kusanganisira. akawanda kuita nhaka
- matemplate
- kunze
- smart pointer (tsika kuita)
Nekushandisa akawanda nhaka yemainterfaces (akazara abstract makirasi), yechikamu modhi inogoneka, iyo ichakurukurwa pazasi.
Components
Kuti tive nechokwadi che modularity, kushanda kwese kwakakamurwa kuita zvikamu, zvinova maraibhurari anochinja (*.dll yeWindows, *.so yeLinux). Kune zvinopfuura zana nemakumi mashanu zvikamu zvakazara; heino tsananguro yezvimwe zvacho:
backend
Iine injini yepuratifomu metadata
accnt
Zvinhu zvinoshandiswa nevanogadzira maapplication kuvaka marekodhi eakaunzi (machati emaakaundi uye marejista eakaunzi)
bsl
Embedded mutauro execution injini
nuke
Tsika yekuitwa kwememory allocator
dbeng8
Faira database injini. Iyo yakapusa faira server database injini yakavakirwa paISAM, iyo inosanganisirawo iri nyore SQL processor
wbase
Iine makirasi ekutanga uye mabasa ekushandisa iyo Windows mushandisi interface - makirasi ehwindo, GDI kuwana, nezvimwe.
Kupatsanura muzvikamu zvakawanda kunobatsira kubva kune akati wandei maonero:
- Kuparadzana kunosimudzira dhizaini iri nani, kunyanya iri nani kodhi yekuzviparadzanisa nevamwe
- Kubva pane seti yezvikamu iwe unogona flexible kuunganidza dzakasiyana sarudzo dzekutumira:
- Semuenzaniso, kuisirwa kwemutengi mutete kuchava newbase, asi hakuzove nebackend
- asi pane wbase server, pane zvinopesana, hazvizove
- zvese sarudzo zvichave zvine nuke uye bsl
Zvese zvikamu zvinodiwa pakuita sarudzo iyi zvinotakurwa kana chirongwa chatanga. Izvi, kunyanya, zvakakosha pakunyoresa maSCOM makirasi, ayo achakurukurwa pazasi.
SCOM
Pakuora padanho rezasi, iyo SCOM system inoshandiswa, raibhurari yakafanana mune ideology kune ATL. Kune avo vasina kushanda neATL, isu tinonyora muchidimbu kugona kukuru uye maficha.
Yekirasi yakagadzirirwa SCOM kirasi:
- Inopa nzira dzefekitori dzinokutendera kuti ugadzire kirasi kubva kune chimwe chikamu uchiziva chete zita rayo (pasina kuburitsa mashandisiro)
- Inopa referensi-kuverenga smart pointer zvivakwa. SCOM kirasi yeupenyu haidi kutariswa nemaoko
- Inokutendera iwe kuti uone kana chinhu chinoshandisa chaiyo interface uye chingoshandura chinongedzo kune icho chinhu kune chinongedzo kune chinongedzo.
- Gadzira chinhu chesevhisi chinogara chichiwanikwa kuburikidza nekuwana_service nzira, nezvimwe.
Semuenzaniso, unogona kutsanangura kirasi yekuverenga JSON (semuenzaniso, JSONStreamReader) muchikamu chejson.dll.
Makirasi uye zviitiko zvinogona kugadzirwa kubva kune zvimwe zvikamu; ivo vanofanirwa kunyoreswa mumushini weSCOM:
SCOM_CLASS_ENTRY(JSONStreamReader)
Iyi macro inotsanangura yakakosha static rekodhi kirasi, mugadziri wayo achadaidzwa kana chikamu chacho chaiswa mundangariro.
Mushure meizvi, iwe unogona kugadzira muenzaniso wayo mune chimwe chikamu:
IJSONStreamReaderPtr jsonReader = create_instance<IJSONStreamReader>(SCOM_CLSIDOF(JSONStreamReader));
Kuti utsigire masevhisi, SCOM inopa imwezve, yakaomesesa zvivakwa. Pakati payo ipfungwa yeSCOM process, iyo inoshanda semudziyo wekumhanyisa masevhisi (kureva, inotamba basa reSevhisi Locator), uye zvakare ine inosungira kune zvemuno zviwanikwa. Maitiro eSCOM akasungirirwa kune OS thread. Nekuda kweizvi, mukati meiyo application unogona kugamuchira masevhisi akadai:
SCOM_Process* process = core::current_process();
if (process)
return get_service<IMyService>(process);
Uyezve, nekuchinja zvine musoro (SCOM) maitiro akasungirirwa kune shinda, unogona kuwana zvikumbiro zvakasununguka kubva pakuona kwenzvimbo yeruzivo, ichimhanya mukati metambo imwe chete. Aya ndiwo mashandiro anoita mutengi wedu mutete ane dhatabhesi refaira - mukati meimwe OS maitiro mune maviri SCOM maitiro, imwe yakabatana nemutengi, uye yechipiri neserver. Iyi nzira inotibvumira kuti tibatanidze kunyorwa kwekodhi iyo inoshanda zvese pane yenzvimbo faira dhatabhesi uye mu "chaiyo" mutengi-server vhezheni. Mutengo wekufanana kwakadaro uri pamusoro, asi maitiro anoratidza kuti zvakakosha.
Zvichienderana neiyo SCOM chikamu modhi, ese ari maviri bhizinesi logic uye interface chikamu che1C: Bhizinesi rinoitwa.
Mushandisi interface
Nenzira, nezve interfaces. Isu hatishandise zvakajairwa Windows zvidzoreso; zvidzoreso zvedu zvinoiswa zvakananga paWindows API. Kune iyo Linux vhezheni, dhizaini yakagadzirwa inoshanda kuburikidza ne wxWidgets raibhurari.
Raibhurari yezvinodzora haina kutsamira pane zvimwe zvikamu zve1C: Bhizinesi uye inoshandiswa nesu mune akati wandei madiki emukati zvinoshandiswa.
Mumakore ekuvandudzwa kwe1C: Bhizinesi, kutaridzika kwekutonga kwakashanduka, asi shanduko yakakomba yemisimboti yakaitika kamwe chete, muna 2009, nekuburitswa kweiyo vhezheni 8.2 uye nekuuya kwe "akagadziriswa mafomu". Pamusoro pekuchinja chitarisiko, musimboti wechimiro chechimiro wakachinja zvakanyanya - pakanga paine kurambwa kwepixel-ne-pixel kumira kwezvinhu mukuda kwekuyerera-kurongeka kwezvinhu. Uye zvakare, mune iyo nyowani modhi, zvidzoreso hazvishande zvakananga nezvinhu zvedomasi, asi zvine maDTO akakosha (
Shanduko idzi dzakaita kuti zvikwanise kugadzira 1C:Enterprise web client inodzokorora iyo C++ logic yeJavaScript controls. Isu tinoedza kuchengetedza kushanda kwakaenzana pakati pevatete uye webhu vatengi. Muzviitiko izvo zvisingagoneke, semuenzaniso nekuda kwekugumira kweJavaScript API iripo (semuenzaniso, kugona kushanda nemafaira kuri kushoma), isu tinowanzo kuita basa rinodiwa tichishandisa browser yekuwedzera yakanyorwa muC ++. Isu parizvino tinotsigira Internet Explorer neMicrosoft Edge (Windows), Google Chrome (Windows), Firefox (Windows neLinux) uye Safari (MacOS).
Pamusoro pezvo, tekinoroji yemafomu anogadziriswa inoshandiswa kugadzira chinongedzo chemafoni ekushandisa papuratifomu ye1C. Pane nharembozha, kupihwa kwezvinodzora kunoitwa pachishandiswa matekinoroji anowanikwa kune anoshanda sisitimu, asi kune iyo fomu yekumisikidza logic uye interface mhinduro, iyo kodhi imwechete inoshandiswa semu "hombe" 1C:Enterprise platform.
1C interface paLinux OS
1C interface pane nharembozha
1C interface pane mamwe mapuratifomu
1C interface paWindows OS
Interface 1C - mutengi wewebhu
Open mabviro
Kunyangwe isu tisingashandisi akajairwa maraibhurari eC ++ vanogadzira pasi peWindows (MFC, zvinodzora kubva kuWinAPI), isu hatinyore zvese zvikamu isu pachedu. Raibhurari yakatotaurwa
cURL yekushanda neHTTP neFTP.OpenSSL yekushanda necryptography uye kumisikidza TLS yekubatanidzalibxml2 uye libxslt ye XML parsinglibetpan yekushanda nemaprotocol etsamba (POP3, SMTP, IMAP)mimetic kuongorora mameseji eemailsqllite yekuchengetedza matanda evashandisiICU kuitira internationalization
Ndaza inoenderera mberi.
Uyezve, tinoshandisa shanduro yakagadziridzwa zvakanyanya
Maraibhurari aida kuchinjirwa kuti aenderane nechikamu cheSCOM chikamu chesangano modhi.
Kuwanda kwe1C kunoita kuti chikuva chiyedzo chakanakisa chesimba kumaraibhurari anoshandiswa mairi. Yakasiyana-siyana yevashandisi uye zviitiko zvinokurumidza kuratidza zvikanganiso munzvimbo dzisingawanzo shandiswa dzekodhi. Tinozvigadzirisa pachedu uye tinoedza kuzvidzorera kuvanyori veraibhurari. Chiitiko chekudyidzana chinoshanduka kuva chakasiyana kwazvo.
Developers
mhedziso
Muchinyorwa icho takabata pane akati wandei maficha ekuvandudzwa kwe1C: Enterprise platform. Muchikamu chakaganhurirwa chechinyorwa, takabata chete zvimwe zvinofadza, mumaonero edu, zvinhu.
Tsanangudzo yakajairika yemaitiro akasiyana epuratifomu anogona kuwanikwa
Inyaya dzipi dzaungafarira munyaya dzinotevera?
Iyo 1C mobile platform inoshandiswa sei?
Tsanangudzo yemukati memutengi wewebhu?
Kana kuti pamwe unofarira maitiro ekusarudza maficha ezvitsva zvinoburitswa, kusimudzira uye kuyedza?
Nyora mumashoko!
Source: www.habr.com