Milyen fontos követelmények vonatkoznak az üzleti alkalmazásokra? A legfontosabbak a következő feladatok:
- Az alkalmazás működési logikájának könnyű módosítása/alkalmazása a változó üzleti feladatokhoz.
- Az integráció más alkalmazásokkal.
Az 1C által az első feladat megoldásának módját a „Testreszabás és támogatás” részben röviden ismertettük; ezekhez az érdekes témákhoz a jövőbeli cikkek egyikében visszatérünk. Ma a második feladatról, az integrációról lesz szó.
Integrációs feladatok
Az integrációs feladatok különbözőek lehetnek. Néhányhoz elegendő a egyszerű interaktív adatcsere – például a bank számára a dolgozók listájának átadása a bérkartonok kiállításához. Komplexebb feladatokhoz teljesen automatizált adatcsere szükséges, lehetőleg a külső rendszer üzleti logikájának bevonásával. Vannak speciális jellegű feladatok is, mint például integráció külső berendezésekkel (például kereskedelmi berendezésekkel, mobil scanner-kkel stb.) vagy örökölt vagy szakspecifikus rendszerekkel (például RFID-címkék azonosító rendszerekkel). Különösen fontos, hogy minden feladathoz a legmegfelelőbb integrációs mechanizmust válasszuk.
Integrációs lehetőségek 1C-vel
Sokféle megközelítés létezik az 1C alkalmazásokkal való integráció megvalósítására, hogy melyiket válasszuk, az a feladat követelményeitől függ.
- Megvalósítás a , amelyeket a platform biztosít, saját, specializált API-n alapuló megoldással az 1C alkalmazás oldalán (például Web- vagy HTTP-szolgáltatások készletével, amelyek harmadik fél alkalmazásokat fognak hívni az 1C alkalmazással való adatcserére). Ennek a megközelítésnek az előnye az 1C alkalmazás oldalán végzett megvalósítás változásaira való ellenállás. A megközelítés sajátossága, hogy szükség van az 1C tipikus megoldásának forráskódjának módosítására, ami potenciálisan nehezen kihívást jelenthet a forráskódok egyesítésekor új konfigurációs verzióra való áttérés esetén. Ilyen esetben segíthet az új, fejlettebb funkció — . A bővítmények lényegében egy plugin mechanizmus, amely lehetővé teszi alkalmazások kiegészítőinek létrehozását anélkül, hogy magukat az alkalmazásokat megváltoztatnánk. Az integrációs API kiemelése a konfigurációs bővítménybe segít elkerülni a konfigurációk összeolvadásával járó nehézségeket, amikor frissítjük a standard megoldást.
- A platform integrációs mechanizmusainak használata, amelyek külső hozzáférést biztosítanak az alkalmazás objektummodelljéhez, és nem igényelnek a program módosítását vagy bővítmény létrehozását. Ennek az megközelítésnek az előnye, hogy nem szükséges módosítani az 1C alkalmazást. Hátrány viszont, hogy ha az 1C alkalmazást már módosították, akkor szükség lehet az integrált alkalmazás módosítására is. Ennek tipikus példája az OData protokoll integrációs célú használata, amely a 1C: Vállalat platformján van megvalósítva (több részlet alább).
- Az 1C szabványos megoldásaiban megvalósított kész alkalmazási protokollok felhasználása. Sok 1C-s és partneri szabványos megoldás az integrációs mechanizmusokkal saját alkalmazási protokolljait valósítja meg, amelyek konkrét feladatokra orientáltak. Ezeknek a mechanizmusoknak a használata során nincs szükség kód írására az 1C alkalmazás oldalán, mivel a standard alkalmazási megoldás lehetőségeit vesszük igénybe. Az 1C alkalmazás oldalán csak a szükséges beállításokat kell elvégeznünk.
Integrációs mechanizmusok az 1C: Vállalat platformon
Fájlok importálása/exportálása
Tegyük fel, hogy feladatunk a kétirányú adatcsere megvalósítása az 1C alkalmazás és egy tetszőleges alkalmazás között. Például szinkronizálni kell a terméklistát (Nomenklatúra nyilvántartás) az 1C alkalmazás és egy tetszőleges alkalmazás között.

A feladat megoldásához készíthetünk egy bővítményt, amely az Nomenklatúra nyilvántartást egy meghatározott formátumú fájlba (szöveges, XML, JSON stb.) exportálja, és képes olvasni ezt a formátumot.
A platformon megvalósított mechanizmus az alkalmazási objektumok XML-be történő sorozatba állítására, közvetlenül a globális kontextus Zap寫XML/Chčt/XML módszereivel, valamint az XDTO (XML Adatátviteli Objektumok) segédobjektum használatával történik.
Bármely objektum az 1C: Vállalat rendszerében sorozatba állítható XML megjelenítési formátumban és vissza.
Ez a funkció XML formátumban adja vissza az objektum megjelenítését:
XML_Tárgy(Objekt)
XMLBejegyzés = Új XMLBejegyzés();
XMLBejegyzés.BeállítSzöveg();
XMLÍr(Új XMLBejegyzés, Objekt);
VisszaAdás XMLBejegyzés.Befejez();
VégeFunkciónak
így fog kinézni a Nomenklatúra szótár XML-be exportálása XDTO segítségével:
&A_Szerveren
Procedúra ExportXMLASzerveren()
ÚjXDTOSorozat = XDTOSorozat;
ÚjXMLBejegyzés = Új XMLBejegyzés();
ÚjXMLBejegyzés.FájlMegnyitás("C:AdatNomenklatura.xml", "UTF-8");
ÚjXMLBejegyzés.XMLHirdetéstÍr();
ÚjXMLBejegyzés.ElemKezdésÍr("SzótárNomenklúra");
Kiválasztás = Szótárak.Nomenklúra.Választ();
Amíg Kiválasztás.Következő() Ciklus
NomenklúraObjekt = Kiválasztás.ObjektumotKap();
ÚjXDTOSorozat.XMLÍr(ÚjXMLBejegyzés, NomenklúraObjekt, XMLTípusHozzárendelése.Külön);
CiklusVége;
ÚjXMLBejegyzés.ElemVégeÍr();
ÚjXMLBejegyzés.Befejez();
VégeProcedúrának
Egy egyszerű kódmódosítással exportáljuk a szótárt JSON-ba. A termékek tömbbe lesznek írva; a változatosság kedvéért bemutatjuk az angol nyelvű szintaxist:
&A_Szerveren
Procedúra ExportJSONASzerveren()
ÚjXDTOSorozat = XDTOSorozat;
ÚjJSONÍró = Új JSONÍró();
ÚjJSONÍró.FájlMegnyitás("C:AdatNomenklatura.json", "UTF-8");
ÚjJSONÍró.ObjektumKezdÍr();
ÚjJSONÍró.PropertyNeveÍr("SzótárNomenklúra");
ÚjJSONÍró.TömbKezdÍr();
Kiválasztás = Szótárak.Nomenklúra.Választ();
Amíg Kiválasztás.Következő() Csinál
NomenklúraObjekt = Kiválasztás.ObjektumotKap();
ÚjJSONÍró.ObjektumKezdÍr();
ÚjJSONÍró.PropertyNeveÍr("Nomenklúra");
ÚjXDTOSorozat.JSONÍr(ÚjJSONÍró, NomenklúraObjekt, XMLTípusHozzárendelése.Abnem);
ÚjJSONÍró.ObjektumVégeÍr();
CsinálVége;
ÚjJSONÍró.TömbVégeÍr();
ÚjJSONÍró.ObjektumVégeÍr();
ÚjJSONÍró.Befejez();
VégeProcedúrának
Ezután csak az adatok átadását kell megoldani a végfelhasználónak. A 1C:Enterprise platform támogatja a fő internetes protokollokat, mint például HTTP, FTP, POP3, SMTP, IMAP, beleértve a biztonságos verzióikat. Az adatok továbbításához HTTP-t és/vagy webszolgáltatásokat is használhat.
HTTP- és webszolgáltatások

A 1C alkalmazások valósíthatják meg saját HTTP- és webszolgáltatásaikat, valamint hívhatják meg a harmadik féltől származó alkalmazások által megvalósított HTTP- és webszolgáltatásokat.
REST interfész és OData protokoll
A 8.3.5-ös verziótól kezdve a 1C:Enterprise platform automatikusan az egész alkalmazási megoldáshoz. Bármely konfigurációs objektum (szótár, dokumentum, információs nyilvántartás stb.) elérhetővé tehető az adatok REST interfészen keresztüli lekérésére és módosítására. A platform az OData protokollt használja az elérhetőséghez. 3.0 verzió. Az OData szolgáltatások publikálása a Konfigurátor menü „Adminisztráció -> Publikálás a webszerverre” menüpontjából történik, a „Standard OData interfész közzététele” jelölőnégyzetet be kell jelölni. Az atom/XML és JSON formátumok támogatottak. Miután az alkalmazás meg van publikálva a webszerveren, a külső rendszerek HTTP kéréseken keresztül érhetik el a REST interfészt. Az 1C alkalmazás működéséhez OData protokollal nem szükséges programozás az 1C oldalán.
Így, az alábbi URL formátum http:////odata/standard.odata/Catalog_Номенклатура visszaadja nekünk a Nomenkaltúra katalogus tartalmát XML formátumban - a válaszfejlécet a tömörség kedvéért kihagytuk:
http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')
2016-06-06T16:42:17
35d1f6e4-289b-11e6-8ba4-e03f49b16074
AAAAAgAAAAA=
false
000000001
Mitsubishi klíma
Teljesítmény: 2,5 kW, üzemmódok: meleg/hideg
http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')
...
Ha a URL-hoz hozzáadjuk a „?$format=application/json” sztringet, a Nomenkaltúra katalogus tartalmát JSON formátumban kapjuk (URL formátuma: 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 klíma",
"Leírás": "Teljesítmény: 2,5 kW, üzemmódok: meleg/hideg"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Daikin klíma",
"Leírás": "Teljesítmény: 3 kW, üzemmódok: meleg/hideg"
}, …
Külső adatforrások

Egyes esetekben adatcsere történik a optimális megoldás lehet. A külső adatforrások egy 1C konfigurációs alkalmazási objektum, amely lehetővé teszi, hogy bármilyen ODBC-kompatibilis adatbázissal interakcióba lépjen, olvasásra és írásra egyaránt. A külső adatforrások elérhetőek Windows és Linux rendszereken is.
Adatcsere mechanizmus
szolgál a területi elosztott rendszerek létrehozására 1C:Vállalat alapjain, valamint adatcserére más információs rendszerekkel, amelyek nem 1C:Vállalat alapúak.
Ez a mechanizmus aktívan használatban van az 1C bevezetéseknél, és a megoldható feladatok köre meglehetősen széles. Ide tartozik az adatok cseréje az 1C alkalmazások között, amelyek a szervezet fiókjaiban vannak telepítve, az 1C alkalmazás és az internetes bolt webhelye közötti adatcsere, illetve az 1C szerveralkalmazás és a mobil kliens (amelyet az 1C:Vállalat mobilplatformjával készítettek) közötti adatcsere, és még sok más.
Az adatcsere mechanizmusa kulcsfogalma a csere terv. A csere terv egy speciális típusú alkalmazási objektum az 1C platformon, amely meghatározza többek között azokat az adatokat, amelyek részt vesznek az adatcserében (milyen típusú nyilvántartások, dokumentumok, regiszterek stb.). A csere terv az adatcsere résztvevőiről (úgynevezett csere csomópontokról) is tartalmaz információt.
A másik komponens az adatcsere mechanizmusában a változás regisztráló mechanizmus. Ez a mechanizmus automatikusan nyomon követi a rendszerben a változásokat, amelyek a csere terv keretein belül végfelhasználókhoz kell eljuttatni. Ezzel a mechanizmussal a platform nyomon követi az utolsó szinkronizálás óta bekövetkezett változásokat, és lehetővé teszi az adatforgalom minimalizálását a következő szinkronizálási ülés keretein belül.
Az adatok cseréje meghatározott struktúrájú XML üzenetek segítségével történik. Az üzenet tartalmazza a legutolsó szinkronizálás óta megváltozott adatokat, és némi szolgáltatási információt. Az üzenetek struktúrája támogatja az üzenetek számát, és lehetővé teszi, hogy a fogadó csomópont megerősítést adjon az üzenetek átvételéről. Ez a megerősítés minden, a fogadó csomóponttól érkező üzenetben megtalálható, az utolsó elfogadott üzenet számaként. Az üzenetek számozása lehetővé teszi a platform számára, hogy megértse, mely adatok lettek már sikeresen átkonvertálva a fogadó csomópontra, és elkerülje a dupla átvitel, csupán a megváltozott adatokat adva át az utolsó üzenetről kapott elismervény óta. Ezzel a működési séma biztosítja a garantált átvitelét még megbízhatatlan adatátviteli csatornák esetén és az üzenetek elvesztésekor is.
Külső komponensek
Bizonyos esetekben, az integrációs feladatok megoldása során speciális követelményekkel találkozhatunk, például az interakció protokolljaival, az adatformátumokkal, amelyekkel a 1C:Enterprise platform nem számol. Az ilyen feladatokhoz a platformon elő van írva , amely lehetővé teszi dinamikusan csatlakoztatható modulok létrehozását, amelyek bővítik a 1C:Enterprise funkcionalitását.
Tipikus példa az ilyen követelményekkel rendelkező feladatra a 1C alkalmazás integrációja kereskedő berendezésekkel, a mérlegektől kezdve egészen a pénztárgépekig és vonalkód olvasókig. A külső komponensek csatlakoztathatók a 1C:Enterprise szerver oldalán, valamint az ügyfél oldalon (beleértve a webklienst és is). A külső komponensek technológiája viszonylag egyszerű és érthető programozási (C++) interfészt biztosít a komponens és a 1C:Enterprise platform közötti interakcióhoz, amit a fejlesztőnek kell megvalósítania.
A külső komponensek használatával megnyíló lehetőségek meglehetősen széleskörűek. Lehetővé teszi az adatok külső eszközökkel és rendszerekkel való specifikus adatcsere protokollon keresztüli integrációját, specifikus adateljárás algoritmusok és adatformátumok beépítését stb.
Elavult integrációs mechanizmusok
A platformon elérhető integrációs mechanizmusok, amelyeket nem ajánlott új megoldásokban használni; a hátrameneti kompatibilitás érdekében hagyták meg őket, valamint arra az esetre, ha a másik fél nem tud modern protokollokkal dolgozni. Az egyik a DBF formátumú fájlokkal való munka (támogatott a beépített nyelvben az XBase objektum használatával).
A másik elavult integrációs mechanizmus a COM technológia használata (csak Windows platformon érhető el). A 1C:Enterprise platform két integrációs módot biztosít Windows-ra, amelyek a COM technológiát használják: Automatikus szerver és Külső csatlakozás. Ezek nagyon hasonlóak, de egyik fő különbség, hogy az Automatikus szerver esetében egy teljes értékű 1C:Enterprise 8 kliensalkalmazás indul el, míg a külső csatlakozás esetében egy viszonylag kicsi belső folyamatú COM-szerver. Tehát az Automatikus szerver használatakor kihasználható a kliensalkalmazás funkcionalitása, végrehajthatók olyan műveletek, mint az interaktív felhasználói műveletek. A külső csatlakozás használatakor csak az üzleti logika funkciói érhetők el, amelyeket a csatlakozás kliensoldalán, ahol a belső folyamatú COM-szerver létrejön, vagy a 1C:Enterprise szerver oldalán végezhetünk.
A COM technológia külső rendszerek elérésére is használható a 1C:Enterprise platformon írt alkalmazás kódjából. Ebben az esetben a 1C alkalmazás COM-kliensként működik. De figyelembe kell venni, hogy ezek a mechanizmusok csak abban az esetben működnek, ha a 1C szerver Windows környezetben működik.
Az integrációs mechanizmusok, amelyek a tipikus konfigurációkban valósulnak meg
EnterpriseData formátum

A 1C egyes konfigurációiban (az alábbi lista szerint) a fent ismertetett platformon alapuló adatcserélési mechanizmushoz készen álló adatcserélési mechanizmus van jelen, amely nem igényel forráskód módosítást a konfigurációkban (az adatcserére való felkészítést az alkalmazási megoldások beállításaiban végzik):
- „1C:ERP Vállalatirányítás 2.0”
- „Komplex automatizálás 2”
- „Vállalati könyvelés”, 3.0 kiadás
- „Vállalati könyvelés KORP”, 3.0 kiadás
- „Kiskereskedelem”, 2.0 kiadás
- „Alapkereskedelmi irányítás“, 11. kiadás
- „Kereskedelmi irányítás“, 11. kiadás
- „Bérszámfejtés és személyzeti irányítás KORP“, 3. kiadás
Az adatok cseréjéhez az alábbi formátumot használjuk , amely XML-alapú. A formátum üzleti orientált – az abban leírt adatstruktúrák megfelelnek az 1C programokban megjelenő üzleti entitásoknak (dokumentumoknak és nyilvántartási elemeknek), például: elvégzett munkák nyugtája, bejövő pénztárbizonylat, partner, nomenklatúra stb.
Az adatok cseréje az 1C alkalmazás és egy harmadik fél alkalmazás között a következő módokon történhet:
- dedikált fájlmappán keresztül
- FTP mappán keresztül
- webszolgáltatáson keresztül, amely az 1C alkalmazás oldalán van telepítve. Az adatfájl webes módszerek paramétereként kerül átadásra
- elektronikus levélen keresztül
Webszolgáltatás útján történő csere esetén a harmadik fél alkalmazás elindítja az adatcserét az 1C alkalmazás megfelelő webes módozatainak hívásával. Más esetekben az adatcsere kezdeményezője az 1C alkalmazás lesz (az adatfájl megfelelő mappába helyezésével vagy az adatfájl beállított e-mail címre történő elküldésével).
Az 1C rendszerében is beállítható, hogy milyen gyakran történjen a szinkronizálás (mappás fájlcsere és elektronikus levél esetén):
- ütemezés szerint (megadott időközönként)
- kézi módszerrel; a felhasználónak minden alkalommal manuálisan kell elindítania a szinkronizálást, amikor szüksége van rá
Üzenetek visszaigazolása
Az 1C alkalmazások nyomon követik a küldött és fogadott szinkronizálási üzeneteket, és ugyanazt várják el a harmadik fél alkalmazásaitól. Ez lehetővé teszi a fent említett „Adatcsere mechanizmus“ szakaszban leírt üzenetszámozási mechanizmus alkalmazását.
A 1C alkalmazások a szinkronizálás során csak azokat az információkat továbbítják, amelyek a legutolsó szinkronizálás óta változtak meg a vállalati entitásokkal kapcsolatban (a továbbított információ mennyiségének minimalizálása érdekében). Az első szinkronizáláskor a 1C alkalmazás minden vállalati entitást (például a termékkatalógus elemeit) az EnterpriseData formátumában XML-fájlba exportál (mivel ezek mind „újak” a külső alkalmazás számára). A külső alkalmazásnak feldolgoznia kell az 1C-től érkező XML-fájl információit, és a következő szinkronizáláskor az 1C-nek küldött fájl speciális szakaszába XML formátumban be kell írnia az információt arról, hogy az 1C-től érkezett üzenetet bizonyos szám alatt sikeresen fogadták. A visszaigazoló üzenet a 1C alkalmazás számára azt jelenti, hogy minden vállalati entitást sikeresen feldolgozott a külső alkalmazás, és további információt nem szükséges továbbítani róluk. A visszaigazolás mellett az XML-fájl, amelyet a külső alkalmazás küld, tartalmazhat adatokat a szinkronizálásról az alkalmazás oldaláról (például termékek és szolgáltatások értékesítési dokumentumait).
A visszaigazolás üzenetének megérkezése után a 1C alkalmazás az előző üzenetben elküldött összes változtatást sikeresen szinkronizáltnak jelöli. Csak a még nem szinkronizált változtatások a vállalati entitásokban (új entitások létrehozása, meglévők módosítása és törlése) kerülnek a következő szinkronizáláskor a külső alkalmazásba.

A külső alkalmazásból a 1C alkalmazásba történő adatátvitel esetén a helyzet megfordul. A külső alkalmazásnak megfelelően kell kitöltenie a visszaigazoló szakaszt az XML-fájlban, és az EnterpriseData formátumban kell elhelyeznie az üzleti adatokat a szinkronizáláshoz.

Egyszerűsített adatcsere visszaigazolás nélkül
Azokban az esetekben, amikor a hagyományos integráció elegendő, amely csak annyit kíván, hogy információt továbbítson a külső alkalmazásból a 1C alkalmazásba, és a 1C alkalmazásból a külső alkalmazásba történő adatvisszaadásra nincs szükség (például egy online bolt integrációja, amely értékesítési információkat küld a '1C: Könyvelés'-be), van egy egyszerűsített verzió, amely webszolgáltatáson keresztül működik (visszaigazolás nélkül), és nem igényel beállítást az 1C alkalmazás oldalán.
Szakespecializált integrációs megoldások
Létezik egy tipikus megoldás, a „1C:Adatkonverzió”, amely a platform mechanizmusait használja az adatok konvertálására és cseréjére a tipikus 1C konfigurációk között, de külső alkalmazásokkal való integrációra is használható.
Banki megoldások integrációja
A szabványt , amelyet a 1C szakemberei több mint 10 éve fejlesztettek ki, ténylegesen az iparági szabvánnyá vált Oroszországban. A következő lépés ebben az irányban a , amely lehetővé teszi a banki dokumentumok elküldését a bankba, és a banki kivonatok közvetlen megkapását a „1C:Vállalat” rendszer programjából egy gombnyomással az „1C” programban; ehhez nem szükséges további programok telepítése és futtatása az ügyfélszámítógépen.
Van továbbá .
Egyéb
Érdemes említést tenni a kereskedelmi információcsere szabványról, (amelyet a Microsoft, Intel, Price.ru és más cégekkel közösen fejlesztettek ki), .
Forrás: habr.com
