Metode integracije sa 1C

Koji su najvažniji zahtjevi za poslovne aplikacije? Neki od najvažnijih zadataka su sljedeći:

  • Jednostavnost promjene/prilagođavanja logike aplikacije promjenjivim poslovnim zadacima.
  • Jednostavna integracija sa drugim aplikacijama.

Kako se prvi zadatak rješava u 1C ukratko je opisano u odjeljku "Prilagođavanje i podrška". ovog člana; Vratit ćemo se na ovu zanimljivu temu u narednom članku. Danas ćemo govoriti o drugom zadatku, integraciji.

Integracijski zadaci

Integracijski zadaci mogu biti različiti. Za rješavanje nekih problema dovoljna je jednostavna interaktivna razmjena podataka - na primjer, prenošenje liste zaposlenih u banku za izdavanje platnih plastičnih kartica. Za složenije zadatke može biti neophodna potpuno automatizovana razmena podataka, eventualno u odnosu na poslovnu logiku eksternog sistema. Postoje zadaci koji su po prirodi specijalizovani, kao što je integracija sa eksternom opremom (na primer, maloprodajna oprema, mobilni skeneri, itd.) ili sa starim ili visoko specijalizovanim sistemima (na primer, sa sistemima za prepoznavanje RFID oznaka). Izuzetno je važno odabrati najprikladniji mehanizam integracije za svaki zadatak.

Opcije integracije sa 1C

Postoje različiti pristupi implementaciji integracije sa 1C aplikacijama; koji odabrati ovisi o zahtjevima zadatka.

  1. Na osnovu implementacije integracionih mehanizamakoje pruža platforma, vlastiti specijalizovani API na strani 1C aplikacije (na primjer, skup web ili HTTP usluga koji će pozvati aplikacije trećih strana za razmjenu podataka sa 1C aplikacijom). Prednost ovog pristupa je otpornost API-ja na promjene u implementaciji na strani 1C aplikacije. Posebnost pristupa je u tome što je potrebno promijeniti izvorni kod standardnog 1C rješenja, što potencijalno može zahtijevati napor prilikom spajanja izvornih kodova prilikom prelaska na novu verziju konfiguracije. U ovom slučaju, nova progresivna funkcionalnost može priskočiti u pomoć - konfiguracijske ekstenzije. Ekstenzije su, u suštini, mehanizam dodataka koji vam omogućava da kreirate dodatke aplikativnim rešenjima bez promene samih aplikativnih rešenja. Premještanje API-ja za integraciju u proširenje konfiguracije omogućit će vam da izbjegnete poteškoće prilikom spajanja konfiguracija prilikom prelaska na novu verziju standardnog rješenja.
  2. Korištenje mehanizama integracije platforme koji pružaju vanjski pristup objektnom modelu aplikacije i ne zahtijevaju modifikaciju aplikacije ili kreiranje ekstenzije. Prednost ovog pristupa je što nema potrebe za promjenom 1C aplikacije. Minus - ako je 1C aplikacija poboljšana, možda će biti potrebna poboljšanja u integriranoj aplikaciji. Primjer ovakvog pristupa je korištenje OData protokola za integraciju, implementiranog na strani platforme 1C:Enterprise (više o tome u nastavku).
  3. Upotreba gotovih aplikativnih protokola implementiranih u standardna 1C rješenja. Mnoga standardna rješenja 1C i partnera implementiraju vlastite aplikacijske protokole, fokusirane na specifične zadatke, na osnovu mehanizama integracije koje pruža platforma. Kada koristite ove mehanizme, nema potrebe pisati kod na strani aplikacije 1C, jer Koristimo standardne mogućnosti aplikativnog rješenja. Na strani aplikacije 1C, potrebno je samo izvršiti određena podešavanja.

Mehanizmi integracije u platformu 1C:Enterprise

Uvoz/izvoz fajlova

Pretpostavimo da smo suočeni sa zadatkom dvosmjerne razmjene podataka između 1C aplikacije i proizvoljne aplikacije. Na primjer, trebamo sinkronizirati listu proizvoda (katalog nomenklature) između 1C aplikacije i proizvoljne aplikacije.

Metode integracije sa 1C
Da biste riješili ovaj problem, možete napisati ekstenziju koja preuzima imenik Nomenklature u datoteku određenog formata (tekst, XML, JSON, ...) i može čitati ovaj format.

Platforma implementira mehanizam za serijalizaciju aplikativnih objekata u XML-u i direktno, kroz WriteXML/ReadXML metode globalnog konteksta, i koristeći pomoćni objekat XDTO (XML Data Transfer Objects).

Bilo koji objekt u sistemu 1C:Enterprise može se serijalizirati u XML prikaz i obrnuto.

Ova funkcija će vratiti XML prikaz objekta:

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

Ovako će izgledati izvoz direktorija Nomenklature u XML koristeći XDTO:

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

Jednostavnim izmjenama koda izvozimo direktorij u JSON. Proizvodi će biti upisani u niz; Radi raznolikosti, evo engleske verzije sintakse:

&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

Zatim ostaje samo da se podaci prenesu do krajnjeg potrošača. Platforma 1C:Enterprise podržava glavne internet protokole HTTP, FTP, POP3, SMTP, IMAP, uključujući njihove sigurne verzije. Također možete koristiti HTTP i/ili Web usluge za prijenos podataka.

HTTP i web servisi

Metode integracije sa 1C

1C aplikacije mogu implementirati vlastite HTTP i web usluge, kao i pozivati ​​HTTP i web servise implementirane od strane aplikacija trećih strana.

REST interfejs i OData protokol

Počevši od verzije 8.3.5, platforma 1C:Enterprise može automatski kreirajte REST interfejs za cjelokupno aplikativno rješenje. Bilo koji objekat konfiguracije (direktorij, dokument, registar informacija, itd.) može se učiniti dostupnim za primanje i modifikovanje podataka preko REST interfejsa. Platforma koristi protokol kao pristupni protokol OData verzija 3.0. Objavljivanje OData usluga se vrši iz menija Konfiguratora “Administracija -> Objavljivanje na web serveru”, mora biti označeno polje za potvrdu “Objavi standardni OData interfejs”. Atom/XML i JSON formati su podržani. Nakon što se aplikativno rješenje objavi na web serveru, sistemi trećih strana mogu mu pristupiti preko REST sučelja koristeći HTTP zahtjeve. Za rad sa 1C aplikacijom preko OData protokola nije potrebno programiranje na strani 1C.

Dakle, URL kao http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура će nam vratiti sadržaj kataloga nomenklature u XML formatu - kolekciju elemenata unosa (naslov poruke je izostavljen radi kratkoće):

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

Dodavanjem stringa “?$format=application/json” u URL, dobijamo sadržaj kataloga nomenklature u JSON formatu (URL obrasca 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 кВт, режимы работы: тепло/холод"
}, …

Eksterni izvori podataka

Metode integracije sa 1C
U nekim slučajevima, razmjena podataka putem eksterni izvori podataka može biti najbolje rješenje. Eksterni izvori podataka su objekt konfiguracije 1C aplikacije koji vam omogućava interakciju sa bilo kojom ODBC kompatibilnom bazom podataka, kako za čitanje tako i za pisanje. Eksterni izvori podataka dostupni su i na Windows i na Linuxu.

Mehanizam razmjene podataka

Mehanizam razmjene podataka je namijenjen kako za kreiranje geografski distribuiranih sistema baziranih na 1C:Enterprise, tako i za organizovanje razmjene podataka sa drugim informacionim sistemima koji nisu zasnovani na 1C:Enterprise.

Ovaj mehanizam se aktivno koristi u implementaciji 1C, a raspon zadataka koji se rješavaju uz njegovu pomoć je vrlo širok. To uključuje razmjenu podataka između 1C aplikacija instaliranih u poslovnicama organizacije, i razmjenu između 1C aplikacije i web stranice online trgovine, te razmjenu podataka između 1C serverske aplikacije i mobilnog klijenta (kreiranog pomoću mobilne platforme 1C:Enterprise), i mnogo toga više.

Jedan od ključnih koncepata u mehanizmu razmjene podataka je plan razmjene. Plan razmjene je posebna vrsta objekta 1C aplikacijske platforme, koja određuje, posebno, sastav podataka koji će učestvovati u razmjeni (koji imenici, dokumenti, registri itd.). Plan razmene takođe sadrži informacije o učesnicima razmene (tzv. razmenski čvorovi).
Druga komponenta mehanizma razmjene podataka je mehanizam registracije promjena. Ovaj mehanizam automatski prati sistem za promjene u podacima koji se moraju prenijeti krajnjim korisnicima kao dio plana razmjene. Koristeći ovaj mehanizam, platforma prati promjene koje su se dogodile od posljednje sinhronizacije i omogućava vam da minimizirate količinu prenesenih podataka tokom sljedeće sesije sinhronizacije.

Razmjena podataka se odvija korištenjem XML poruka određene strukture. Poruka sadrži podatke koji su se promijenili od posljednje sinhronizacije sa čvorom i neke servisne informacije. Struktura poruke podržava numerisanje poruka i omogućava vam da primite potvrdu od čvora primaoca da su poruke primljene. Takva potvrda je sadržana u svakoj poruci koja dolazi od prijemnog čvora, u obliku broja posljednje primljene poruke. Numerisanje poruka omogućava platformi da razume koji su podaci već uspešno preneti primajućem čvoru i da izbegne ponovni prenos prenosom samo podataka koji su se promenili od kada je čvor koji šalje zadnju poruku sa potvrdom o prijemu podataka primljenih od strane prijemnog čvora. Ova operativna shema osigurava zajamčenu isporuku čak i sa nepouzdanim kanalima prijenosa i gubitkom poruke.

Eksterne komponente

U velikom broju slučajeva, prilikom rješavanja integracijskih problema, potrebno je pozabaviti se specifičnim zahtjevima, na primjer, protokolima interakcije, formatima podataka, koji nisu predviđeni u platformi 1C:Enterprise. Za takav niz zadataka, platforma omogućava tehnologija eksternih komponenti, koji vam omogućava da kreirate dinamički plug-in module koji proširuju funkcionalnost 1C:Enterprise.

Tipičan primjer zadatka sa sličnim zahtjevima bila bi integracija 1C aplikativnog rješenja s maloprodajnom opremom, u rasponu od vaga do kasa i skenera bar kodova. Vanjske komponente se mogu povezati i na strani servera 1C:Enterprise i na strani klijenta (uključujući, ali ne ograničavajući se na, web klijenta, kao i sledeća verzija mobilne platforme 1C:Enterprise). Tehnologija vanjskih komponenti pruža prilično jednostavno i razumljivo softversko (C++) sučelje za interakciju komponenti sa platformom 1C:Enterprise, koje mora implementirati programer.

Mogućnosti koje se otvaraju korištenjem vanjskih komponenti su vrlo široke. Možete implementirati interakciju pomoću specifičnog protokola za razmjenu podataka sa vanjskim uređajima i sistemima, ugraditi specifične algoritme za obradu podataka i formata podataka, itd.

Zastarjeli mehanizmi integracije

Platforma pruža mehanizme integracije koji se ne preporučuju za upotrebu u novim rješenjima; ostavljeni su iz razloga kompatibilnosti unatrag, kao i u slučaju da druga strana ne može raditi sa modernijim protokolima. Jedan od njih je rad sa datotekama u DBF formatu (podržan u ugrađenom jeziku pomoću XBase objekta).

Još jedan zastarjeli mehanizam integracije je korištenje COM tehnologije (dostupno samo na Windows platformi). Platforma 1C:Enterprise pruža dvije metode integracije za Windows koristeći COM tehnologiju: server za automatizaciju i eksternu vezu. Vrlo su slični, ali jedna od osnovnih razlika je u tome što se u slučaju Automation servera pokreće punopravna 1C:Enterprise 8 klijentska aplikacija, a u slučaju eksterne veze relativno mali COM u procesu. server je pokrenut. To jest, ako radite preko Automation servera, možete koristiti funkcionalnost klijentske aplikacije i izvoditi radnje slične interaktivnim radnjama korisnika. Kada koristite eksternu vezu, možete koristiti samo funkcije poslovne logike, a one se mogu izvršavati i na strani klijenta veze, gdje se kreira COM server u procesu, i možete pozvati poslovnu logiku na serveru 1C:Enterprise strana.

COM tehnologija se također može koristiti za pristup vanjskim sistemima iz koda aplikacije na platformi 1C:Enterprise. U ovom slučaju, 1C aplikacija djeluje kao COM klijent. Ali treba podsjetiti da će ovi mehanizmi funkcionirati samo ako 1C server radi u Windows okruženju.

Integracijski mehanizmi implementirani u standardnim konfiguracijama

Format podataka preduzeća

Metode integracije sa 1C
U brojnim 1C konfiguracijama (lista ispod), na osnovu mehanizma razmjene podataka platforme opisanog iznad, implementiran je gotov mehanizam za razmjenu podataka sa vanjskim aplikacijama, koji ne zahtijeva promjenu izvornog koda konfiguracija (priprema podataka razmjena se vrši u postavkama aplikativnih rješenja):

  • "1C:ERP Enterprise Management 2.0"
  • "Složena automatizacija 2"
  • "Računovodstvo preduzeća", izdanje 3.0
  • "Računovodstvo CORP preduzeća", izdanje 3.0
  • "Maloprodaja", izdanje 2.0
  • "Osnovno upravljanje trgovinom", izdanje 11
  • Upravljanje trgovinom, izdanje 11
  • “Plate i upravljanje kadrovima CORP”, izdanje 3

Format koji se koristi za razmjenu podataka je EnterpriseData, zasnovan na XML-u. Format je poslovno orijentiran - strukture podataka koje su u njemu opisane odgovaraju poslovnim subjektima (dokumentima i elementima direktorija) predstavljenim u 1C programima, na primjer: akt završetka, nalog za prijem gotovine, druga strana, stavka itd.

Razmjena podataka između 1C aplikacije i aplikacije treće strane može se dogoditi:

  • preko namjenskog direktorija datoteka
  • preko FTP direktorija
  • putem web servisa koji je raspoređen na strani aplikacije 1C. Datoteka podataka se prosljeđuje kao parametar web metodama
  • putem emaila

U slučaju razmjene putem web usluge, aplikacija treće strane će pokrenuti sesiju razmjene podataka pozivanjem odgovarajućih web metoda 1C aplikacije. U drugim slučajevima, inicijator sesije razmjene bit će 1C aplikacija (postavljanjem datoteke podataka u odgovarajući direktorij ili slanjem datoteke na konfiguriranu adresu e-pošte).
Također na strani 1C možete konfigurirati koliko će se često sinhronizacija odvijati (za opcije s razmjenom datoteka putem direktorija i e-pošte):

  • prema rasporedu (sa određenom frekvencijom)
  • ručno; korisnik će morati ručno pokrenuti sinhronizaciju svaki put kada mu zatreba

Potvrda poruka

1C aplikacije vode evidenciju o poslanim i primljenim porukama za sinhronizaciju i očekuju isto od aplikacija trećih strana. Ovo vam omogućava da koristite mehanizam numerisanja poruka opisan gore u odeljku „Mehanizam razmene podataka“.

Tokom sinhronizacije, 1C aplikacije prenose samo informacije o promjenama koje su se dogodile kod poslovnih subjekata od posljednje sinhronizacije (kako bi se količina prenesenih informacija svela na minimum). Prilikom prve sinhronizacije, 1C aplikacija će sve poslovne subjekte (na primjer, stavke referentne knjige artikala) u EnterpriseData formatu učitati u XML datoteku (pošto su svi "novi" za eksternu aplikaciju). Aplikacija treće strane mora obraditi informacije iz XML datoteke primljene od 1C i, tokom sljedeće sesije sinhronizacije, smjestiti u datoteku poslanu 1C, u poseban XML odjeljak, informaciju da je poruka od 1C s određenim brojem uspješno prošla. primljeno. Poruka o prijemu je signal 1C aplikaciji da su svi poslovni subjekti uspješno obrađeni od strane eksterne aplikacije i više nema potrebe za slanjem informacija o njima. Osim računa, XML datoteka iz aplikacije treće strane može sadržavati i podatke za sinhronizaciju od strane aplikacije (na primjer, dokumente za prodaju roba i usluga).

Nakon prijema poruke o prijemu, aplikacija 1C označava sve promjene prenesene u prethodnoj poruci kao uspješno sinkronizirane. Samo nesinhronizirane promjene poslovnih subjekata (kreiranje novih entiteta, promjena i brisanje postojećih) bit će poslane vanjskoj aplikaciji tokom sljedeće sesije sinhronizacije.

Metode integracije sa 1C
Prilikom prijenosa podataka iz vanjske aplikacije u aplikaciju 1C, slika je obrnuta. Eksterna aplikacija mora u skladu s tim popuniti odjeljak o prijemu XML datoteke i postaviti poslovne podatke za sinhronizaciju sa svoje strane u format EnterpriseData.

Metode integracije sa 1C

Pojednostavljena razmjena podataka bez rukovanja

Za slučajeve jednostavne integracije, kada je dovoljno samo prenijeti informacije iz aplikacije treće strane u 1C aplikaciju i obrnuti prijenos podataka iz 1C aplikacije u aplikaciju treće strane nije potreban (na primjer, integracija online trgovine koja prenosi informacije o prodaji u 1C: Računovodstvo), postoji pojednostavljena opcija rada putem web usluge (bez potvrde), za koju nisu potrebna podešavanja na strani 1C aplikacije.

Prilagođena integracijska rješenja

Postoji standardno rješenje „1C: Konverzija podataka“, koje koristi mehanizme platforme za pretvaranje i razmjenu podataka između standardnih 1C konfiguracija, ali se može koristiti i za integraciju sa aplikacijama trećih strana.

Integracija sa bankarskim rešenjima

Standard "Klijent banka", koji su razvili stručnjaci za 1C prije više od 10 godina, zapravo je postao industrijski standard u Rusiji. Sljedeći korak u ovom pravcu je tehnologija DirectBank, koji vam omogućava slanje platnih dokumenata u banku i primanje izvoda iz banke direktno iz programa sistema 1C:Enterprise pritiskom na jedno dugme u programu 1C; ne zahteva instaliranje i pokretanje dodatnih programa na klijentskom računaru.

Tu su i standard za razmjenu podataka u platnim projektima.

Ostali

Vrijedi pomena protokol za razmjenu između sistema 1C:Enterprise i web stranice, standard za razmjenu komercijalnih informacija CommerceML (razvijeno zajedno sa Microsoftom, Intelom, Price.ru i drugim kompanijama), standard za razmjenu podataka za pribavljanje transakcija.

izvor: www.habr.com

Dodajte komentar