1C-ga integreerimise meetodid

Millised on ärirakenduste jaoks kõige olulisemad nõuded? Mõned kõige olulisemad ülesanded on järgmised:

  • Rakenduse loogika muutmise/kohandamise lihtsus muutuvate äriülesannetega.
  • Lihtne integreerida teiste rakendustega.

Seda, kuidas esimene ülesanne 1C-s lahendatakse, kirjeldati lühidalt jaotises "Kohandamine ja tugi". selle artikli; Tuleme selle huvitava teema juurde tagasi tulevases artiklis. Täna räägime teisest ülesandest, lõimumisest.

Integratsiooniülesanded

Integreerimisülesanded võivad olla erinevad. Mõne probleemi lahendamiseks piisab lihtsast interaktiivsest andmevahetusest - näiteks töötajate nimekirja edastamiseks panka palgaplastkaartide väljastamiseks. Keerulisemate ülesannete puhul võib osutuda vajalikuks täielikult automatiseeritud andmevahetus, mis võib olla seotud välise süsteemi äriloogikaga. On ülesandeid, mis on oma olemuselt spetsialiseerunud, näiteks integreerimine välisseadmetega (näiteks jaemüügiseadmed, mobiilsed skannerid jne) või pärand- või väga spetsiifiliste süsteemidega (näiteks RFID-märgiste tuvastamise süsteemidega). Äärmiselt oluline on valida iga ülesande jaoks sobivaim integratsioonimehhanism.

Integreerimisvõimalused 1C-ga

1C rakendustega integreerimisel on erinevaid lähenemisviise; milline neist valida, sõltub ülesande nõuetest.

  1. Rakendusepõhine integratsioonimehhanismidplatvorm, oma spetsialiseeritud API 1C-rakenduse poolel (näiteks veebi- või HTTP-teenuste komplekt, mis helistab kolmandate osapoolte rakendustele, et vahetada andmeid 1C-rakendusega). Selle lähenemisviisi eeliseks on API vastupidavus 1C rakenduse poolel toimuvatele muutustele. Lähenemise eripära seisneb selles, et standardse 1C lahenduse lähtekoodi on vaja muuta, mis võib lähtekoodide liitmisel konfiguratsiooni uuele versioonile üleminekul nõuda pingutusi. Sel juhul võib appi tulla uus progressiivne funktsioon - konfiguratsioonilaiendid. Laiendused on sisuliselt pluginate mehhanism, mis võimaldab luua rakenduslahendustele täiendusi ilma rakenduslahendusi endid muutmata. Integratsiooni API teisaldamine konfiguratsioonilaiendisse võimaldab teil vältida raskusi konfiguratsioonide liitmisel standardlahenduse uuele versioonile üleminekul.
  2. Platvormide integreerimise mehhanismide kasutamine, mis tagavad välise juurdepääsu rakenduse objekti mudelile ja ei nõua rakenduse muutmist ega laienduse loomist. Selle lähenemisviisi eeliseks on see, et 1C rakendust pole vaja muuta. Miinus - kui rakendust 1C on täiustatud, võib integreeritud rakenduses vaja minna täiustusi. Selle lähenemisviisi näide on OData protokolli kasutamine integreerimiseks, mis on rakendatud platvormi 1C:Enterprise küljel (selle kohta lähemalt allpool).
  3. Standardsetes 1C lahendustes realiseeritud valmisrakendusprotokollide kasutamine. Paljud 1C ja partnerite standardlahendused rakendavad oma konkreetsetele ülesannetele keskendunud rakendusprotokolle, mis põhinevad platvormi pakutavatel integratsioonimehhanismidel. Nende mehhanismide kasutamisel pole vaja 1C rakenduse poolele koodi kirjutada, kuna Kasutame rakenduslahenduse standardseid võimalusi. 1C rakenduse poolel peame tegema ainult teatud seaded.

Integratsioonimehhanismid platvormil 1C:Enterprise

Importida/eksportida faile

Oletame, et seisame silmitsi kahesuunalise andmevahetuse ülesandega 1C rakenduse ja suvalise rakenduse vahel. Näiteks peame sünkroonima toodete loendi (nomenklatuuri kataloog) rakenduse 1C ja suvalise rakenduse vahel.

1C-ga integreerimise meetodid
Selle probleemi lahendamiseks saate kirjutada laienduse, mis laadib nomenklatuuri kataloogi alla teatud vormingus faili (tekst, XML, JSON jne) ja suudab seda vormingut lugeda.

Platvorm rakendab mehhanismi rakendusobjektide järjestamiseks XML-is nii otse, WriteXML/ReadXML globaalse konteksti meetodite kaudu kui ka XDTO (XML Data Transfer Objects) abiobjekti kasutades.

Mis tahes objekti süsteemis 1C:Enterprise saab järjestada XML-esitusse ja vastupidi.

See funktsioon tagastab objekti XML-i esituse:

Функция Объект_В_XML(Объект)
    ЗаписьXML = Новый ЗаписьXML();
    ЗаписьXML.УстановитьСтроку();
    ЗаписатьXML(ЗаписьXML, Объект);
    Возврат ЗаписьXML.Закрыть();
КонецФункции

Nomenklatuuri kataloogi XDTO abil XML-i eksportimine näeb välja selline:

&НаСервере
Процедура ЭкспортXMLНаСервере()	
	НовыйСериализаторXDTO  = СериализаторXDTO;
	НоваяЗаписьXML = Новый ЗаписьXML();
	НоваяЗаписьXML.ОткрытьФайл("C:DataНоменклатура.xml", "UTF-8");
	
	НоваяЗаписьXML.ЗаписатьОбъявлениеXML();
	НоваяЗаписьXML.ЗаписатьНачалоЭлемента("СправочникНоменклатура");
	
	Выборка = Справочники.Номенклатура.Выбрать();
	
	Пока Выборка.Следующий() Цикл 
		ОбъектНоменклатура = Выборка.ПолучитьОбъект();
		НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, ОбъектНоменклатура, НазначениеТипаXML.Явное);
	КонецЦикла;
	
	НоваяЗаписьXML.ЗаписатьКонецЭлемента();
	НоваяЗаписьXML.Закрыть();	
КонецПроцедуры

Koodi lihtsalt muutes ekspordime kataloogi JSON-i. Tooted kirjutatakse massiivi; Vahelduse huvides on siin süntaksi ingliskeelne versioon:

&AtServer
Procedure ExportJSONOnServer()
	NewXDTOSerializer  = XDTOSerializer;
	NewJSONWriter = New JSONWriter();
	NewJSONWriter.OpenFile("C:DataНоменклатура.json", "UTF-8");
	
	NewJSONWriter.WriteStartObject();
	NewJSONWriter.WritePropertyName("СправочникНоменклатура");
	NewJSONWriter.WriteStartArray();
	
	Selection = Catalogs.Номенклатура.Select();	
	
	While Selection.Next() Do 
		NomenclatureObject = Selection.GetObject();
		
		NewJSONWriter.WriteStartObject();
		
		NewJSONWriter.WritePropertyName("Номенклатура");
		NewXDTOSerializer.WriteJSON(NewJSONWriter, NomenclatureObject, XMLTypeAssignment.Implicit);
		
		NewJSONWriter.WriteEndObject();
	EndDo;
	
	NewJSONWriter.WriteEndArray();
	NewJSONWriter.WriteEndObject();
	NewJSONWriter.Close();	
EndProcedure

Siis jääb üle vaid andmed lõpptarbijale edastada. Platvorm 1C:Enterprise toetab peamisi Interneti-protokolle HTTP, FTP, POP3, SMTP, IMAP, sealhulgas nende turvalisi versioone. Andmete edastamiseks saate kasutada ka HTTP- ja/või veebiteenuseid.

HTTP ja veebiteenused

1C-ga integreerimise meetodid

1C-rakendused saavad rakendada oma HTTP- ja veebiteenuseid, samuti helistada HTTP- ja veebiteenustele, mida rakendavad kolmandate osapoolte rakendused.

REST liides ja OData protokoll

Alates versioonist 8.3.5 saab platvorm 1C:Enterprise automaatselt luua REST-liides kogu rakenduslahenduse jaoks. REST-liidese kaudu saab andmete vastuvõtmiseks ja muutmiseks kättesaadavaks teha mis tahes konfiguratsiooniobjekti (kataloog, dokument, teaberegister jne). Platvorm kasutab protokolli juurdepääsuprotokollina OData versioon 3.0. OData teenuste avaldamine toimub Configurator menüüst “Haldamine -> Avaldamine veebiserveris”, märkeruut “Avalda standardne OData liides” peab olema märgitud. Toetatud on Atom/XML ja JSON vormingud. Pärast rakenduse lahenduse avaldamist veebiserveris saavad kolmandate osapoolte süsteemid sellele HTTP-päringute abil REST-liidese kaudu juurde pääseda. Rakendusega 1C OData protokolli kaudu töötamiseks pole 1C-poolset programmeerimist vaja.

Niisiis, URL nagu http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура tagastab meile nomenklatuuri kataloogi sisu XML-vormingus - kirje elementide kogu (sõnumi pealkiri on lühiduse mõttes välja jäetud):

<entry>
	<id>http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')</id>
	<category term="StandardODATA.Catalog_Номенклатура" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
	<title type="text"/>
	<updated>2016-06-06T16:42:17</updated>
	<author/>
	<summary/>
	<link rel="edit" href="Catalog_Номенклатура(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')" title="edit-link"/>
	<content type="application/xml">
		<m:properties  >
			<d:Ref_Key>35d1f6e4-289b-11e6-8ba4-e03f49b16074</d:Ref_Key>
			<d:DataVersion>AAAAAgAAAAA=</d:DataVersion>
			<d:DeletionMark>false</d:DeletionMark>
			<d:Code>000000001</d:Code>
			<d:Description>Кондиционер Mitsubishi</d:Description>
			<d:Описание>Мощность 2,5 кВт, режимы работы: тепло/холод</d:Описание>
		</m:properties>
	</content>
</entry>
<entry>
	<id>http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')</id>
	<category term="StandardODATA.Catalog_Номенклатура" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
...

Lisades URL-ile stringi "?$format=application/json", saame nomenklatuuri kataloogi sisu JSON-vormingus (vormi URL http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура?$format=application/json ):

{
"odata.metadata": "http://server/Config/odata/standard.odata/$metadata#Catalog_Номенклатура",
"value": [{
"Ref_Key": "35d1f6e4-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAgAAAAA=",
"DeletionMark": false,
"Code": "000000001",
"Description": "Кондиционер Mitsubishi",
"Описание": "Мощность 2,5 кВт, режимы работы: тепло/холод"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Кондиционер Daikin",
"Описание": "Мощность 3 кВт, режимы работы: тепло/холод"
}, …

Välised andmeallikad

1C-ga integreerimise meetodid
Mõnel juhul andmevahetus kaudu välised andmeallikad võib olla parim lahendus. Välised andmeallikad on 1C rakenduse konfiguratsiooniobjekt, mis võimaldab suhelda mis tahes ODBC-ga ühilduva andmebaasiga nii lugemiseks kui ka kirjutamiseks. Välised andmeallikad on saadaval nii Windowsis kui ka Linuxis.

Andmevahetusmehhanism

Andmevahetusmehhanism on mõeldud nii 1C:Enterprise baasil geograafiliselt hajutatud süsteemide loomiseks kui ka andmevahetuse korraldamiseks teiste infosüsteemidega, mis ei põhine 1C:Enterprise’il.

Seda mehhanismi kasutatakse aktiivselt 1C rakendustes ja selle abil lahendatavate ülesannete valik on väga lai. See hõlmab andmevahetust organisatsiooni filiaalidesse installitud 1C rakenduste vahel ning andmevahetust 1C rakenduse ja veebipoe veebisaidi vahel ning andmevahetust 1C serverirakenduse ja mobiilikliendi vahel (loodud 1C: Enterprise mobiiliplatvormi abil) ja palju muud. rohkem.

Üks andmevahetusmehhanismi põhimõisteid on vahetusplaan. Vahetusplaan on 1C rakendusplatvormi eritüüpi objekt, mis määrab eelkõige vahetuses osalevate andmete koosseisu (millised kataloogid, dokumendid, registrid jne). Vahetusplaan sisaldab ka teavet börsil osalejate (nn vahetussõlmede) kohta.
Andmevahetusmehhanismi teine ​​komponent on muudatuste registreerimise mehhanism. See mehhanism jälgib süsteemi automaatselt andmete muutuste osas, mis tuleb vahetusplaani raames lõppkasutajatele edastada. Seda mehhanismi kasutades jälgib platvorm pärast viimast sünkroonimist toimunud muudatusi ja võimaldab minimeerida järgmise sünkroonimiseansi ajal edastatavate andmete hulka.

Andmevahetus toimub teatud struktuuriga XML-sõnumite abil. Sõnum sisaldab andmeid, mis on muutunud pärast viimast sõlmega sünkroonimist, ja mõnda teenuseteavet. Sõnumi struktuur toetab sõnumite nummerdamist ja võimaldab saada adressaadisõlmelt kinnitust sõnumite vastuvõtmise kohta. Selline kinnitus sisaldub igas vastuvõtvalt sõlmelt tulevas sõnumis viimase vastuvõetud sõnumi numbri kujul. Nummerdamissõnumid võimaldavad platvormil aru saada, millised andmed on juba edukalt vastuvõtvale sõlmele edastatud, ja vältida uuesti edastamist, edastades ainult andmeid, mis on muutunud pärast seda, kui saatv sõlm sai viimase sõnumi koos vastuvõtva sõlme poolt vastuvõetud andmete kviitungiga. See tööskeem tagab garanteeritud kohaletoimetamise isegi ebausaldusväärsete edastuskanalite ja sõnumite kadumise korral.

Välised komponendid

Paljudel juhtudel tuleb integratsiooniprobleemide lahendamisel tegeleda spetsiifiliste nõuetega, näiteks interaktsiooniprotokollide, andmevormingutega, mida platvorm 1C:Enterprise ette ei näe. Sellise hulga ülesannete jaoks pakub platvorm väliskomponentide tehnoloogia, mis võimaldab luua dünaamiliselt lisandmooduleid, mis laiendavad 1C:Enterprise'i funktsionaalsust.

Tüüpiline näide sarnaste nõuetega ülesandest oleks 1C rakenduslahenduse integreerimine jaemüügiseadmetega, alates kaaludest kuni kassaaparaatide ja vöötkoodiskanneriteni. Väliseid komponente saab ühendada nii 1C:Enterprise serveri poolel kui ka kliendi poolel (sh, kuid mitte ainult, veebiklient, samuti mobiiliplatvormi järgmine versioon 1C: Ettevõte). Väliste komponentide tehnoloogia pakub üsna lihtsat ja arusaadavat tarkvara (C++) liidest komponentide interaktsiooniks platvormiga 1C:Enterprise, mille peab juurutama arendaja.

Väliste komponentide kasutamisel avanevad võimalused on väga laiad. Saate rakendada interaktsiooni konkreetse andmevahetusprotokolli abil välisseadmete ja süsteemidega, sisse ehitada konkreetsed algoritmid andmete ja andmevormingute töötlemiseks jne.

Aegunud integratsioonimehhanismid

Platvorm pakub integratsioonimehhanisme, mida ei soovita uutes lahendustes kasutada; need jäetakse sisse tagasiühilduvuse huvides ja ka juhuks, kui teine ​​pool ei saa moodsamate protokollidega töötada. Üks neist töötab DBF-vormingus failidega (toetatud sisseehitatud keeles, kasutades XBase'i objekti).

Teine pärandintegratsioonimehhanism on COM-tehnoloogia kasutamine (saadaval ainult Windowsi platvormil). Platvorm 1C:Enterprise pakub Windowsi jaoks kahte COM-tehnoloogiat kasutavat integreerimismeetodit: automatiseerimisserver ja väline ühendus. Need on väga sarnased, kuid üks põhimõttelisi erinevusi on see, et automatiseerimisserveri puhul käivitatakse täisväärtuslik 1C:Enterprise 8 klientrakendus ja välisühenduse korral suhteliselt väike protsessisisene COM. server käivitatakse. See tähendab, et kui töötate automatiseerimisserveri kaudu, saate kasutada klientrakenduse funktsioone ja teha kasutaja interaktiivsete toimingutega sarnaseid toiminguid. Välise ühenduse kasutamisel saab kasutada ainult äriloogika funktsioone ja neid saab käivitada nii ühenduse kliendi poolel, kus luuakse protsessisisene COM-server, kui ka äriloogikat saab kutsuda serveris 1C:Enterprise. pool.

COM-tehnoloogiat saab kasutada ka välistele süsteemidele juurdepääsuks platvormi 1C:Enterprise rakenduskoodi kaudu. Sel juhul toimib rakendus 1C COM-i kliendina. Kuid tuleb meeles pidada, et need mehhanismid töötavad ainult siis, kui 1C-server töötab Windowsi keskkonnas.

Standardkonfiguratsioonides rakendatud integreerimismehhanismid

Ettevõtte andmete vorming

1C-ga integreerimise meetodid
Paljudes 1C konfiguratsioonides (loetelu allpool) on ülalkirjeldatud platvormi andmevahetusmehhanismi alusel rakendatud valmis mehhanism andmete vahetamiseks väliste rakendustega, mis ei nõua konfiguratsioonide lähtekoodi muutmist (andmete ettevalmistamine vahetamine toimub rakenduslahenduste seadetes):

  • "1C:ERP Enterprise Management 2.0"
  • "Keeruline automatiseerimine 2"
  • "Ettevõtte raamatupidamine", väljaanne 3.0
  • "CORP-ettevõtte raamatupidamine", väljaanne 3.0
  • "Jaemüük", väljaanne 2.0
  • "Basic Trade Management", väljaanne 11
  • Kaubanduse juhtimine, 11. väljaanne
  • “Palgad ja personalijuhtimine CORP”, väljaanne 3

Andmevahetuseks kasutatav formaat on EnterpriseData, mis põhineb XML-il. Formaat on ärile orienteeritud - selles kirjeldatud andmestruktuurid vastavad 1C programmides esitatud äriüksustele (dokumendid ja kataloogielemendid), näiteks: täitmise akt, kassa laekumise order, vastaspool, kirje jne.

Andmevahetus 1C rakenduse ja kolmanda osapoole rakenduse vahel võib toimuda:

  • spetsiaalse failikataloogi kaudu
  • FTP kataloogi kaudu
  • 1C rakenduse poolel juurutatud veebiteenuse kaudu. Andmefail edastatakse parameetrina veebimeetoditele
  • e-maili teel

Veebiteenuse kaudu vahetamise korral käivitab kolmanda osapoole rakendus andmevahetusseansi, helistades 1C rakenduse vastavatele veebimeetoditele. Muudel juhtudel on vahetusseansi algatajaks rakendus 1C (paigutades andmefaili vastavasse kataloogi või saates andmefaili konfigureeritud e-posti aadressile).
Samuti saate 1C poolel konfigureerida, kui sageli sünkroonimine toimub (kataloogi ja e-posti kaudu failivahetuse võimaluste jaoks):

  • vastavalt ajakavale (määratud sagedusega)
  • käsitsi; kasutaja peab sünkroonimist käsitsi alustama iga kord, kui ta seda vajab

Sõnumite kinnitamine

1C rakendused peavad arvestust saadetud ja vastuvõetud sünkroonimissõnumite kohta ning ootavad sama ka kolmandate osapoolte rakendustelt. See võimaldab kasutada ülalpool jaotises „Andmevahetusmehhanism” kirjeldatud sõnumite nummerdamismehhanismi.

Sünkroonimise ajal edastavad 1C rakendused ainult teavet muudatuste kohta, mis on pärast viimast sünkroonimist äriüksustega toimunud (et minimeerida edastatava teabe hulka). Esimese sünkroonimise ajal laadib rakendus 1C kõik äriüksused (näiteks üksuste viiteraamatu üksused) EnterpriseData-vormingus üles XML-faili (kuna need on kõik välise rakenduse jaoks uued). Kolmanda osapoole rakendus peab töötlema 1C-lt saadud XML-faili teavet ja järgmise sünkroonimiseansi ajal lisama 1C-le saadetud faili spetsiaalsesse XML-i jaotisesse teabe, et 1C-lt teatud numbriga sõnum õnnestus. saanud. Kviitungiteade on signaal 1C rakendusele, et väline rakendus on kõik äriüksused edukalt töödeldud ja nende kohta pole enam vaja teavet edastada. Lisaks kviitungile võib kolmanda osapoole rakenduse XML-fail sisaldada ka andmeid rakenduse poolt sünkroonimiseks (näiteks kaupade ja teenuste müügidokumendid).

Pärast vastuvõtuteate saamist märgib rakendus 1C kõik eelmises sõnumis edastatud muudatused edukalt sünkroonituks. Välisrakendusse saadetakse järgmise sünkroonimiseansi ajal ainult äriüksuste sünkroonimata muudatused (uute olemite loomine, olemasolevate muutmine ja kustutamine).

1C-ga integreerimise meetodid
Andmete edastamisel välisest rakendusest 1C rakendusse on pilt vastupidine. Väline rakendus peab vastavalt täitma XML-faili kviitungi jaotise ja asetama äriandmed sünkroonimiseks omalt poolt EnterpriseData vormingusse.

1C-ga integreerimise meetodid

Lihtsustatud andmevahetus ilma käepigistuseta

Lihtsa integreerimise juhtudel, kui piisab ainult teabe edastamisest kolmanda osapoole rakendusest 1C-rakendusse ja andmete pöördülekanne 1C-rakendusest kolmanda osapoole rakendusse ei ole vajalik (näiteks veebipõhise rakenduse integreerimine pood, mis edastab müügiteabe teenusele 1C: Raamatupidamine), on veebiteenuse kaudu töötamise lihtsustatud võimalus (ilma kinnituseta), mis ei nõua 1C rakenduse külje seadistusi.

Kohandatud integratsioonilahendused

On olemas standardlahendus “1C: Data Conversion”, mis kasutab platvormi mehhanisme andmete teisendamiseks ja vahetamiseks standardsete 1C konfiguratsioonide vahel, kuid mida saab kasutada ka integreerimiseks kolmandate osapoolte rakendustega.

Integratsioon panganduslahendustega

Standard "Kliendipank"1C spetsialistide poolt enam kui 10 aastat tagasi välja töötatud, on tegelikult muutunud Venemaal tööstusstandardiks. Järgmine samm selles suunas on tehnoloogia DirectBank, mis võimaldab saata maksedokumente panka ja saada pangast väljavõtteid otse süsteemi 1C:Enterprise programmidest, vajutades 1C programmis ühte nuppu; see ei nõua täiendavate programmide installimist ja käivitamist klientarvutis.

Samuti on olemas palgaprojektide andmevahetuse standard.

Muu

Väärt mainimist vahetusprotokoll süsteemi 1C:Enterprise ja veebisaidi vahel, kaubandusliku teabe vahetamise standard KaubandusML (töötatud koos Microsofti, Inteli, Price.ru ja teiste ettevõtetega), vastuvõtmistehingute andmevahetuse standard.

Allikas: www.habr.com

Lisa kommentaar