Kādi ir vissvarīgākie prasības biznesa lietojumprogrammām? Dažas no galvenajām ir šādas uzdevumi:
- Lietojumprogrammas darba loģikas vieglums, pielāgojoties mainīgajām biznesa vajadzībām.
- Integrācijas vieglums ar citām lietojumprogrammām.
Tas, kā 1C risina pirmo uzdevumu, tika īsi aprakstīts sadaļā "Pielāgošana un atbalsts" ; mēs vēl atgriezīsimies pie šīs interesantās tēmas kādā no nākotnes rakstiem. Šodien runāsim par otro uzdevumu, par integrāciju.
Integrācijas uzdevumi
Integrācijas uzdevumi var būt dažādi. Dažos gadījumos pietiek ar vienkāršu interaktīvu datu apmaiņu - piemēram, lai nosūtītu bankai darbinieku sarakstu, lai noformētu algu plastmasas kartes. Sarežģītākiem uzdevumiem var būt nepieciešama pilnībā automatizēta datu apmaiņa, iespējams, ar ārējas sistēmas biznesa loģikas pieslēgumu. Ir uzdevumi, kas ir specializēta rakstura, piemēram, integrācija ar ārējiem aprīkojumiem (piemēram, tirdzniecības aprīkots, mobilie skeneri utt.) vai ar mantojušām vai specializētām sistēmām (piemēram, RFID marķiera atpazīšanas sistēmām). Ļoti svarīgi katram uzdevumam izvēlēties vispiemērotāko integrācijas mehānismu.
Integrācijas iespējas ar 1C
Ir dažādi pieejas, kā īstenot integrāciju ar 1C lietojumprogrammām, kuru izvēlēties - atkarīgs no uzdevuma prasībām.
- Īstenošana, balstoties uz , ko nodrošina platforma, tās pašu specializēto API 1C lietojumprogrammas pusē (piemēram, Web- vai HTTP pakalpojumu komplekti, kas tiks izsaukti no trešo personu lietojumprogrammām, lai apmainītos ar datiem ar 1C lietojumprogrammu). Šī pieejas priekšrocība ir API izturība pret izmaiņām 1C lietojumprogrammas pusē. Pieejas īpatnība ir tāda, ka jāmaina 1C tipiskā risinājuma avota kods, kas potenciāli var prasīt piepūli, apvienojot avota kodus, pārejot uz jaunu konfigurācijas versiju. Šajā gadījumā var noderēt jauna progresīva funkcionalitāte — . Paplašinājumi ir būtībā spraudņu mehānisms, kas ļauj izveidot pielāgojumus lietojumprogrammām, nemainot pašas lietojumprogrammas. Integrācijas API pārvietošana konfigurācijas paplašinājumā ļaus izvairīties no sarežģījumiem, apvienojot konfigurācijas, pārejot uz jauno standarta risinājuma versiju.
- Platformas integrācijas mehānismu izmantošana, kas nodrošina piekļuvi ārpusē pie lietojumprogrammas objektu modeļa un neprasa lietojumprogrammas pārbūvi vai paplašinājumu izveidi. Šī pieejas priekšrocība ir tā, ka nav jāmaina 1C lietojumprogramma. Mīnuss ir tas, ka, ja 1C lietojumprogramma ir bijusi pārveidota, tad var būt nepieciešamas pārveides integrētajā lietojumprogrammā. Šāda pieejas piemērs ir OData protokola izmantošana integrācijai, kas ir īstenots 1C: Uzņēmuma platformas pusē (sīkāk par to zemāk).
- Gatavo lietojumprogrammu protokolu izmantošana, kas ir īstenoti standarta 1C risinājumos. Daudzi standarta risinājumi no 1C un partneriem īsteno savus lietojumprogrammu protokolus, kas ir balstīti uz platformas nodrošinātajiem integrācijas mehānismiem, orientējoties uz konkrētām uzdevumu prasībām. Izmantojot šos mehānismus, nav nepieciešams rakstīt kodu 1C lietojumprogrammas pusē, jo mēs izmantojam standarta lietojumprogrammas iespējas. 1C lietojumprogrammas pusē mums ir jānokārto tikai noteiktas iestatījumi.
Integrācijas mehānismi 1C:Uzņēmuma platformā
Failu imports/eksports
Pieņemsim, ka mums ir uzdevums veikt divvirzienu datu apmaiņu starp 1C lietojumprogrammu un patvaļīgu lietojumprogrammu. Piemēram, mums jāsinhronizē preču saraksts (Nomenklatūras reģistrs) starp 1C lietojumprogrammu un patvaļīgu lietojumprogrammu.

Lai atrisinātu šādu uzdevumu, var izveidot paplašinājumu, kas eksportē Nomenklatūras reģistru failā noteiktā formātā (teksta, XML, JSON utt.) un spēj lasīt šo formātu.
Platformā ir īstenots lietojumprogrammu objektu seriālizācijas mehānisms XML formātā, gan tieši, izmantojot globālā konteksta metodes IzrakstītXML/LasītXML, gan ar palīdzīgu objektu XDTO (XML datu pārsūtīšanas objekti).
Jebkurš objekts 1C:Uzņēmuma sistēmā var tikt seriālizēts XML attēlā un otrādi.
Šī funkcija atgriezīs objekta attēlu XML formātā:
Funkcija Objekts_XML(Objekts)
IerakstsXML = Jauns IerakstsXML();
IerakstsXML.IestādītRindu();
IerakstītXML(IerakstsXML, Objekts);
Atgriezt IerakstsXML.Aizvērt();
GalaFunkcijas
tā izskatīsies noliktavas eksports XML, izmantojot XDTO:
&UzServera
Procedūra EksportsXMLUzServera()
JaunsSeriālizatorsXDTO = SeriālizatorsXDTO;
JaunsIerakstsXML = Jauns IerakstsXML();
JaunsIerakstsXML.AtvērtFailu("C:DataNomenklatūra.xml", "UTF-8");
JaunsIerakstsXML.IerakstītApliecinājumuXML();
JaunsIerakstsXML.IerakstītElementaSākumu("NoliktavaNomenklatūra");
Atlasīšana = Noliktavas.Nomenklatūra.Atvērt();
Kamēr Atlasīšana.Nākamais() Cikls
ObjektsNomenklatūra = Atlasīšana.IegūtObjektu();
JaunsSeriālizatorsXDTO.IerakstītXML(JaunsIerakstsXML, ObjektsNomenklatūra, XMLVeidaPiešķiršana.Destinēta);
GalaCikls;
JaunsIerakstsXML.IerakstītElementaBeigas();
JaunsIerakstsXML.Aizvērt();
GalaProcedūra
Vienkārši pārveidojot kodu, mēs eksportējam noliktavu JSON formātā. Preces tiks ierakstītas masīvā; lai dažādotu, sniegsim angļu izteiksmes sintaksi:
&UzServera
Procedūra EksportsJSONUzServer()
JaunsXDTOSeriālizators = XDTOSeriālizators;
JaunsJSONRakstītājs = Jauns JSONRakstītājs();
JaunsJSONRakstītājs.AtvērtFailu("C:DataNomenklatūra.json", "UTF-8");
JaunsJSONRakstītājs.IerakstītSākumaObjektu();
JaunsJSONRakstītājs.IerakstītĪpašībasNosaukumu("NoliktavaNomenklatūra");
JaunsJSONRakstītājs.IerakstītSāktMasīvu();
Atlasīšana = Noliktavas.Nomenklatūra.Atvērt();
Kamēr Atlasīšana.Nākamais() Dari
NomenklatūrasObjekts = Atlasīšana.IegūtObjektu();
JaunsJSONRakstītājs.IerakstītSākumaObjektu();
JaunsJSONRakstītājs.IerakstītĪpašībasNosaukumu("Nomenklatūra");
JaunsXDTOSeriālizators.IerakstītJSON(JaunsJSONRakstītājs, NomenklatūrasObjekts, XMLVeidaPiešķiršana.Iepazīstinoša);
JaunsJSONRakstītājs.IerakstītBeiguObjektu();
GalaDari;
JaunsJSONRakstītājs.IerakstītBeiguMasīvu();
JaunsJSONRakstītājs.IerakstītBeiguObjektu();
JaunsJSONRakstītājs.Aizvērt();
GalaProcedūra
Tālāk paliek tikai nodot datus galapatērētājam. 1C:Uzņēmums platforma atbalsta galvenos interneta protokolus HTTP, FTP, POP3, SMTP, IMAP, tostarp to drošās versijas. Datu pārsūtīšanai var izmantot arī HTTP un/vai tīmekļa pakalpojumus.
HTTP un tīmekļa pakalpojumi

1C lietojumprogrammas var ieviest savus HTTP un tīmekļa pakalpojumus, kā arī izsaukt HTTP un tīmekļa pakalpojumus, ko īstenojušas trešo pušu lietojumprogrammas.
REST interfeiss un protokols OData
Sākot no versijas 8.3.5, 1C:Uzņēmums platforma var automātiski visai pielietojuma risinājumam. Jebkuru konfigurācijas objektu (noliktava, dokuments, informācijas reģistrs utt.) var padarīt pieejamu datu iegūšanai un modificēšanai caur REST interfeisu. Platforma izmanto protokolu piekļuvei. versija 3.0. OData pakalpojumu publicēšana notiek no konfiguratora izvēlnes „Administrēšana -> Publikācija tīmekļa serverī”, jābūt atzīmētam lodziņam „Publicēt standarta OData saskarni”. Tiek atbalstīti formāti atom/XML un JSON. Pēc tam, kad lietojumprogrammas risinājums ir publicēts tīmekļa serverī, trešās puses sistēmas var piekļūt tam caur REST saskarni, izmantojot HTTP pieprasījumus. Lai strādātu ar 1C lietojumprogrammu caur OData protokolu, programmēšana 1C pusē nav nepieciešama.
Tātad URL veidā http:////odata/standard.odata/Catalog_Produkti atgriezīs mums Katalogs Produktu saturu XML formātā — elementu entry kolekciju (ziņojuma galvene ir izlaista īsumam):
http://serveris/Config/odata/standard.odata/Catalog_Produkti(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')
2016-06-06T16:42:17
35d1f6e4-289b-11e6-8ba4-e03f49b16074
AAAAAgAAAAA=
false
000000001
Kondicionieris Mitsubishi
Jauda 2,5 kW, darbības režīmi: siltums/aukstums
http://serveris/Config/odata/standard.odata/Catalog_Produkti(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')
...
Pievienojot URL-ā virkni „?$format=application/json”, iegūsim Katalogs Produktu saturu JSON formātā (URL veidā http:////odata/standard.odata/Catalog_Produkti?$format=application/json ):
{
"odata.metadata": "http://serveris/Config/odata/standard.odata/$metadata#Catalog_Produkti",
"value": [{
"Ref_Key": "35d1f6e4-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAgAAAAA=",
"DeletionMark": false,
"Code": "000000001",
"Description": "Kondicionieris Mitsubishi",
"Apraksts": "Jauda 2,5 kW, darbības režīmi: siltums/aukstums"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Kondicionieris Daikin",
"Apraksts": "Jauda 3 kW, darbības režīmi: siltums/aukstums"
}, …
Ārējie datu avoti

Dažos gadījumos datu apmaiņa caur varētu būt optimāls risinājums. Ārējie datu avoti ir 1C konfigurācijas lietojumobjekts, kas ļauj sadarboties ar jebkuru ODBC saderīgu datu bāzi gan lasīšanai, gan rakstīšanai. Ārējie datu avoti ir pieejami gan Windows, gan Linux.
Datu apmaiņas mehānisms
ir paredzēts gan teritoriju izplatītu sistēmu veidošanai, pamatojoties uz 1C:Enterprise, gan datu apmaiņas organizēšanai ar citām informācijas sistēmām, kas nav pamats 1C:Enterprise.
Šis mehānisms tiek aktīvi izmantots 1C ieviešanā, un uzdevumu spektrs, ko tas risina, ir ļoti plašs. Tas ietver datu apmaiņu starp 1C lietojumprogrammām, kas uzstādītas organizācijas filiālēs, kā arī apmaiņu starp 1C lietojumprogrammu un interneta veikala vietni, un datu apmaiņu starp 1C servera lietojumprogrammu un mobilo klientu (izveidotu, izmantojot 1C:Enterprise mobilo platformu), un daudz ko citu.
Viens no galvenajiem jēdzieniem datu apmaiņas mehānismā ir apmaiņas plāns. Apmaiņas plāns ir īpašs 1C platformas lietojumobjekta veids, kas nosaka, jo īpaši, datu sastāvu, kas piedalīsies apmaiņā (kuri tieši katalogi, dokumenti, reģistri utt.). Apmaiņas plāns satur arī informāciju par apmaiņas dalībniekiem (t.s. apmaiņas mezgliem).
Otrā datu apmaiņas mehānisma sastāvdaļa ir izmaiņu reģistrēšanas mehānisms. Šis mehānisms automātiski seko izmaiņām sistēmā, kuras jānosūta galapatērētājiem apmaiņas plāna ietvaros. Šī mehānisma palīdzību platforma seko izmaiņām, kas notikušas kopš pēdējās sinhronizācijas, un ļauj minimizēt datu apjomu, kas tiek nodots nākamā sinhronizācijas sesijas laikā.
Datu apmaiņa notiek, izmantojot noteikta formāta XML ziņojumus. Ziņojums satur datus, kas mainījušies kopš pēdējās sinhronizācijas ar mezglu, kā arī kādu tehnisku informāciju. Ziņojumu struktūra atbalsta ziņojumu numurēšanu un ļauj saņemt apstiprinājumus no saņēmēju mezgla par ziņojumu saņemšanu. Šāds apstiprinājums ir iekļauts katrā ziņojumā, kas nāk no saņēmēju mezgla, kā pēdējā saņemtā ziņojuma numurs. Ziņojumu numurēšana ļauj platformai saprast, kuri dati jau ir veiksmīgi nodoti saņēmēju mezglam, un novērst atkārtotu nodošanu, nododot tikai datus, kas mainījās kopš pēdējā ziņojuma saņemšanas ar kvīti par saņemtiem datiem no saņēmēju mezgla. Šāds darbības modelis nodrošina garantētu piegādi pat nepārliecinošos pārraides kanālos un ziņojumu zuduma gadījumā.
Ārējie komponenti
Dažos gadījumos, risinot integrācijas uzdevumus, nākas saskarties ar specifiskām prasībām, piemēram, mijiedarbības protokoliem, datu formātiem, kuru apstrāde nav paredzēta 1C:Enterprise platformā. Šāda veida uzdevumiem platforma nodrošina , kas ļauj izveidot dinamiski pieslēdzamus moduļus, kas paplašina 1C:Enterprise funkcionalitāti.
Tipisks piemērs uzdevumam ar līdzīgām prasībām varētu būt 1C lietojumprogrammas integrācija ar tirdzniecības aprīkojumu, sākot no svariem un beidzot ar kasešu aparātiem un svītrkodu skeneriem. Ārējie komponenti var būt pieslēgti gan 1C:Enterprise servera pusē, gan klienta daļā (ieskaitot, protams, tīmekļa klientu, kā arī 1C:Enterprise). Ārējo komponentu tehnoloģija paredz pietiekami vienkāršu un saprotamu programmatūras (C++) saskarni, ar kuru komponenti var mijiedarboties ar 1C:Enterprise platformu, kuru jārealizē izstrādātājam.
Iespējas, kas rodas, izmantojot ārējās komponentes, ir ļoti plašas. Var realizēt mijiedarbību saskaņā ar specifisku datu apmaiņas protokolu ar ārējām ierīcēm un sistēmām, iebūvēt specifiskus datu apstrādes algoritmus un datu formātus u.t.t.
Novecošanās integrācijas mehānismi
Platformā ir pieejami integrācijas mehānismi, kurus ieteicams neizmantot jaunās risinājumos; tie ir atstāti atpakaļsaderības apsvērumu dēļ, kā arī gadījumā, ja otra puse nespēj strādāt ar modernākiem protokoliem. Viens no tiem ir darbs ar DBF formāta failiem (tiek atbalstīts iebūvētajā valodā, izmantojot XBase objektu).
Vēl viens novecojis integrācijas mehānisms ir COM tehnoloģijas izmantošana (pieejama tikai Windows platformā). 1C:Uzņēmums sniedz divus integrācijas veidus Windows, kas izmanto COM tehnoloģiju: Automation serveri un Ārējo savienojumu. Tie ir ļoti līdzīgi, taču viena no pamatatšķirībām ir tāda, ka Automation servera gadījumā tiek palaists pilnvērtīgs 1C:Uzņēmums 8 klienta lietojumprogramma, savukārt ārējā savienojuma gadījumā tiek palaists salīdzinoši neliels iekšprocessa COM serveris. Proti, strādājot caur Automation serveri, var izmantot klienta lietojumprogrammas funkcionalitāti, veicot darbības, kas līdzīgas lietotāja interaktīvām darbībām. Izmantojot ārējo savienojumu, var izmantot tikai biznesa loģikas funkcijas, kuras var veikt gan savienojuma klienta pusē, kur izveidojas iekšprocessa COM serveris, gan veikt biznesa loģikas izsaukumu 1C:Uzņēmuma servera pusē.
COM tehnoloģiju var izmantot arī, lai piekļūtu ārējām sistēmām no 1C:Uzņēmums programmas koda. Šajā gadījumā 1C lietojumprogramma darbojas kā COM klients. Taču jāpiebilst, ka šie mehānismi darbosies tikai tad, ja 1C serveris funkcionē Windows vidē.
Integrācijas mehānismi, kas realizēti tipiskajās konfigurācijās
EnterpriseData formāts

Dažās 1C konfigurācijās (apakšējais saraksts) uz iepriekšminētā platformas datu apmaiņas mehānisma pamata ir izstrādāts gatavs datu apmaiņas mehānisms ar ārējiem lietojumiem, kas neprasa izmaiņas konfigurāciju avota kodā (datu apmaiņas sagatavošana tiek veikta pielietojumu risinājumu iestatījumos):
- «1C:ERP Uzņēmuma vadība 2.0»
- «Kompleksā automatizācija 2»
- «Uzņēmuma grāmatvedība», 3.0 izdevums
- «Uzņēmuma grāmatvedība KORP», 3.0 izdevums
- «Mazumtirdzniecība», 2.0 izdevums
- «Tirdzniecības vadība pamatversija», redakcija 11
- «Tirdzniecības vadība», redakcija 11
- «Algas un personāla vadība KORP», redakcija 3
Datu apmaiņai tiek izmantots formāts , kas balstīts uz XML. Formāts ir biznesam orientēts – tajā aprakstītās datu struktūras atbilst biznesa objektiem (dokumentiem un katalogu elementiem), kas tiek attēloti 1C programmās, piemēram: izpildīto darbu akts, ienākošais kasieru rēķins, partneris, nomenklatūra u.tml.
Datu apmaiņa starp 1C lietojumprogrammu un trešās puses lietojumprogrammu var notikt:
- caur noteiktu failu katalogu
- caur FTP katalogu
- caur tīmekļa servisu, kas izvietots 1C lietojumprogrammas pusē. Fails ar datiem tiek pārsūtīts kā parametrs tīmekļa metodei
- caur elektronisko pastu
Ja apmaiņa notiek caur tīmekļa servisu, trešās puses lietojumprogramma uzsāks datu apmaiņas sesiju, izsaucot attiecīgās 1C lietojumprogrammas tīmekļa metodes. Citās situācijās sesijas iniciators būs 1C lietojumprogramma (ievietojot failu ar datiem attiecīgajā katalogā vai sūtot failu ar datiem uz iestatītu e-pasta adresi).
Arī 1C pusē tiek iestatīts, cik bieži notiks sinhronizācija (failu apmaiņas un elektroniskā pasta variantos):
- saskaņā ar grafiku (ar noteiktu biežumu)
- roku; lietotājam katru reizi būs manuāli jāuzsāk sinhronizācija, kad tas būs nepieciešams
Zināšanu apstiprināšana
1C lietojumprogrammas uzskaita nosūtītos un saņemtos sinhronizācijas ziņojumus un gaida to pašu no trešās puses lietojumprogrammām. Tas ļauj izmantot ziņojumu numurēšanas mehānismu, kas iepriekš aprakstīts nodaļā «Datu apmaiņas mehānisms».
1C lietojumprogrammas sinhronizācijas laikā pārraida tikai informāciju par izmaiņām, kas notikušas ar biznesa entītijām kopš pēdējās sinhronizācijas (lai samazinātu pārsūtāmās informācijas apjomu). Pirmajā sinhronizācijā 1C lietojumprogramma izvadīs visas biznesa entītijas (piemēram, preču katalogu elementus) formātā EnterpriseData XML failā (jo tās visus ir „jauni” ārējai lietojumprogrammai). Ārējai lietojumprogrammai jāapstrādā informācija no saņemtā XML faila no 1C, un nākamajā sinhronizācijas sesijā jāiekļauj failā, kas tiek nosūtīts 1C, īpašā XML sekcijā informācija, ka ziņojums no 1C ar noteiktu numuru ir veiksmīgi saņemts. Ziņojumu apstiprinājums ir signāls 1C lietojumprogrammai, ka visas biznesa entītijas ir veiksmīgi apstrādātas ārējā lietojumā un informācija par tām vairs nav jānodod. Papildus apstiprinājumam XML fails no ārējās lietojumprogrammas var saturēt datus sinhronizācijai no lietojumprogrammas puses (piemēram, preču un pakalpojumu realizācijas dokumentus).
Saņemot ziņojuma apstiprinājumu, 1C lietojumprogramma atzīmē visas izmaiņas, kas tika pārsūtītas iepriekšējā ziņojumā, kā veiksmīgi sinhronizētas. Tikai ne-sinhronizētās izmaiņas biznesa entītijās (jaunu entītiju izveide, esošo izmaiņas un dzēšana) tiks nosūtītas ārējai lietojumprogrammai nākamās sinhronizācijas sesijas laikā.

Datu pārsūtīšanas laikā no ārējās lietojumprogrammas uz 1C lietojumprogrammu aina mainās uz pretējo. Ārējai lietojumprogrammai jāaizpilda XML faila apstiprinājuma sekcija atbilstoši un jāiekļauj biznesa dati sinhronizācijai no savas puses formātā EnterpriseData.

Vienkāršota datu apmaiņa bez apstiprināšanas
Situācijās, kad ir pietiekami tikai pārsūtīt informāciju no ārējās lietojumprogrammas uz 1C lietojumprogrammu un nav nepieciešams datu atgriešana no 1C lietojumprogrammas ārējai lietojumprogrammai (piemēram, integrējot tiešsaistes veikalu, kas sniedz pārdošanas informāciju „1C:Grāmatvedība”), ir pieejama vienkāršota darbības iespēja caur tīmekļa pakalpojumu (bez apstiprināšanas), kas neprasa iestatījumus 1C lietojumprogrammas pusē.
Speciāli integrācijas risinājumi
Pastāv standarta risinājums «1C: Datu konversija», kas izmanto platformas mehānismus datu konversijai un apmaiņai starp standarta 1C konfigurācijām, taču to var izmantot arī integrācijai ar trešo pušu lietotnēm.
Integrācija ar banku risinājumiem
Standarts , ko izstrādāja 1C speciālisti vairāk nekā 10 gadus atpakaļ, faktiski kļuvis par industrijas standartu Krievijā. Nākamais solis šajā virzienā ir tehnoloģija , kas ļauj nosūtīt maksājumu dokumentus bankai un saņemt izrakstus no bankas tieši no 1C programmas, nospiežot vienu taustiņu programmatūrā «1C»; šajā procesā nav nepieciešama papildu programmu uzstādīšana un palaišana klienta datorā.
Ir arī .
Cits
Vērts pieminēt , komerciālās informācijas apmaiņas standarts (izstrādāts sadarbībā ar Microsoft, Intel, Price.ru un citām kompānijām), .
Avots: habr.com
