Aké sú najdôležitejšie požiadavky na podnikové aplikácie? Medzi najhlavnejšie patrí nasledujúce úlohy:
- Jednoduchosť zmeny/adaptácie logiky fungovania aplikácie na meniacim sa podnikateľským potrebám.
- Jednoduchosť integrácie s inými aplikáciami.
Spôsob, akým sa v 1C rieši prvá úloha, bol stručne opísaný v sekcii „Prispôsobenie a podpora“ ; k tejto zaujímavej téme sa ešte vrátime v jednom z budúcich článkov. Dnes sa však budeme zaoberať druhou úlohou, a to integráciou.
Integračné úlohy
Integračné úlohy môžu byť rôzne. Pre riešenie niektorých stačí jednoduchá interaktívna výmena údajov - napríklad na odoslanie zoznamu zamestnancov do banky na spracovanie plastových kariet na výplatu. Pre zložitejšie úlohy môže byť potrebná úplne automatizovaná výmena údajov, možno s odvolaním sa na biznis logiku vonkajšieho systému. Existujú úlohy, ktoré sú špecifické, ako integrácia s vonkajšími zariadeniami (napríklad obchodnými zariadeniami, mobilnými skenerami a pod.) alebo s dedičnými alebo úzko špecializovanými systémami (napríklad so systémami na rozpoznávanie RFID štítkov). Je mimoriadne dôležité pre každú úlohu vybrať najvhodnejší mechanizmus integrácie.
Možnosti integrácie s 1C
Existujú rôzne prístupy k implementácii integrácie s aplikáciami 1C, ktorý z nich zvoliť, závisí od požiadaviek úlohy.
- Implementácia na základe , poskytovaných platformou, vlastného špecializovaného API na strane aplikácie 1C (napríklad súboru Web- alebo HTTP služieb, ktoré budú volať tretie strany na výmenu údajov s aplikáciou 1C). Výhodou tohto prístupu je stabilita API voči zmene implementácie na strane aplikácie 1C. Špecifickosť prístupu - je potrebné meniť zdrojový kód typického riešenia 1C, čo môže potenciálne vyžadovať úsilie pri zlúčení zdrojových kódov pri prechode na novú verziu konfiguračného systému. V tomto prípade môže prísť na pomoc nová progresívna funkčnosť - . Rozšírenia sú vlastne mechanizmus pluginov, ktorý umožňuje vytvárať doplnky aplikativných riešení bez zmeny samotných aplikativných riešení. Vytiahnutie integračného API do rozšírenia konfigurácie umožní vyhnúť sa ťažkostiam pri zlúčení konfigurácií pri prechode na novú verziu typového riešenia.
- Použitie integračných mechanizmov platformy, ktoré poskytujú vonkajší prístup k objektovému modelu aplikácie a nevyžadujú úpravy aplikácie alebo vytvorenie rozšírenia. Výhodou tohto prístupu je, že nie je potrebné meniť aplikáciu 1C. Nevýhodou je, že ak bola aplikácia 1C upravená, môžu byť potrebné úpravy v integrovanom aplikácii. Príkladom tohto prístupu je použitie protokolu OData pre integráciu, ktorý je implementovaný na strane platformy 1C:Pred podnik.
- Použitie hotových aplikativných protokolov implementovaných v typových riešeniach 1C. Mnohé typové riešenia od 1C a partnerov implementujú na základe integračných mechanizmov poskytovaných platformou svoje vlastné aplikativné protokoly zamerané na konkrétne úlohy. Pri použití týchto mechanizmov nie je potrebné písanie kódu na strane aplikácie 1C, pretože využívame štandardné možnosti aplikativného riešenia. Na strane aplikácie 1C musíme iba vykonať určité nastavenia.
Integračné mechanizmy na platforme 1C:Pred podnik
Import/export súborov
Predpokladajme, že sa pred nami nachádza úloha obojsmernej výmeny dát medzi aplikáciou 1C a ľubovoľnou aplikáciou. Napríklad, musíme synchronizovať zoznam produktov (referenčný údaj Nomenklatúra) medzi aplikáciou 1C a ľubovoľnou aplikáciou.

Na vyriešenie takejto úlohy je možné napísať rozšírenie, ktoré exportuje referenčný údaj Nomenklatúra do súboru určitého formátu (textový, XML, JSON, …) a dokáže tento formát načítať.
Na platforme je implementovaný mechanizmus serializácie aplikativných objektov do XML, a to priamo, prostredníctvom metód globálneho kontextu ZapísaťXML/ČítaťXML, ako aj pomocou pomocného objektu XDTO (XML Data Transfer Objects).
Akýkoľvek objekt v systéme 1C:Pred podnik môže byť serializovaný do XML reprezentácie a naopak.
Táto funkcia vráti reprezentáciu objektu vo forme XML:
Funkcia Objekt_V_XML(Objekt)
ZapisXML = Nový ZapisXML();
ZapisXML.UstanoviťRiadok();
ZapísaťXML(ZapisXML, Objekt);
Vrátiť ZapisXML.Zavrieť();
KoniecFunkcie
takto bude vyzerať export katalógu Nomenklatúra do XML pomocou XDTO:
&NaServeri
Procedúra ExportXMLNaServeri()
NovýSerializerXDTO = SerializerXDTO;
NováZapisXML = Nový ZapisXML();
NováZapisXML.OtvoriťSúbor("C:DataNomenklatúra.xml", "UTF-8");
NováZapisXML.ZapísaťOznámenieXML();
NováZapisXML.ZapísaťZačiatokElementu("KatalógNomenklatúra");
Výber = Katalógy.Nomenklatúra.Vybrať();
Kým VýberĎalší() Cyklus
ObjektNomenklatúra = Výber.ZískaťObjekt();
NovýSerializerXDTO.ZapísaťXML(NováZapisXML, ObjektNomenklatúra, PriradenieTypuXML.Jasné);
KoniecCyklu;
NováZapisXML.ZapísaťKoniecElementu();
NováZapisXML.Zavrieť();
KoniecProcedúry
Jednoduchou úpravou kódu exportujeme katalóg do JSON. Tovary budú zapísané do poľa; pre rozmanitosť prinesieme anglickú verziu syntaxe:
&NaServeri
Procedúra ExportJSONNaServer()
NovýXDTOSerializer = XDTOSerializer;
NovýJSONWriter = Nový JSONWriter();
NovýJSONWriter.OtvoriťSúbor("C:DataNomenklatúra.json", "UTF-8");
NovýJSONWriter.ZapísaťZačiatokObjektu();
NovýJSONWriter.ZapísaťNázovVlastnosti("KatalógNomenklatúra");
NovýJSONWriter.ZapísaťZačiatokPoľa();
Výber = Katalógy.Nomenklatúra.Vybrať();
Kým Výber.Nasledujúci() Robiť
ObjektNomenklatúra = Výber.ZískaťObjekt();
NovýJSONWriter.ZapísaťZačiatokObjektu();
NovýJSONWriter.ZapísaťNázovVlastnosti("Nomenklatúra");
NovýXDTOSerializer.ZapísaťJSON(NovýJSONWriter, ObjektNomenklatúra, PriradenieTypuXML.Nemäkké);
NovýJSONWriter.ZapísaťKoniecObjektu();
KoniecRobiť;
NovýJSONWriter.ZapísaťKoniecPoľa();
NovýJSONWriter.ZapísaťKoniecObjektu();
NovýJSONWriter.Zavrieť();
KoniecProcedúry
Ďalej zostáva len odovzdať údaje konečnému zákazníkovi. Platforma 1C:Podnikanie podporuje základné internetové protokoly HTTP, FTP, POP3, SMTP, IMAP, vrátane ich bezpečných verzií. Na prenos údajov je tiež možné použiť HTTP a/alebo Web-služby.
HTTP a web-služby

Aplikácie 1C môžu implementovať svoje HTTP a web-služby, ako aj vyvolávať HTTP a web-služby, realizované tretími aplikáciami.
REST rozhranie a protokol OData
Od verzie 8.3.5 platforma 1C:Podnikanie môže automaticky pre celé aplikačné riešenie. Akýkoľvek objekt konfigurácie (katalóg, dokument, register informácií atď.) môže byť sprístupnený na získavanie a modifikáciu údajov prostredníctvom REST rozhrania. Ako prístupový protokol platforma používa protokol verzia 3.0. Publikovanie OData služieb sa vykonáva z menu Konfigurátora „Administrácia -> Publikovanie na webový server“, pričom musí byť zaškrtnuté políčko „Publikovať štandardné rozhranie OData“. Podporujú sa formáty atom/XML a JSON. Po tom, čo je aplikačné riešenie publikované na webovom serveri, môžu k nemu externé systémy pristupovať cez REST rozhranie pomocou HTTP požiadaviek. Pre prácu s aplikáciou 1C prostredníctvom protokolu OData programovanie na strane 1C nie je potrebné.
Takže URL vo forme http:////odata/standard.odata/Catalog_Produkt nám vráti obsah katalógu Produkt v XML formáte — kolekciu prvkov entry (záhlavie správy je vynechané pre stručnosť):
http://server/Config/odata/standard.odata/Catalog_Produkt(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')
2016-06-06T16:42:17
35d1f6e4-289b-11e6-8ba4-e03f49b16074
AAAAAgAAAAA=
false
000000001
Klimatizácia Mitsubishi
Výkon 2,5 kW, režimy chodu: teplo/studený
http://server/Config/odata/standard.odata/Catalog_Produkt(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')
...
Pridaním k URL reťazca „?$format=application/json“ získame obsah katalógu Produkt vo formáte JSON (URL vo forme http:////odata/standard.odata/Catalog_Produkt?$format=application/json ):
{
"odata.metadata": "http://server/Config/odata/standard.odata/$metadata#Catalog_Produkt",
"value": [{
"Ref_Key": "35d1f6e4-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAgAAAAA=",
"DeletionMark": false,
"Code": "000000001",
"Description": "Klimatizácia Mitsubishi",
"Popis": "Výkon 2,5 kW, režimy chodu: teplo/studený"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Klimatizácia Daikin",
"Popis": "Výkon 3 kW, režimy chodu: teplo/studený"
}, …
Externé zdroje údajov

V niektorých prípadoch je výmena údajov prostredníctvom môže byť optimálnym riešením. Externé zdroje údajov sú aplikačný objekt konfigurácie 1C, ktorý umožňuje interakciu s akoukoľvek databázou kompatibilnou s ODBC, a to ako na čítanie, tak aj na zápis. Externé zdroje údajov sú dostupné ako na Windows, tak aj na Linux.
Mechanizmus výmeny údajov
je určený pre vytváranie teritoriálne rozdelených systémov založených na 1C:Enterprise a na organizáciu výmeny údajov s inými informačnými systémami, ktoré nie sú založené na 1C:Enterprise.
Tento mechanizmus sa aktívne využíva pri implementáciách 1C, pričom spektrum úloh, ktoré sa s jeho pomocou riešia, je veľmi široké. Ide o výmenu údajov medzi aplikáciami 1C, ktoré sú nainštalované v pobočkách organizácie, a o výmenu medzi aplikáciou 1C a webom e-shopu, ako aj o výmenu údajov medzi serverovou aplikáciou 1C a mobilným klientom (vytvoreným pomocou mobilnej platformy 1C:Enterprise) a mnoho ďalších.
Jedným z kľúčových pojmov v mechanizme výmeny údajov je plán výmeny. Plán výmeny je osobitný typ objektu aplikačnej platformy 1C, ktorý určuje predovšetkým zloženie údajov, ktoré sa zúčastnia výmeny (ktoré presne registre, dokumenty, fakturácie atď.). Plán výmeny obsahuje aj informácie o účastníkoch výmeny (tzv. uzloch výmeny).
Druhým komponentom mechanizmu výmeny údajov je mechanizmus registrácie zmien. Tento mechanizmus automaticky sleduje v systéme zmeny údajov, ktoré musia byť odovzdané konečným spotrebiteľom v rámci plánu výmeny. Pomocou tohto mechanizmu platforma sleduje zmeny, ku ktorým došlo od poslednej synchronizácie, a umožňuje minimalizovať objem údajov prenášaných v rámci ďalšej synchronizačnej relácie.
Výměna dat probíhá pomocí XML zpráv určité struktury. Zpráva obsahuje data, která se změnila od poslední synchronizace s uzlem, a určité servisní informace. Struktura zpráv podporuje číslování zpráv a umožňuje přijímání potvrzení od uzlu-příjemce o přijetí zpráv. Takové potvrzení je obsaženo v každé zprávě přicházející od uzlu-příjemce ve formě čísla poslední přijaté zprávy. Číslování zpráv umožňuje platformě pochopit, která data byla již úspěšně předána na uzel-příjemce, a vyhnout se opakovanému předávání, přičemž se předávají pouze data, která se změnila od přijetí poslední zprávy s potvrzením o přijatých datech uzlem-příjemcem. Při takovémto způsobu práce se zajišťuje zaručená doprava i při nspolehlivých přenosových kanálech a ztrátě zpráv.
Externé komponenty
V některých případech, při řešení integračních úloh, je třeba se vypořádat se specifickými požadavky, například protokoly interakce, formáty dat, se kterými platforma 1C:Enterprise nepřičítá. Pro takový okruh úloh je v platformě zajištěna , která umožňuje vytvářet dynamicky připojované moduly, které rozšiřují funkčnost 1C:Enterprise.
Typickým příkladem úlohy s takovými požadavky může být integrace aplikačního řešení 1C s obchodním vybavením, počínaje váhami a konče pokladními přístroji a čtečkami čárových kódů. Externí komponenty mohou být připojeny jak na straně serveru 1C:Enterprise, tak na klientské straně (včetně, včetně webového klienta a 1C:Enterprise). Technologie externích komponent předpokládá poměrně jednoduché a srozumitelné programové (C++) rozhraní pro interakci komponenty s platformou 1C:Enterprise, které musí realizovat vývojář.
Možnosti, které se otevřou při použití externích komponent, jsou velmi široké. Lze realizovat interakci podle specifického protokolu výměny dat s externími zařízeními a systémy, implementovat specifické algoritmy zpracování dat a formátů dat atd.
Zastaralé integračné mechanizmy
Na platforme sú k dispozícii integračné mechanizmy, ktorých použitie sa neodporúča v nových riešeniach; zostali z dôvodov spätnej kompatibility a pre prípady, keď druhá strana nemôže pracovať s modernejšími protokolmi. Jedným z nich je práca s súbormi vo formáte DBF (podporované vo vstavanom jazyku pomocou objektu XBase).
Ďalší zastaraný integračný mechanizmus je použitie technológie COM (dostupné iba na platforme Windows). Platforma 1C:Enterprise poskytuje dva spôsoby integrácie pre Windows, ktoré využívajú technológiu COM: Automation-server a Externé pripojenie. Sú si veľmi podobné, ale jedným z podstatných rozdielov je to, že v prípade Automation-servera sa spúšťa plnohodnotná klientská aplikácia 1C:Enterprise 8, zatiaľ čo v prípade externého pripojenia sa spúšťa relatívne malý vnútroprocesný COM-server. To znamená, že pri práci cez Automation server je možné zapojiť funkcionalitu klientskej aplikácie a vykonávať akcie, ktoré sú analogické interaktívnym akciám používateľa. Pri použití externého pripojenia je možné využiť iba funkcie biznis logiky, a to buď na klientskej strane pripojenia, kde sa vytvorí vnútroprocesný COM-server, alebo vyvolávať biznis logiku na strane servera 1C:Enterprise.
Technológiu COM možno tiež použiť 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 COM-klienta. Treba však pripomenúť, že tieto mechanizmy budú fungovať len v prípade, že server 1C funguje v prostredí Windows.
Integračné mechanizmy implementované v štandardných konfiguráciách
Formát EnterpriseData

V niektorých konfiguráciách 1C (zoznam nižšie) bol na základe vyššie popísaného platformového mechanizmu výmeny údajov implementovaný hotový mechanizmus výmeny údajov s externými aplikáciami, ktorý nevyžaduje zmenu zdrojového kódu konfigurácií (príprava na výmenu údajov sa vykonáva v nastaveniach aplikovaných riešení):
- „1C:ERP Riadenie podniku 2.0“
- „Komplexná automatizácia 2“
- „Účtovníctvo podniku“, edícia 3.0
- „Účtovníctvo podniku KORP“, edícia 3.0
- „Maloobchod“, edícia 2.0
- "Základná správa obchodovania", edícia 11
- "Správa obchodovania", edícia 11
- "Mzdy a správa personálu KORP", edícia 3
Na výmenu údajov sa používa formát , založený na XML. Formát je obchodne orientovaný – opísané v ňom štruktúry údajov zodpovedajú obchodným entitám (dokumentom a prvkom adresárov), ktoré sú predstavené v programoch 1C, napríklad: akt vykonaných prác, príjmový pokladničný doklad, kontrahent, nomenklatúra a pod.
Výmena údajov medzi aplikáciou 1C a externou aplikáciou môže prebiehať:
- cez vyhradený súborový adresár
- cez FTP adresár
- cez webovú službu, nasadenú na strane aplikácie 1C. Súbor s údajmi sa odosiela ako parameter webových metód
- cez elektronickú poštu
V prípade výmeny cez webovú službu externá aplikácia iniciuje výmenný proces vyvolaním príslušných webových metód aplikácie 1C. V ostatných prípadoch iniciátorom výmeny bude aplikácia 1C (umiestnením súboru s údajmi do príslušného adresára alebo odoslaním súboru s údajmi na nakonfigurovanú emailovú adresu).
Na strane 1C sa tiež nastavuje, s akou periódou bude dochádzať k synchronizácii (pre varianty s výmenou súborov cez adresár a elektronickú poštu):
- podľa harmonogramu (s určenou periódou)
- manuálne; používateľ bude musieť manuálne spustiť synchronizáciu vždy, keď to bude potrebovať
Potvrdenie správ
Aplikácie 1C vedú evidenciu odoslaných a prijatých správ synchronizácie a očakávajú to isté od externých aplikácií. To umožňuje zapojiť mechanizmus číslovania správ, opísaný vyššie v sekcii "Mechanizmus výmeny údajov".
Aplikácie 1C počas synchronizácie odosielajú iba informácie o zmenách, ktoré nastali v obchodných entitách od poslednej synchronizácie (aby sa minimalizoval objem odosielaných informácií). Pri prvej synchronizácii aplikácia 1C exportuje všetky obchodné entity (napríklad položky evidencie tovaru) vo formáte EnterpriseData do XML súboru (keďže všetky sú „nové“ pre externú aplikáciu). Externá aplikácia musí spracovať informácie z prijatého XML súboru od 1C a pri nasledujúcej synchronizácii umiestniť do súboru odosielaného do 1C, v špeciálnej sekcii XML, informáciu, že správa od 1C s určitým číslom bola úspešne prijatá. Potvrdenie je pre aplikáciu 1C signálom, že všetky obchodné entity boli úspešne spracované externou aplikáciou a informácie o nich už nie je potrebné odosielať. Okrem potvrdenia môže XML súbor od externej aplikácie obsahovať aj údaje na synchronizáciu zo strany aplikácie (napríklad dokumenty o predaji tovaru a služieb).
Po prijatí potvrdenia aplikácia 1C označí všetky zmeny, odoslané v predchádzajúcej správe, ako úspešne synchronizované. Iba nesynchronizované zmeny v obchodných entitách (vytváranie nových entít, zmeny a odstraňovanie existujúcich) budú odoslané do externej aplikácie pri nasledujúcej synchronizácii.

Pri prenose údajov z externej aplikácie do aplikácie 1C sa situácia zmení na opačnú. Externá aplikácia musí správne vyplniť sekciu potvrdenia v XML súbore a vložiť obchodné údaje na synchronizáciu z jej strany vo formáte EnterpriseData.

Zjednodušená výmena údajov bez potvrdzovania
Pre prípady jednoduchej integrácie, keď stačí iba odosielať informácie z externej aplikácie do aplikácie 1C a spätný prenos údajov z aplikácie 1C do externej aplikácie nie je potrebný (napríklad integrácia online obchodu, ktorý odosiela informácie o predaji do „1C:Účtovníctvo“), existuje zjednodušená verzia práce prostredníctvom webovej služby (bez potvrdzovania), ktorá nevyžaduje nastavenia na strane aplikácie 1C.
Špecializované integračné riešenia
Existuje typové riešenie „1C:Konverzia dát“, ktoré využíva mechanismy platformy na konverziu a výmenu údajov medzi typovými konfiguráciami 1C, ale môže byť tiež použité na integráciu s externými aplikáciami.
Integrácia s bankovými riešeniami
Štandard , vyvinuté odborníkmi 1C pred viac ako 10 rokmi, sa vlastne stalo štandardom priemyslu v Rusku. Nasledovným krokom v tomto smere je technológia , ktorá umožňuje odosielať platobné dokumenty do banky a prijímať výpisy z banky priamo z programov systému „1C:Podnikanie“ stlačením jedného tlačidla v programe „1C“; v tomto prípade nie je potrebná inštalácia a spustenie ďalších programov na klientskom počítači.
Existuje tiež .
Iné
Zaslúžia si zmienku , štandard výmeny obchodnými informáciami (vyvinutý spoločne s Microsoftom, Intelom, Price.ru a ďalšími spoločnosťami), .
Zdroj: habr.com
