Metódy integrácie s 1C

Aké sú najdôležitejšie požiadavky na obchodné aplikácie? Niektoré z najdôležitejších úloh sú nasledujúce:

  • Jednoduchosť zmeny/prispôsobenia aplikačnej logiky meniacim sa obchodným úlohám.
  • Jednoduchá integrácia s inými aplikáciami.

Ako sa prvá úloha rieši v 1C, bolo stručne popísané v časti „Prispôsobenie a podpora“. tento článok; K tejto zaujímavej téme sa vrátime v budúcom článku. Dnes budeme hovoriť o druhej úlohe, integrácii.

Integračné úlohy

Integračné úlohy môžu byť rôzne. Na vyriešenie niektorých problémov stačí jednoduchá interaktívna výmena údajov – napríklad preniesť zoznam zamestnancov do banky na vydávanie platových plastových kariet. Pre komplexnejšie úlohy môže byť potrebná plne automatizovaná výmena údajov, prípadne s odkazom na obchodnú logiku externého systému. Existujú úlohy, ktoré sú svojou povahou špecializované, ako napríklad integrácia s externými zariadeniami (napríklad maloobchodné zariadenia, mobilné skenery atď.) alebo so starými alebo vysoko špecializovanými systémami (napríklad so systémami na rozpoznávanie značiek RFID). Pre každú úlohu je mimoriadne dôležité vybrať najvhodnejší integračný mechanizmus.

Možnosti integrácie s 1C

Existujú rôzne prístupy k implementácii integrácie s aplikáciami 1C; ktorý si vybrať, závisí od požiadaviek úlohy.

  1. Na základe implementácie integračné mechanizmyposkytované platformou, vlastné špecializované API na strane aplikácie 1C (napríklad súbor webových alebo HTTP služieb, ktoré budú volať aplikácie tretích strán na výmenu údajov s aplikáciou 1C). Výhodou tohto prístupu je odolnosť API voči zmenám v implementácii na strane aplikácie 1C. Zvláštnosťou prístupu je, že je potrebné zmeniť zdrojový kód štandardného riešenia 1C, čo môže potenciálne vyžadovať úsilie pri zlučovaní zdrojových kódov pri prechode na novú verziu konfigurácie. V tomto prípade môže prísť na pomoc nová progresívna funkcia - konfiguračné rozšírenia. Rozšírenia sú v podstate mechanizmus zásuvných modulov, ktorý vám umožňuje vytvárať doplnky k aplikačným riešeniam bez zmeny samotných aplikačných riešení. Presun integračného API do konfiguračného rozšírenia vám umožní vyhnúť sa ťažkostiam pri zlučovaní konfigurácií pri prechode na novú verziu štandardného riešenia.
  2. Používanie mechanizmov integrácie platformy, ktoré poskytujú externý prístup k aplikačnému objektovému modelu a nevyžadujú úpravu aplikácie alebo vytvorenie rozšírenia. Výhodou tohto prístupu je, že nie je potrebné meniť aplikáciu 1C. Mínus - ak bola vylepšená aplikácia 1C, môžu byť potrebné vylepšenia v integrovanej aplikácii. Príkladom tohto prístupu je použitie protokolu OData na integráciu, implementovaného na strane platformy 1C:Enterprise (viac o ňom nižšie).
  3. Použitie hotových aplikačných protokolov implementovaných v štandardných riešeniach 1C. Mnohé štandardné riešenia od 1C a partnerov implementujú svoje vlastné aplikačné protokoly zamerané na špecifické úlohy na základe integračných mechanizmov poskytovaných platformou. Pri použití týchto mechanizmov nie je potrebné písať kód na strane aplikácie 1C, pretože Využívame štandardné možnosti aplikačného riešenia. Na strane aplikácie 1C musíme vykonať iba určité nastavenia.

Integračné mechanizmy v platforme 1C:Enterprise

Importovať/exportovať súbory

Predpokladajme, že stojíme pred úlohou obojsmernej výmeny údajov medzi aplikáciou 1C a ľubovoľnou aplikáciou. Potrebujeme napríklad synchronizovať zoznam produktov (adresár nomenklatúry) medzi aplikáciou 1C a ľubovoľnou aplikáciou.

Metódy integrácie s 1C
Na vyriešenie tohto problému môžete napísať rozšírenie, ktoré stiahne adresár Nomenclature do súboru určitého formátu (text, XML, JSON, ...) a dokáže tento formát prečítať.

Platforma implementuje mechanizmus na serializáciu aplikačných objektov v XML priamo, prostredníctvom metód globálneho kontextu WriteXML/ReadXML, ako aj pomocou pomocného objektu XDTO (XML Data Transfer Objects).

Akýkoľvek objekt v systéme 1C:Enterprise môže byť serializovaný do reprezentácie XML a naopak.

Táto funkcia vráti XML reprezentáciu objektu:

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

Takto bude vyzerať export adresára Nomenclature do XML pomocou XDTO:

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

Jednoduchou úpravou kódu exportujeme adresár do JSON. Produkty budú zapísané do poľa; Pre spestrenie uvádzame anglickú verziu syntaxe:

&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

Potom už ostáva len preniesť dáta ku koncovému spotrebiteľovi. Platforma 1C:Enterprise podporuje hlavné internetové protokoly HTTP, FTP, POP3, SMTP, IMAP vrátane ich bezpečných verzií. Na prenos údajov môžete použiť aj HTTP a/alebo webové služby.

HTTP a webové služby

Metódy integrácie s 1C

Aplikácie 1C môžu implementovať svoje vlastné HTTP a webové služby, ako aj volať HTTP a webové služby implementované aplikáciami tretích strán.

Rozhranie REST a protokol OData

Od verzie 8.3.5 môže platforma 1C:Enterprise automaticky vytvorte rozhranie REST pre celé aplikačné riešenie. Akýkoľvek konfiguračný objekt (adresár, dokument, register informácií atď.) môže byť sprístupnený na príjem a úpravu údajov cez rozhranie REST. Platforma používa protokol ako prístupový protokol OData verzia 3.0. Publikovanie služieb OData sa vykonáva z menu Konfigurátor „Administrácia -> Publikovanie na webovom serveri“, musí byť zaškrtnuté políčko „Publikovať štandardné rozhranie OData“. Podporované sú formáty Atom/XML a JSON. Po zverejnení aplikačného riešenia na webovom serveri k nemu môžu systémy tretích strán pristupovať cez REST rozhranie pomocou HTTP požiadaviek. Na prácu s aplikáciou 1C cez protokol OData nie je potrebné programovanie na strane 1C.

Takže napríklad adresa URL http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура nám vráti obsah nomenklatúrneho katalógu vo formáte XML - kolekciu vstupných prvkov (názov správy je pre stručnosť vynechaný):

<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"/>
...

Pridaním reťazca „?$format=application/json“ k URL získame obsah katalógu nomenklatúry vo formáte JSON (URL formulára 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 кВт, режимы работы: тепло/холод"
}, …

Externé zdroje údajov

Metódy integrácie s 1C
V niektorých prípadoch výmena údajov cez externé zdroje údajov môže byť najlepším riešením. Externé zdroje údajov sú aplikačným konfiguračným objektom 1C, ktorý vám umožňuje interakciu s akoukoľvek databázou kompatibilnou s ODBC, a to na čítanie aj zápis. Externé zdroje údajov sú dostupné v systémoch Windows aj Linux.

Mechanizmus výmeny údajov

Mechanizmus výmeny údajov je určený na vytváranie geograficky distribuovaných systémov založených na 1C:Enterprise, ako aj na organizovanie výmeny údajov s inými informačnými systémami, ktoré nie sú založené na 1C:Enterprise.

Tento mechanizmus sa aktívne používa v implementáciách 1C a rozsah úloh riešených s jeho pomocou je veľmi široký. Zahŕňa to výmenu údajov medzi aplikáciami 1C nainštalovanými v pobočkách organizácie a výmenu medzi aplikáciou 1C a webovou stránkou internetového obchodu a výmenu údajov medzi serverovou aplikáciou 1C a mobilným klientom (vytvoreným pomocou mobilnej platformy 1C:Enterprise) a mnohé ďalšie viac.

Jedným z kľúčových konceptov mechanizmu výmeny údajov je plán výmeny. Výmenný plán je špeciálnym typom objektu aplikačnej platformy 1C, ktorý určuje najmä zloženie dát, ktoré sa budú na výmene podieľať (aké adresáre, dokumenty, registre atď.). Výmenný plán obsahuje aj informácie o účastníkoch výmeny (tzv. výmenné uzly).
Druhým komponentom mechanizmu výmeny údajov je mechanizmus registrácie zmien. Tento mechanizmus automaticky sleduje v systéme zmeny v údajoch, ktoré musia byť prenesené koncovým používateľom v rámci výmenného plánu. Pomocou tohto mechanizmu platforma sleduje zmeny, ku ktorým došlo od poslednej synchronizácie, a umožňuje vám minimalizovať množstvo dát prenesených počas nasledujúcej synchronizačnej relácie.

Výmena dát prebieha pomocou XML správ určitej štruktúry. Správa obsahuje údaje, ktoré sa zmenili od poslednej synchronizácie s uzlom a niektoré informácie o službe. Štruktúra správ podporuje číslovanie správ a umožňuje vám prijať potvrdenie od uzla príjemcu, že správy boli prijaté. Takéto potvrdenie je obsiahnuté v každej správe prichádzajúcej z prijímacieho uzla vo forme čísla poslednej prijatej správy. Číslovanie správ umožňuje platforme pochopiť, ktoré údaje už boli úspešne prenesené do prijímacieho uzla, a vyhnúť sa opakovanému prenosu prenášaním iba údajov, ktoré sa zmenili odvtedy, čo odosielajúci uzol prijal poslednú správu s potvrdením o údajoch prijatých prijímacím uzlom. Táto prevádzková schéma zaisťuje garantované doručenie aj pri nespoľahlivých prenosových kanáloch a strate správ.

Externé komponenty

V mnohých prípadoch sa pri riešení integračných problémov musíme zaoberať špecifickými požiadavkami, napríklad interakčnými protokolmi, dátovými formátmi, ktoré platforma 1C:Enterprise neposkytuje. Pre takýto rozsah úloh platforma poskytuje technológia externých komponentov, ktorý vám umožňuje vytvárať dynamicky zásuvné moduly, ktoré rozširujú funkčnosť 1C:Enterprise.

Typickým príkladom úlohy s podobnými požiadavkami by bola integrácia aplikačného riešenia 1C s maloobchodným vybavením, od váh po registračné pokladnice a snímače čiarových kódov. Externé komponenty je možné pripojiť tak na strane servera 1C:Enterprise, ako aj na strane klienta (vrátane, ale nie výlučne, webového klienta, ako aj ďalšiu verziu mobilnej platformy 1C: Podnik). Technológia externých komponentov poskytuje pomerne jednoduché a zrozumiteľné softvérové ​​(C++) rozhranie pre interakciu komponentov s platformou 1C:Enterprise, ktorú musí implementovať vývojár.

Možnosti, ktoré sa otvárajú pri použití externých komponentov, sú veľmi široké. Môžete implementovať interakciu pomocou špecifického protokolu výmeny údajov s externými zariadeniami a systémami, zabudovať špecifické algoritmy na spracovanie údajov a dátových formátov atď.

Zastarané integračné mechanizmy

Platforma poskytuje integračné mechanizmy, ktoré sa neodporúčajú používať v nových riešeniach; sú ponechané z dôvodov spätnej kompatibility a tiež v prípade, že druhá strana nevie pracovať s modernejšími protokolmi. Jednou z nich je práca so súbormi formátu DBF (podporované vo vstavanom jazyku pomocou objektu XBase).

Ďalším starším integračným mechanizmom je použitie technológie COM (dostupná iba na platforme Windows). Platforma 1C:Enterprise poskytuje dve metódy integrácie pre Windows pomocou technológie COM: Automatizačný server a Externé pripojenie. Sú si veľmi podobné, no jedným zo zásadných rozdielov je, že v prípade Automation servera sa spúšťa plnohodnotná klientska aplikácia 1C:Enterprise 8 a v prípade externého pripojenia relatívne malý COM. server je spustený. To znamená, že ak pracujete cez Automation server, môžete využívať funkčnosť klientskej aplikácie a vykonávať akcie podobné interaktívnym akciám užívateľa. Pri použití externého pripojenia môžete používať iba funkcie obchodnej logiky a môžu sa vykonávať na strane klienta pripojenia, kde je vytvorený priebežný server COM, ako aj na serveri 1C:Enterprise môžete volať obchodnú logiku. strane.

Technológiu COM je možné použiť aj na prístup k externým systémom z kódu aplikácie na platforme 1C:Enterprise. V tomto prípade aplikácia 1C funguje ako klient COM. Treba však pripomenúť, že tieto mechanizmy budú fungovať iba vtedy, ak server 1C funguje v prostredí Windows.

Integračné mechanizmy implementované v štandardných konfiguráciách

Enterprise Data Format

Metódy integrácie s 1C
Vo viacerých konfiguráciách 1C (zoznam nižšie) je na základe vyššie opísaného mechanizmu výmeny údajov platformy implementovaný hotový mechanizmus na výmenu údajov s externými aplikáciami, ktorý si nevyžaduje zmenu zdrojového kódu konfigurácií (príprava na údaje výmena sa vykonáva v nastaveniach aplikačných riešení):

  • "1C:ERP Enterprise Management 2.0"
  • "Komplexná automatizácia 2"
  • "Podnikové účtovníctvo", vydanie 3.0
  • "Účtovníctvo pre podnik CORP", vydanie 3.0
  • "Maloobchod", vydanie 2.0
  • "Základné riadenie obchodu", vydanie 11
  • Správa obchodu, vydanie 11
  • „Platy a personálny manažment CORP“, vydanie 3

Formát používaný na výmenu údajov je EnterpriseData, založený na XML. Formát je orientovaný na podnikanie - dátové štruktúry v ňom opísané zodpovedajú obchodným subjektom (dokumenty a adresárové prvky) prezentovaným v programoch 1C, napríklad: akt dokončenia, príkaz na príjem hotovosti, protistrana, položka atď.

Výmena údajov medzi aplikáciou 1C a aplikáciou tretej strany môže nastať:

  • prostredníctvom vyhradeného adresára súborov
  • cez FTP adresár
  • prostredníctvom webovej služby nasadenej na strane aplikácie 1C. Dátový súbor sa odovzdá ako parameter webovým metódam
  • prostredníctvom e-mailu

V prípade výmeny cez webovú službu iniciuje aplikácia tretej strany reláciu výmeny údajov volaním zodpovedajúcich webových metód aplikácie 1C. V ostatných prípadoch bude iniciátorom výmennej relácie aplikácia 1C (umiestnením dátového súboru do príslušného adresára alebo odoslaním dátového súboru na nakonfigurovanú e-mailovú adresu).
Na strane 1C môžete tiež nakonfigurovať, ako často bude prebiehať synchronizácia (pre možnosti s výmenou súborov cez adresár a e-mail):

  • podľa plánu (so špecifikovanou frekvenciou)
  • ručne; používateľ bude musieť synchronizáciu spustiť manuálne vždy, keď ju bude potrebovať

Potvrdzovanie správ

Aplikácie 1C uchovávajú záznamy o odoslaných a prijatých synchronizačných správach a to isté očakávajú od aplikácií tretích strán. To vám umožňuje použiť mechanizmus číslovania správ popísaný vyššie v časti „Mechanizmus výmeny údajov“.

Počas synchronizácie aplikácie 1C prenášajú iba informácie o zmenách, ktoré sa u obchodných subjektov vyskytli od poslednej synchronizácie (aby sa minimalizovalo množstvo prenášaných informácií). Počas prvej synchronizácie aplikácia 1C nahrá všetky obchodné entity (napríklad položky referenčnej knihy položiek) vo formáte EnterpriseData do súboru XML (pretože sú všetky „nové“ pre externú aplikáciu). Aplikácia tretej strany musí spracovať informácie zo súboru XML prijatého od 1C a počas nasledujúcej synchronizačnej relácie umiestniť do súboru odoslaného do 1C do špeciálnej sekcie XML informáciu, že správa od 1C s určitým číslom bola úspešná. prijaté. Správa o prijatí je signálom pre aplikáciu 1C, že všetky podnikateľské subjekty boli úspešne spracované externou aplikáciou a už nie je potrebné o nich prenášať informácie. XML súbor z aplikácie tretej strany môže okrem účtenky obsahovať aj údaje na synchronizáciu aplikáciou (napríklad doklady o predaji tovaru a služieb).

Po prijatí správy o prijatí označí aplikácia 1C všetky zmeny odoslané v predchádzajúcej správe ako úspešne synchronizované. Počas nasledujúcej synchronizačnej relácie sa do externej aplikácie odošlú iba nesynchronizované zmeny obchodných entít (vytváranie nových entít, zmena a vymazanie existujúcich).

Metódy integrácie s 1C
Pri prenose údajov z externej aplikácie do aplikácie 1C je obraz obrátený. Externá aplikácia musí zodpovedajúcim spôsobom vyplniť príjmovú časť súboru XML a umiestniť obchodné údaje na synchronizáciu zo svojej strany vo formáte EnterpriseData.

Metódy integrácie s 1C

Zjednodušená výmena dát bez podania ruky

Pre prípady jednoduchej integrácie, keď stačí iba preniesť informácie z aplikácie tretej strany do aplikácie 1C a spätný prenos údajov z aplikácie 1C do aplikácie tretej strany sa nevyžaduje (napríklad integrácia online obchod, ktorý prenáša informácie o predaji do 1C: Accounting), existuje zjednodušená možnosť práce cez webovú službu (bez potvrdenia), ktorá nevyžaduje nastavenia na strane aplikácie 1C.

Integračné riešenia na mieru

Existuje štandardné riešenie „1C: Data Conversion“, ktoré využíva mechanizmy platformy na konverziu a výmenu údajov medzi štandardnými konfiguráciami 1C, ale dá sa použiť aj na integráciu s aplikáciami tretích strán.

Integrácia s bankovými riešeniami

Štandardné "klientska banka", vyvinutý špecialistami 1C pred viac ako 10 rokmi, sa v skutočnosti stal priemyselným štandardom v Rusku. Ďalším krokom v tomto smere je technológia DirectBank, ktorý umožňuje odosielať platobné doklady do banky a prijímať výpisy z banky priamo z programov systému 1C:Enterprise stlačením jedného tlačidla v programe 1C; nevyžaduje inštaláciu a spúšťanie ďalších programov na klientskom počítači.

Tam sú tiež štandard pre výmenu údajov v mzdových projektoch.

Ostatné

Stojí za zmienku výmenný protokol medzi systémom 1C:Enterprise a webovou stránkou, štandard výmeny obchodných informácií CommerceML (vyvinuté v spolupráci so spoločnosťami Microsoft, Intel, Price.ru a ďalšími spoločnosťami), štandard pre výmenu údajov pri získavaní transakcií.

Zdroj: hab.com

Pridať komentár