Az 1C-vel való integráció módszerei

Melyek a legfontosabb követelmények az üzleti alkalmazásokhoz? A legfontosabb feladatok közül néhány a következő:

  • Az alkalmazáslogika egyszerű megváltoztatása/igazítása a változó üzleti feladatokhoz.
  • Könnyű integráció más alkalmazásokkal.

Az első feladat megoldását az 1C-ben a „Testreszabás és támogatás” részben ismertettük röviden ez a cikk; Egy következő cikkünkben visszatérünk erre az érdekes témára. Ma a második feladatról, az integrációról lesz szó.

Integrációs feladatok

Az integrációs feladatok eltérőek lehetnek. Egyes problémák megoldásához elegendő egy egyszerű interaktív adatcsere - például az alkalmazottak listájának átadása egy banknak fizetési plasztikkártyák kiadása céljából. Bonyolultabb feladatokhoz teljesen automatizált adatcserére lehet szükség, esetleg egy külső rendszer üzleti logikájára hivatkozva. Vannak speciális jellegű feladatok, mint például az integráció külső berendezésekkel (például kiskereskedelmi berendezések, mobil szkennerek stb.), vagy örökölt vagy speciális rendszerekkel (például RFID címkefelismerő rendszerekkel). Rendkívül fontos az egyes feladatokhoz a legmegfelelőbb integrációs mechanizmus kiválasztása.

Integrációs lehetőségek 1C-vel

Különféle megközelítések léteznek az 1C-alkalmazásokkal való integráció megvalósítására; melyiket válasszuk, a feladat követelményeitől függ.

  1. Megvalósítás alapú integrációs mechanizmusoka platform által biztosított saját speciális API az 1C alkalmazás oldalán (például web- vagy HTTP-szolgáltatások készlete, amely harmadik féltől származó alkalmazásokat hív meg, hogy adatot cseréljenek az 1C alkalmazással). Ennek a megközelítésnek az az előnye, hogy az API ellenáll a megvalósítás változásaival szemben az 1C alkalmazás oldalán. A megközelítés sajátossága, hogy meg kell változtatni egy szabványos 1C megoldás forráskódját, ami potenciálisan erőfeszítést igényelhet a forráskódok egyesítésekor, amikor a konfiguráció új verziójára költözik. Ebben az esetben egy új progresszív funkció jöhet a segítségre - konfigurációs bővítmények. A bővítmények lényegében egy beépülő modul, amely lehetővé teszi az alkalmazásmegoldások kiegészítését anélkül, hogy az alkalmazásmegoldásokat megváltoztatná. Az integrációs API-nak a konfigurációs bővítménybe való áthelyezése lehetővé teszi, hogy elkerülje a konfigurációk egyesítése során felmerülő nehézségeket, amikor egy szabványos megoldás új verziójára vált át.
  2. Olyan platform-integrációs mechanizmusok használata, amelyek külső hozzáférést biztosítanak az alkalmazásobjektum-modellhez, és nem igénylik az alkalmazás módosítását vagy bővítmény létrehozását. Ennek a megközelítésnek az az előnye, hogy nincs szükség az 1C alkalmazás megváltoztatására. Mínusz - ha az 1C alkalmazást javították, akkor az integrált alkalmazásban fejlesztésekre lehet szükség. Példa erre a megközelítésre az OData protokoll használata az integrációhoz, amelyet az 1C:Enterprise platform oldalán implementáltak (erről bővebben lentebb).
  3. A szabványos 1C megoldásokban megvalósított, kész alkalmazási protokollok használata. Az 1C és a partnerek számos szabványos megoldása saját alkalmazási protokollokat valósít meg, konkrét feladatokra összpontosítva, a platform által biztosított integrációs mechanizmusok alapján. Ezen mechanizmusok használatakor nem kell kódot írni az 1C alkalmazás oldalára, mert Az alkalmazási megoldás standard képességeit használjuk. Az 1C alkalmazás oldalán csak bizonyos beállításokat kell elvégeznünk.

Integrációs mechanizmusok az 1C:Enterprise platformon

Fájlok importálása/exportálása

Tegyük fel, hogy egy 1C alkalmazás és egy tetszőleges alkalmazás közötti kétirányú adatcsere feladatával állunk szemben. Például szinkronizálnunk kell egy terméklistát (Nómenklatúra-könyvtár) az 1C alkalmazás és egy tetszőleges alkalmazás között.

Az 1C-vel való integráció módszerei
A probléma megoldásához írhat egy kiterjesztést, amely letölti a Nomenclature könyvtárat egy bizonyos formátumú (szöveg, XML, JSON, ...) fájlba, és be tudja olvasni ezt a formátumot.

A platform egy mechanizmust valósít meg az alkalmazásobjektumok XML-ben történő sorosítására mind közvetlenül, a WriteXML/ReadXML globális környezeti metódusokon keresztül, mind az XDTO (XML Data Transfer Objects) segédobjektum használatával.

Az 1C:Enterprise rendszer bármely objektuma szerializálható XML-reprezentációvá és fordítva.

Ez a függvény az objektum XML reprezentációját adja vissza:

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

Így fog kinézni a Nomenclature könyvtár exportálása XML-be XDTO használatával:

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

A kód egyszerű módosításával a könyvtárat JSON-ba exportáljuk. A termékek egy tömbbe íródnak; A változatosság kedvéért íme a szintaxis angol verziója:

&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

Ezután már csak az adatok továbbítása marad a végfelhasználóhoz. Az 1C:Enterprise platform támogatja a HTTP, FTP, POP3, SMTP, IMAP fő internetes protokollokat, beleértve azok biztonságos verzióit is. Az adatok átvitelére HTTP és/vagy webszolgáltatásokat is használhat.

HTTP és webszolgáltatások

Az 1C-vel való integráció módszerei

Az 1C alkalmazások megvalósíthatják saját HTTP- és webszolgáltatásaikat, valamint meghívhatják 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 az 1C:Enterprise platform automatikusan képes hozzon létre egy REST felületet a teljes alkalmazási megoldáshoz. Bármely konfigurációs objektum (könyvtár, dokumentum, információs regiszter stb.) elérhetővé tehető adatok fogadására és módosítására a REST interfészen keresztül. A platform a protokollt hozzáférési protokollként használja OData 3.0 verzió. Az OData szolgáltatások közzététele a Konfigurátor „Adminisztráció -> Közzététel webszerveren” menüjéből történik, a „Szabványos OData felület 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ásmegoldást közzétették a webszerveren, a harmadik féltől származó rendszerek a REST felületen keresztül HTTP-kérésekkel hozzáférhetnek hozzá. Az 1C alkalmazás OData protokollon keresztüli használatához nincs szükség az 1C oldalon történő programozásra.

Tehát egy URL-hez hasonló http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура visszaküldi nekünk a Nómenklatúra katalógus tartalmát XML formátumban - egy bejegyzési elemek gyűjteményét (az üzenet címét a rövidség kedvéért elhagyjuk):

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

Ha hozzáadjuk a „?$format=application/json” karakterláncot az URL-hez, megkapjuk a Nomenclature katalógus tartalmát JSON formátumban (az űrlap URL-je 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 кВт, режимы работы: тепло/холод"
}, …

Külső adatforrások

Az 1C-vel való integráció módszerei
Egyes esetekben adatcsere keresztül külső adatforrások lehet a legjobb megoldás. A külső adatforrások egy 1C-alkalmazás-konfigurációs objektum, amely lehetővé teszi bármilyen ODBC-kompatibilis adatbázissal való interakciót olvasás és írás céljából egyaránt. A külső adatforrások Windows és Linux rendszeren is elérhetők.

Adatcsere mechanizmus

Adatcsere mechanizmus egyaránt célja az 1C:Enterprise alapú földrajzilag elosztott rendszerek létrehozása, valamint az adatcsere megszervezése más, nem 1C:Enterprise alapú információs rendszerekkel.

Ezt a mechanizmust aktívan használják az 1C megvalósításokban, és a segítségével megoldott feladatok köre nagyon széles. Ez magában foglalja a szervezet fiókjaiba telepített 1C alkalmazások közötti adatcserét, valamint az 1C alkalmazás és az online áruház webhelye közötti adatcserét, valamint az 1C szerveralkalmazás és a mobil kliens közötti adatcserét (amelyet az 1C:Enterprise mobilplatform segítségével hoztak létre), és sok minden mást. több.

Az adatcsere-mechanizmus egyik kulcsfogalma a csereterv. A csereterv az 1C alkalmazásplatform speciális objektumtípusa, amely meghatározza különösen a cserében részt vevő adatok összetételét (mely könyvtárak, dokumentumok, nyilvántartások stb.). A csereterv a csere résztvevőiről (ún. cserecsomópontokról) is tartalmaz információkat.
Az adatcsere-mechanizmus második összetevője a változásregisztrációs mechanizmus. Ez a mechanizmus automatikusan figyeli a rendszert azon adatok változásai tekintetében, amelyeket a csereterv részeként át kell adni a végfelhasználóknak. Ezzel a mechanizmussal a platform nyomon követi az utolsó szinkronizálás óta bekövetkezett változásokat, és lehetővé teszi a következő szinkronizálási munkamenet során átvitt adatok mennyiségének minimalizálását.

Az adatcsere meghatározott szerkezetű XML-üzenetek használatával történik. Az üzenet a csomóponttal történt legutóbbi szinkronizálás óta megváltozott adatokat és néhány szolgáltatási információt tartalmaz. Az üzenetstruktúra támogatja az üzenetek számozását, és lehetővé teszi, hogy a fogadó csomóponttól visszaigazolást kapjon az üzenetek megérkezéséről. Ezt a megerősítést minden, a fogadó csomóponttól érkező üzenet tartalmazza, az utolsó fogadott üzenet száma formájában. A számozási üzenetek lehetővé teszik a platform számára, hogy megértse, milyen adatokat sikerült már sikeresen továbbítani a fogadó csomópontnak, és elkerülheti az újraküldést azáltal, hogy csak azokat az adatokat továbbítja, amelyek azóta változtak, hogy a küldő csomópont megkapta az utolsó üzenetet a fogadó csomópont által fogadott adatokról szóló nyugtával. Ez a működési séma még megbízhatatlan átviteli csatornák és üzenetvesztés esetén is garantált kézbesítést biztosít.

Külső alkatrészek

Az integrációs problémák megoldása során számos esetben speciális követelményekkel kell foglalkozni, például interakciós protokollokkal, adatformátumokkal, amelyeket az 1C: Enterprise platform nem biztosít. Ilyen sokféle feladathoz a platform biztosítja külső alkatrész technológia, amely lehetővé teszi dinamikusan beépülő modulok létrehozását, amelyek kiterjesztik az 1C:Enterprise funkcionalitását.

A hasonló követelményeket támasztó feladat tipikus példája az 1C alkalmazási megoldás integrálása kiskereskedelmi berendezésekkel, a mérlegtől a pénztárgépekig és vonalkód-leolvasókig. Külső komponensek csatlakoztathatók mind az 1C:Enterprise szerver oldalon, mind a kliens oldalon (beleértve, de nem kizárólagosan a webklienst, valamint a a mobilplatform következő verziója 1C: Vállalati). A külső komponensek technológiája meglehetősen egyszerű és érthető szoftveres (C++) interfészt biztosít a komponensek interakciójához az 1C:Enterprise platformmal, amelyet a fejlesztőnek kell megvalósítania.

A külső alkatrészek használatakor megnyíló lehetőségek nagyon szélesek. Megvalósíthatja az interakciót egy adott adatcsere-protokoll segítségével külső eszközökkel és rendszerekkel, beépíthet speciális algoritmusokat az adatok és adatformátumok feldolgozásához stb.

Elavult integrációs mechanizmusok

A platform olyan integrációs mechanizmusokat biztosít, amelyek használata nem javasolt új megoldásokban; visszamenőleges kompatibilitási okokból, és arra az esetre is, ha a másik fél nem tudna modernebb protokollokkal dolgozni. Az egyik a DBF formátumú fájlokkal való munka (amelyeket a beépített nyelv támogatja az XBase objektummal).

Egy másik örökölt integrációs mechanizmus a COM technológia használata (csak Windows platformon érhető el). Az 1C:Enterprise platform két integrációs módszert kínál a Windows számára COM technológiával: Automatizálási kiszolgáló és Külső kapcsolat. Nagyon hasonlóak, de az egyik alapvető különbség, hogy az Automation szerver esetében egy teljes értékű 1C:Enterprise 8 kliens alkalmazás indul, külső kapcsolat esetén pedig egy viszonylag kis méretű folyamaton belüli COM. szerver elindul. Azaz, ha az automatizálási kiszolgálón keresztül dolgozik, akkor használhatja az ügyfélalkalmazás funkcióit, és a felhasználó interaktív műveleteihez hasonló műveleteket hajthat végre. Külső kapcsolat használatakor csak üzleti logikai funkciók használhatók, és ezek mind a kapcsolat kliens oldalán, ahol egy folyamaton belüli COM-szerver jön létre, és az 1C:Enterprise szerveren hívhatók üzleti logika. oldal.

A COM technológiával külső rendszerekhez is hozzá lehet férni az 1C:Enterprise platformon található alkalmazáskódból. Ebben az esetben az 1C alkalmazás COM-kliensként működik. De emlékeztetni kell arra, hogy ezek a mechanizmusok csak akkor működnek, ha az 1C szerver Windows környezetben működik.

Standard konfigurációkban megvalósított integrációs mechanizmusok

Vállalati adatformátum

Az 1C-vel való integráció módszerei
Számos 1C konfigurációban (az alábbi lista) a fent leírt platform adatcsere-mechanizmusa alapján egy kész mechanizmust valósítanak meg a külső alkalmazásokkal történő adatcserére, amely nem igényli a konfigurációk forráskódjának megváltoztatását (az adatok előkészítése). csere az alkalmazási megoldások beállításaiban történik):

  • "1C:ERP Enterprise Management 2.0"
  • "Komplex automatizálás 2"
  • "Vállalati számvitel", 3.0 kiadás
  • „CORP-vállalkozás könyvelése”, 3.0 kiadás
  • "Kiskereskedelem", 2.0 kiadás
  • „Basic Trade Management”, 11. kiadás
  • Kereskedelmi menedzsment, 11. kiadás
  • „Bérek és személyzeti menedzsment CORP”, 3. kiadás

Az adatcseréhez használt formátum a EnterpriseData, XML alapján. A formátum üzletorientált - a benne leírt adatstruktúrák megfelelnek az 1C programokban bemutatott üzleti entitásoknak (dokumentumoknak és címtárelemeknek), például: teljesítési aktus, pénztárbizonylat-megrendelés, partner, tétel stb.

Az 1C alkalmazás és egy harmadik féltől származó alkalmazás közötti adatcsere történhet:

  • egy dedikált fájlkönyvtáron keresztül
  • FTP könyvtáron keresztül
  • az 1C alkalmazás oldalán telepített webszolgáltatáson keresztül. Az adatfájl paraméterként kerül átadásra a webes metódusoknak
  • e-mailben

Webszolgáltatáson keresztüli csere esetén egy harmadik féltől származó alkalmazás adatcsere-munkamenetet kezdeményez az 1C alkalmazás megfelelő webes metódusainak meghívásával. Egyéb esetekben a cseremenet kezdeményezője az 1C alkalmazás lesz (az adatfájl megfelelő könyvtárba helyezésével vagy az adatfájl elküldésével a beállított e-mail címre).
Az 1C oldalon is beállíthatja, hogy a szinkronizálás milyen gyakran történjen (a könyvtáron és e-mailen keresztüli fájlcsere opcióihoz):

  • ütemterv szerint (meghatározott gyakorisággal)
  • manuálisan; a felhasználónak manuálisan kell elindítania a szinkronizálást, valahányszor szüksége van rá

Üzenetek nyugtázása

Az 1C alkalmazások nyilvántartást vezetnek az elküldött és fogadott szinkronizálási üzenetekről, és ugyanezt várják el a harmadik féltől származó alkalmazásoktól is. Ez lehetővé teszi a fent, az „Adatcsere mechanizmusa” részben leírt üzenetszámozási mechanizmus használatát.

A szinkronizálás során az 1C-alkalmazások csak az üzleti entitásoknál az utolsó szinkronizálás óta bekövetkezett változásokról továbbítanak információkat (az átvitt információ mennyiségének minimalizálása érdekében). Az első szinkronizálás során az 1C alkalmazás az összes üzleti entitást (például a cikk referenciakönyvének elemeit) EnterpriseData formátumban feltölti egy XML-fájlba (mivel ezek mind „újak” a külső alkalmazás számára). A harmadik féltől származó alkalmazásnak fel kell dolgoznia az 1C-től kapott XML-fájlból származó információkat, és a következő szinkronizálási munkamenet során az 1C-nek küldött fájlban egy speciális XML-szakaszban el kell helyeznie azt az információt, hogy az 1C-től egy bizonyos számú üzenet sikeres volt. kapott. A nyugtaüzenet egy jelzés az 1C alkalmazásnak, hogy az összes üzleti entitást sikeresen feldolgozta a külső alkalmazás, és többé nincs szükség azokról információkat továbbítani. A nyugta mellett egy harmadik féltől származó alkalmazásból származó XML-fájl is tartalmazhat adatokat az alkalmazás általi szinkronizáláshoz (például áruk és szolgáltatások értékesítésére vonatkozó dokumentumokat).

Az átvételi üzenet vétele után az 1C alkalmazás az előző üzenetben továbbított összes változást sikeresen szinkronizáltként jelöli meg. Csak az üzleti entitások nem szinkronizált módosításai (új entitások létrehozása, meglévők módosítása és törlése) kerülnek elküldésre a külső alkalmazásnak a következő szinkronizálási munkamenet során.

Az 1C-vel való integráció módszerei
Amikor adatokat visz át egy külső alkalmazásból az 1C alkalmazásba, a kép megfordul. A külső alkalmazásnak ennek megfelelően ki kell töltenie az XML fájl nyugta szakaszát, és a maga részéről EnterpriseData formátumban kell elhelyeznie a szinkronizáláshoz szükséges üzleti adatokat.

Az 1C-vel való integráció módszerei

Egyszerűsített adatcsere kézfogás nélkül

Egyszerű integráció esetén, amikor elegendő csak információt továbbítani egy harmadik féltől származó alkalmazásból az 1C alkalmazásba, és az adatok fordított átvitele az 1C alkalmazásból egy harmadik féltől származó alkalmazásba nem szükséges (például egy online integráció áruház, amely az értékesítési információkat továbbítja az 1C: Számviteli szolgáltatásnak), van egy egyszerűsített lehetőség a webszolgáltatáson keresztül történő munkavégzésre (nyugtázás nélkül), amely nem igényel beállításokat az 1C alkalmazás oldalán.

Egyedi integrációs megoldások

Létezik egy szabványos „1C: Data Conversion” megoldás, amely platformmechanizmusokat használ a szabványos 1C konfigurációk közötti adatok konvertálására és cseréjére, de használható harmadik féltől származó alkalmazásokkal való integrációra is.

Integráció banki megoldásokkal

Standard "Ügyfélbank", amelyet az 1C szakemberei fejlesztettek ki több mint 10 éve, valójában ipari szabvány lett Oroszországban. A következő lépés ebben az irányban a technológia DirectBank, amely lehetővé teszi a fizetési dokumentumok bankba küldését és a banki kivonatok fogadását közvetlenül az 1C:Enterprise rendszer programjaiból az 1C program egy gombjának megnyomásával; nem igényel további programok telepítését és futtatását az ügyfélszámítógépen.

Vannak is fizetési projektek adatcseréjének szabványa.

Más

Érdemes megemlíteni csereprotokoll az 1C:Enterprise rendszer és a webhely között, kereskedelmi információcsere szabvány CommerceML (a Microsoft, az Intel, a Price.ru és más cégekkel közösen fejlesztették ki), az elfogadási ügyletek adatcseréjének szabványa.

Forrás: will.com

Hozzászólás