Cilat janë kërkesat më të rëndësishme për aplikacionet biznesore? Në mesin e tyre janë detyrat më kryesore si më poshtë:
- Lehtësia e modifikimit/adaptimit të logjikës së punës së aplikacionit për detyrat e ndryshueshme të biznesit.
- Lehtësia e integrimit me aplikacione të tjera.
Si zgjidhet detyra e parë në 1C, është përshkruar shkurtimisht në seksionin "Kastomizimi dhe mbështetja"; ne do të kthehemi përsëri në këtë temë interesante në një nga artikujt e ardhshëm. Sot do të flasim për detyrën e dytë, atë të integrimit. Detyrat e integrimit
Detyrat e integrimit mund të jenë të ndryshme. Për disa detyra, mjafton një shkëmbim interaktiv të të dhënave – për shembull, për të dërguar në bankë listën e punonjësve për regjistrimin e kartave plastike për paga. Për detyra më komplekse, mund të nevojitet një shkëmbim të dhënash të automatizuar plotësisht, ndoshta me thirrje në logjikën biznesore të një sistemi të jashtëm. Ka detyra me karakter të specializuar, si integrimi me pajisje të jashtme (për shembull, pajisjet tregtare, skanerët mobilë, etj.) ose me sisteme të trashëguara ose të specializuara (për shembull, me sistemet e njohjes së etiketave RFID). Është jashtëzakonisht e rëndësishme për çdo detyrë të zgjidhet mekanizmi më i përshtatshëm i integrimit.
Mundësitë e integrimit me 1C
Ekzistojnë qasje të ndryshme për realizimin e integrimit me aplikacionet 1C; cili prej tyre të zgjidhet varet nga kërkesat e detyrës.
Realizimi mbi bazën e
- mekanizmave të integrimit zgjerimet e konfiguracionit . Zgjerimet janë, në thelb, një mekanizëm për shtesa që lejon krijimin e plotësimeve për zgjidhjet aplikative, pa ndryshuar vetë zgjidhjet aplikative. Nxjerrja e API-t të integrimit në zgjerimin e konfiguracionit do të shmangë vështirësitë gjatë bashkimit të konfiguracioneve gjatë kalimit në një version të ri të zgjidhjes standarde.
- Përdorimi i mekanizmave të integrimit të platformës, të cilët ofrojnë qasje nga jashtë në modelin e objektit të aplikacionit dhe nuk kërkojnë ndryshime në aplikacion ose krijimin e zgjerimeve. Avantazhi i këtij qashti është se nuk nevojitet ndryshimi i aplikacionit 1C. Disavantazhi është se nëse aplikacioni 1C është rregulluar, mund të kërkohen rregullime në aplikacionin e integruar. Një shembull i këtij qashtjeje është përdorimi i protokollit OData për integrim, i implementuar nga platforma 1C:Ndërmarrja (më shumë rreth tij më poshtë).
- Përdorimi i protokolleve aplikative të gatshme, të implementuara në zgjidhjet standarde 1C. Shumë zgjidhje standarde nga 1C dhe partnerët e saj implementojnë në bazë të mekanizmave të integrimit, protokolle aplikative të tyre që janë të orientuara ndaj detyrave specifike. Kur përdoren këta mekanizma, nuk është e nevojshme të shkruhet kod në anën e aplikacionit 1C, pasi ne përdorim mundësitë standarde të zgjidhjes aplikative. Në anën e aplikacionit 1C, na nevojitet vetëm të kryejmë disa konfigurime.
Mekanizmat e integrimit në platformën 1C:Ndërmarrje
Import/eksport të skedarëve
Për të zgjidhur një detyrë të tillë, supozojmë që kemi përpara nesh një detyrë për exchange dyanshëm të të dhënave mes aplikacionit 1C dhe një aplikacioni të rastësishëm. Për shembull, na nevojitet të sinkronizojmë listën e produkteve (referenca Nomenklatura) mes aplikacionit 1C dhe një aplikacioni të rastësishëm.

Për të zgjidhur një detyrë të tillë, mund të shkruajmë një zgjerim që eksporton referencën Nomenklatura në një skedar të formatit të caktuar (tekst, XML, JSON, …) dhe është në gjendje të lexojë këtë format.
Në platformë është implementuar një mekanizëm për serializimin e objekteve aplikative në XML si drejtpërdrejt, përmes metodave të kontekstit global ShkruajXML/LeximiXML, ashtu edhe me ndihmën e objektit ndihmës XDTO (XML Data Transfer Objects).
Çdo objekt në sistemin 1C:Ndërmarrje mund të serializohet në një paraqitje XML dhe anasjelltas.
Kjo funksion do të kthejë paraqitjen e objektit në formën XML:
Funksioni Objekt_Në_XML(Objekti)
ShkruajXML = E Re ShkruajXML();
ShkruajXML.PërcaktoDaten();
ShkruajXML(ShkruajXML, Objekti);
Kthe ShkruajXML.Mbylle();
FundFunksioni
kjo do të jetë pamja e eksportit të katalogut Nomenklatura në XML përmes XDTO:
&NëServer
Procedura EksportXMLNëServer()
RisiSerializatorXDTO = SerializatorXDTO;
ShkruajXMLERe = E Re ShkruajXML();
ShkruajXMLERe.HapeSkedarin("C:DataNomenklatura.xml", "UTF-8");
ShkruajXMLERe.ShkruajPërshkriminXML();
ShkruajXMLERe.ShkruajFilliminElementit("KatalogNomenklatura");
Zgjedhja = Katalogu.Nomenklatura.Zgjidh();
Ndërsa Zgjedhja.NëTjetër() Cikli
ObjektiNomenklaturë = Zgjedhja.MerrObjektin();
RisiSerializatorXDTO.ShkruajXML(ShkruajXMLERe, ObjektiNomenklaturë, QëllimiXML.Explicit);
FundCikli;
ShkruajXMLERe.ShkruajFundElementit();
ShkruajXMLERe.Mbylle();
FundProcedura
Duke e modifikuar disi kodin, ne eksportojmë katalogun në JSON. Produktet do të shkruhen në një masë; për larmishmëri, do të japim një variant anglisht të sintaksës:
&NëServer
Procedura EksportJSONNëServer()
RisiSerializatorXDTO = RisiSerializatorXDTO;
RisiShkruajësJSON = E Re ShkruajësJSON();
RisiShkruajësJSON.HapeSkedarin("C:DataNomenklatura.json", "UTF-8");
RisiShkruajësJSON.ShkruajFilliminObjektit();
RisiShkruajësJSON.ShkruajEmrinPronës("KatalogNomenklatura");
RisiShkruajësJSON.ShkruajFilliminMënyrës();
Zgjedhja = Katalogu.Nomenklatura.Zgjidh();
Ndërsa Zgjedhja.NëTjetër() Bëni
ObjektiNomenklaturë = Zgjedhja.MerrObjektin();
RisiShkruajësJSON.ShkruajFilliminObjektit();
RisiShkruajësJSON.ShkruajEmrinPronës("Nomenklatura");
RisiSerializatorXDTO.ShkruajJSON(RisiShkruajësJSON, ObjektiNomenklaturë, QëllimiXML.Përfshire);
RisiShkruajësJSON.ShkruajFundObjektit();
FundBëni;
RisiShkruajësJSON.ShkruajFundMënyrës();
RisiShkruajësJSON.ShkruajFundObjektit();
RisiShkruajësJSON.Mbylle();
FundProcedura
Më pas mbetet vetëm të kaloni të dhënat te konsumatori përfundimtar. Platforma 1C:Ndërmarrje mbështet protokollet kryesore të internetit HTTP, FTP, POP3, SMTP, IMAP, përfshirë versionet e tyre të sigurta. Po ashtu, për kalimin e të dhënave mund të përdoren HTTP dhe/ose Shërbime Web.
Shërbime HTTP dhe web

Aplikacionet 1C mund të realizojnë shërbime HTTP dhe web, si dhe të thërrasin shërbime HTTP dhe web të realizuara nga aplikacione të tjera.
REST ndërfaqja dhe protokolli OData
Deri në versionin 8.3.5, platforma 1C:Ndërmarrje mund të formojë automatikisht për të gjithë zgjidhjen aplikative. Çdo objekt konfigurimi (katalog, dokument, regjistër informacioni etj.) mund të bëhet i disponueshëm për marrjen dhe modifikimin e të dhënave përmes ndërfaqes REST. Si protokoll qasje, platforma përdor protokollin versioni 3.0. Publikimi i shërbimeve OData bëhet nga menuja e Konfiguratorit "Administrimi -> Publikimi në serverin web", kutia "Publiko ndërfaqen standarde OData" duhet të jetë e shënuar. Formatet atom/XML dhe JSON mbështeten. Pas publikimit të zgjidhjes aplikative në serverin web, sistemet e jashtme mund t'i aksesojnë ato përmes ndërfaqes REST duke përdorur kërkesa HTTP. Për të punuar me aplikacionin 1C nëpërmjet protokollit OData, programimi në anën e 1C nuk kërkohet.
Pra, URL e formës http:////odata/standard.odata/Catalog_Nomenklatura do të na kthejë përmbajtjen e katalogut Nomenklatura në formatin XML — një koleksion elementesh entry (titulli i mesazhit është lënë jashtë për shkak të shkurtësisë):
http://server/Config/odata/standard.odata/Catalog_Nomenklatura(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')
2016-06-06T16:42:17
35d1f6e4-289b-11e6-8ba4-e03f49b16074
AAAAAgAAAAA=
false
000000001
Kondicioner Mitsubishi
Kapaciteti 2,5 kW, modet e punës: ngrohje/freshk
http://server/Config/odata/standard.odata/Catalog_Nomenklatura(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')
...
Duke shtuar në URL-në e mëposhtme "?$format=application/json", ne do të marrim përmbajtjen e katalogut Nomenklatura në formatin JSON (URL e formës http:////odata/standard.odata/Catalog_Nomenklatura?$format=application/json ):
{
"odata.metadata": "http://server/Config/odata/standard.odata/$metadata#Catalog_Nomenklatura",
"value": [{
"Ref_Key": "35d1f6e4-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAgAAAAA=",
"DeletionMark": false,
"Code": "000000001",
"Description": "Kondicioner Mitsubishi",
"Περιγραφή": "Kapaciteti 2,5 kW, modet e punës: ngrohje/freshk"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Kondicioner Daikin",
"Περιγραφή": "Kapaciteti 3 kW, modet e punës: ngrohje/freshk"
}, …
Burime të jashtme të të dhënave

Në disa raste, shkëmbimi i të dhënave përmes mund të jetë zgjidhja optimale. Burimet e jashtme të të dhënave janë një objekt aplikativ i konfigurimit 1C, që lejon ndërveprimin me çdo bazë të dhënash që përputhet me ODBC si për lexim ashtu edhe për shkruar. Burimet e jashtme të të dhënave janë të disponueshme si në Windows ashtu edhe në Linux.
Mekanizmi i shkëmbimit të të dhënave
është i destinuar si për krijimin e sistemeve territorialisht të shpërndara mbi 1C:Enterprise, ashtu edhe për organizimin e shkëmbimit të të dhënave me sisteme të tjera informative që nuk bazohet në 1C:Enterprise.
Ky mekanizëm përdoret aktivisht në implementimet e 1C, dhe gama e detyrave që zgjidhen me ndihmën e tij është mjaft e gjerë. Kjo përfshin shkëmbimin e të dhënave midis aplikacioneve 1C, të instaluara në degët e organizatës, si dhe shkëmbimin midis aplikacionit 1C dhe sitit të dyqanit online, dhe shkëmbimin e të dhënave midis aplikacionit server 1C dhe klientit mobil (të krijuar me ndihmën e platformës mobile 1C:Enterprise), dhe shumë më tepër.
Një nga konceptet kyçe në mekanizmin e shkëmbimit të të dhënave është plani i shkëmbimit. Plani i shkëmbimit është një lloj i veçantë objekti aplikativ të platformës 1C, të cilat përcaktojnë, për shembull, përbërjen e të dhënave që do të marrin pjesë në shkëmbim (cilat saktësisht katalogë, dokumente, regjistra etj.). Plani i shkëmbimit përmban gjithashtu informacion rreth pjesëmarrësve në shkëmbim (të ashtuquajturit pika shkëmbimi).
Shtesa e dytë e mekanizmit të shkëmbimit të të dhënave është mekanizmi i regjistrimit të ndryshimeve. Ky mekanizëm ndjek automatikisht në sistem ndryshimet e të dhënave që duhet të dërgohen konsumatorëve të fundit në kuadër të planit të shkëmbimit. Me ndihmën e këtij mekanizmi, platforma ndjek ndryshimet që kanë ndodhur nga sinjalizimi i fundit, dhe lejon minimizimin e sasisë së të dhënave që dërgohen në kuadër të seancës së ardhshme të sinjalizimit.
Shkëmbimi i të dhënave ndodh përmes mesazheve XML me një strukturë të caktuar. Mesazhi përmban të dhënat që kanë ndryshuar nga sinkronizimi i fundit me nyjën, si dhe disa informacione shërbyese. Struktura e mesazheve mbështet numërimin e mesazheve dhe lejon marrjen e konfirmimeve nga nyja pranëse për pranimet e mesazheve. Ky konfirmim përmbushet në çdo mesazh që vjen nga nyja pranëse, në formën e numrit të mesazhit të fundit të pranuar. Numërimi i mesazheve lejon platformën të kuptojë cilat të dhëna janë transferuar me sukses në nyjën pranëse, duke shmangur përsëritjen e transferimit dhe duke kaluar vetëm të dhënat e ndryshuara nga prania e mesazhit të fundit me pranim nga nyja dërgues. Me këtë skemë funksionimi, sigurohet dorëzimi i garantuar edhe në kanale të pasigurt të transmetimit dhe humbje mesazhesh.
Komponentët e jashtëm
Në disa raste, kur zgjidhni probleme të integrimit, është e nevojshme të përballeni me kërkesa specifike, për shembull, protokollet e ndërveprimit, format e të dhënave, me të cilat platforma 1C:Enterprise nuk parashikon të punojë. Për këtë grup problemesh, platforma parashikon , e cila lejon krijimin e moduleve që lidhen dinamikisht, duke zgjeruar funksionalitetin e 1C:Enterprise.
Një shembull tipik i një problemi me këto kërkesa mund të jetë integrimi i zgjidhjes aplikative 1C me pajisjet tregtare, duke filluar nga pesha dhe duke përfunduar me kasa dhe skanera kodesh. Komponentët e jashtëm mund të lidhen si në anën e serverit 1C:Enterprise ashtu edhe në pjesën klient (duke përfshirë gjithashtu klientin në ueb dhe 1C:Enterprise). Teknologjia e komponentëve të jashtëm parashikon një ndërfaqe programimi (C++) mjaft të thjeshtë dhe të kuptueshme për ndërveprimin e komponentit me platformën 1C:Enterprise, e cila duhet të realizohet nga zhvilluesi.
Mundësitë që hapen me përdorimin e komponentëve të jashtëm janë mjaft të gjera. Mund të realizoni ndërveprimin sipas një protokolli specifik të shkëmbimit të të dhënave me pajisje dhe sisteme të jashtme, të integroni algoritme specifike për përpunimin e të dhënave dhe formateve të të dhënave etj.
Mekanizmat e vjetra të integrimit
Në platformë janë të disponueshme mekanizmat e integrimit që nuk rekomandohen të përdoren në zgjidhjet e reja; ato janë lënë për arsye të kompaktibilitetit mbrapa, si dhe në rast se pala tjetër nuk mund të punojë me protokollet më moderne. Njëri prej tyre është puna me skedarë në formatin DBF (mbështetet në gjuhën e integruar me anë të objektit XBase).
Një mekanizëm tjetër i vjetruar i integrimit është përdorimi i teknologjisë COM (disponohet vetëm në platformën Windows). Platforma 1C:Enterprise ofron dy mënyra integrimi për Windows, që përdorin teknologjinë COM: Serveri i Automattizmit dhe Lidha Ejashteme. Ato janë shumë të ngjashme, por një nga ndryshimet themelore është se në rastin e Serverit të Automattizmit nis një aplikacion të plotë klienti 1C:Enterprise 8, ndërsa në rastin e lidhjes externe nis në një server COM relativisht të vogël brenda procesit. Kështu, në rastin e punës përmes Serverit të Automattizmit, mund të shfrytëzoni funksionalitetin e aplikacionit klient, duke kryer veprime të ngjashme me veprimet interaktive të përdoruesit. Kur përdoret lidhja externe, mund të përdoren vetëm funksionet e logjikës biznesore, të cilat mund të realizohen si në anën e klientit të lidhjes, ku krijohet serveri brenda procesit, ashtu edhe të thirren logjika e biznesit në anën e serverit 1C:Enterprise.
Gjithashtu, teknologjia COM mund të përdoret për t'u adresuar sistemeve të jashtme nga kodi i aplikacionit në platformën 1C:Enterprise. Në këtë rast, aplikacioni 1C shërben si klient COM. Por duhet theksuar se këto mekanizma do të funksionojnë vetëm në rast se serveri 1C operon në një ambient Windows.
Mekanizmat e integrimit të realizuar në konfigurimet standarde
Formati EnterpriseData

Në disa konfigurime 1C (lista më poshtë) mbi bazën e mekanizmit të përmendur më sipër për shkëmbim të të dhënave është realizuar një mekanizëm i gatshëm për shkëmbim të të dhënave me aplikacione të jashtme, që nuk kërkon ndryshimin e kodit burimor të konfigurimeve (përgatitja për shkëmbim të të dhënave bëhet në cilësimet e zgjidhjeve aplikative):
- «1C:ERP Menaxhimi i ndërmarrjes 2.0»
- «Automatizimi i Kompleksit 2»
- «Kontabiliteti i Ndërmarrjes», edicioni 3.0
- «Kontabiliteti i Ndërmarrjes KORP», edicioni 3.0
- «Pikë Shitjeje», edicioni 2.0
- «Menaxhimi i Tregtisë Bazë», redaktimi 11
- «Menaxhimi i Tregtisë», redaktimi 11
- «Paga dhe Menaxhimi i Personelit KORP», redaktimi 3
Për ndërrimin e të dhënave përdoret formati , i bazuar në XML. Formati është orientuar drejt biznesit - strukturat e përshkruara në të përputhen me entitetet e biznesit (dokumentet dhe elementet e regjistrave), të paraqitura në programet 1C, për shembull: akti i punëve të kryera, urdhri i paraqitjes në kasë, kontraktori, nomenklatura etj.
Ndërrimi i të dhënave midis aplikacionit 1C dhe aplikacionit të jashtëm mund të ndodhë:
- nëpërmjet një katalogu të dedikuar të skedarëve
- nëpërmjet katalogut FTP
- nëpërmjet një shërbimi web, i vendosur në anën e aplikacionit 1C. Skedari me të dhënat dërgohet si parametër i metodave web
- nëpërmjet postës elektronike
Në rastin e ndërrimit nëpërmjet shërbimit web, aplikacioni i jashtëm do të iniciojë seancën e ndërrimit të të dhënave duke thirrur metodat e përcaktuara të aplikacionit 1C. Në rastet e tjera, iniciatori i seancës së ndërrimit do të jetë aplikacioni 1C (duke vendosur skedarin me të dhënat në katalogun përkatës ose duke dërguar skedarin me të dhënat në adresën e mailit të caktuar).
Gjithashtu, në anën e 1C konfigurohet frekuenca me të cilën do të ndodhi sinkronizimi (për opsionet me ndërrim të skedarëve nëpërmjet katalogut dhe postës elektronike):
- sipás një orari (me një frekuencë të caktuar)
- duke e bërë manualisht; përdoruesi do të duhet të nisë manualisht sinkronizimin çdo herë që të ketë nevojë
Konfirmimi i mesazheve
Aplikacionet 1C mbajnë shënim për mesazhet e dërguara dhe të pranuara të sinkronizimit dhe presin të njëjtën nga aplikacionet e jashtme. Kjo e lejon përdorimin e mekanizmit të numërimit të mesazheve, të përshkruar më sipër në seksionin “Mekanizmi i ndërrimit të të dhënave”.
Aplikacionet 1C gjatë sinkronizimit transmetojnë vetëm informatat për ndryshimet që kanë ndodhur me entitetet biznesore që nga sinkronizimi i fundit (për të minimizuar sasinë e informacionit të transmetuar). Gjatë sinkronizimit të parë, aplikacioni 1C do të shkarkojë të gjitha entitetet biznesore (për shembull, elementët e regjistrit të nomenklaturës) në formatin EnterpriseData në një skedar XML (pasi të gjithë ato janë "të reja" për aplikacionin e jashtëm). Aplikacioni i jashtëm duhet të përpunojë informacionin nga skedari XML i ardhur nga 1C dhe gjatë sesionit të ardhshëm të sinkronizimit të vendosë në skedarin që dërgohet në 1C, në një seksion të veçantë XML, informacionin që mesazhi nga 1C për një numër të caktuar është pranuar me sukses. Mesazhi i konfirmimit është për aplikacionin 1C një sinjal se të gjitha entitetet biznesore janë përpunuar me sukses nga aplikacioni i jashtëm dhe nuk është më e nevojshme të transmetohet informacion rreth tyre. Përveç konfirmimit, skedari XML nga aplikacioni i jashtëm gjithashtu mund të përmbajë të dhëna për sinkronizimin nga ana e aplikacionit (për shembull, dokumentet e realizimit të produkteve dhe shërbimeve).
Pas marrjes së mesazhit të konfirmimit, aplikacioni 1C shënon të gjitha ndryshimet e dërguara në mesazhin e mëparshëm si të sinkronizuara me sukses. Vetëm ndryshimet e nesinkronizuara në entitetet biznesore (krijimi i entiteteve të reja, ndryshimi dhe fshirja e ekzistueseve) do të dërgohen në aplikacionin e jashtëm gjatë sesionit të ardhshëm të sinkronizimit.

Kur dërgohen të dhënat nga aplikacioni i jashtëm në aplikacionin 1C, skenari ndryshon në të kundërt. Aplikacioni i jashtëm duhet të plotësojë seksionin e konfirmimit në skedarin XML përkatës dhe të vendosë të dhënat biznesore për sinkronizim nga ana e tij në formatin EnterpriseData.

Shkëmbimi i thjeshtuar i të dhënave pa konfirmim
Për raste të integrimit të thjeshtë, kur mjafton vetëm të transmetohet informacioni nga aplikacioni i jashtëm në aplikacionin 1C dhe nuk nevojitet kthimi i të dhënave nga aplikacioni 1C në aplikacionin e jashtëm (për shembull, integrimi i dyqanit online që transmeton informacionin e shitjeve në "1C: Kontabilitetin"), ka një variant të thjeshtuar të funksionimit përmes një shërbimi web (pa konfirmim), që nuk kërkon konfigurime nga ana e aplikacionit 1C.
Zgjidhje të specializuara të integrimit
Ekziston një zgjidhje standarde "1C: Konvertimi i të dhënave", e cila përdor mekanizmat e platformës për të konvertuar dhe shkëmbyer të dhëna midis konfigurimeve standarde të 1C, por gjithashtu mund të përdoret për integrimin me aplikacione të jashtme.
Integrimi me zgjidhjet bankare
Standarti , e zhvilluar nga specialistët e 1C më shumë se 10 vjet më parë, faktikisht ka bërë standardin e industrisë në Rusi. Hapi tjetër në këtë drejtim është teknologjia , e cila lejon dërgimin e dokumenteve të pagesës në bankë dhe marrjen e ekstrakteve nga banka menjëherë nga programet e sistemit "1C: Ndërmarrjet" me një klikim në programin "1C"; në këtë rast nuk kërkohet instalimi dhe ekzekutimi i programeve shtesë në kompjuterin e klientit.
Ka gjithashtu .
Të tjera
Meritojnë përmendjen , standardi i shkëmbimit të informacionit tregtar (i zhvilluar në bashkëpunim me Microsoft, Intel, Price.ru dhe kompani të tjera), .
Burimi: habr.com
