Metode integracije s 1C

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

  • Lakoća mijenjanja/prilagođavanja logike aplikacije promjenjivim poslovnim zadacima.
  • Jednostavna integracija s drugim aplikacijama.

Kako se prvi zadatak rješava u 1C ukratko je opisano u odjeljku "Prilagodba i podrška". ovaj članak; Ovoj zanimljivoj temi vratit ćemo se u nekom sljedećem članku. Danas ćemo govoriti o drugom zadatku, integraciji.

Integracijski zadaci

Zadaci integracije mogu biti različiti. Za rješavanje nekih problema dovoljna je jednostavna interaktivna razmjena podataka - na primjer, prenijeti popis zaposlenika u banku za izdavanje plastičnih kartica za plaću. Za složenije zadatke može biti potrebna potpuno automatizirana razmjena podataka, po mogućnosti u vezi s poslovnom logikom vanjskog sustava. Postoje zadaci koji su specijalizirani po prirodi, kao što je integracija s vanjskom opremom (na primjer, maloprodajna oprema, mobilni skeneri, itd.) ili s naslijeđenim ili visoko specijaliziranim sustavima (na primjer, sa sustavima za prepoznavanje RFID oznaka). Izuzetno je važno odabrati najprikladniji mehanizam integracije za svaki zadatak.

Mogućnosti integracije s 1C

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

  1. Temeljeno na implementaciji integracijski mehanizmikoju pruža platforma, vlastiti specijalizirani API na strani aplikacije 1C (na primjer, skup web ili HTTP usluga koje će pozivati ​​aplikacije trećih strana za razmjenu podataka s aplikacijom 1C). Prednost ovog pristupa je otpornost API-ja na promjene u implementaciji na strani 1C aplikacije. Osobitost pristupa je u tome što je potrebno promijeniti izvorni kod standardnog 1C rješenja, što potencijalno može zahtijevati napor pri spajanju izvornih kodova prilikom prelaska na novu verziju konfiguracije. U ovom slučaju, nova progresivna funkcionalnost može doći u pomoć - proširenja konfiguracije. Proširenja su, u biti, mehanizam dodataka koji vam omogućuje stvaranje dodataka aplikacijskim rješenjima bez mijenjanja samih aplikacijskih rješenja. Premještanje integracijskog API-ja u proširenje konfiguracije omogućit će vam da izbjegnete poteškoće pri spajanju konfiguracija prilikom prelaska na novu verziju standardnog rješenja.
  2. Korištenje mehanizama integracije platforme koji omogućuju vanjski pristup objektnom modelu aplikacije i ne zahtijevaju modifikaciju aplikacije ili stvaranje proširenja. Prednost ovog pristupa je što nema potrebe mijenjati aplikaciju 1C. Minus - ako je aplikacija 1C 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 1C:Enterprise platforme (više o tome u nastavku).
  3. Korištenje gotovih aplikacijskih protokola implementiranih u standardna 1C rješenja. Mnoga standardna rješenja tvrtke 1C i partnera implementiraju vlastite aplikacijske protokole, usmjerene na specifične zadatke, na temelju integracijskih mehanizama 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 trebamo napraviti samo određene postavke.

Mehanizmi integracije u platformu 1C:Enterprise

Uvoz/izvoz datoteka

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

Metode integracije s 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 aplikacijskih objekata u XML-u izravno, kroz metode globalnog konteksta WriteXML/ReadXML, i korištenjem XDTO (XML Data Transfer Objects) pomoćnog objekta.

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

Ova funkcija će vratiti XML reprezentaciju 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.Закрыть();	
КонецПроцедуры

Jednostavnom izmjenom koda izvozimo direktorij u JSON. Proizvodi će biti zapisani u polje; 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 preostaje samo prenijeti podatke krajnjem potrošaču. Platforma 1C:Enterprise podržava glavne internetske 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 usluge

Metode integracije s 1C

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

REST sučelje i OData protokol

Počevši od verzije 8.3.5, platforma 1C:Enterprise može automatski stvoriti REST sučelje za cjelokupno aplikacijsko rješenje. Bilo koji konfiguracijski objekt (imenik, dokument, registar informacija, itd.) može biti dostupan za primanje i modificiranje podataka putem REST sučelja. Platforma koristi protokol kao pristupni protokol OData verzija 3.0. Objavljivanje OData usluga vrši se iz izbornika Konfiguratora “Administracija -> Objavljivanje na web poslužitelju”, potvrdni okvir “Objavi standardno OData sučelje” mora biti označen. Podržani su Atom/XML i JSON formati. Nakon što se aplikacijsko rješenje objavi na web poslužitelju, sustavi trećih strana mogu mu pristupiti putem REST sučelja koristeći HTTP zahtjeve. Za rad s aplikacijom 1C putem OData protokola nije potrebno programiranje na strani 1C.

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

<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 dobivamo sadržaj Nomenklaturnog kataloga 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 кВт, режимы работы: тепло/холод"
}, …

Vanjski izvori podataka

Metode integracije s 1C
U nekim slučajevima, razmjena podataka putem vanjski izvori podataka može biti najbolje rješenje. Vanjski izvori podataka su konfiguracijski objekt 1C aplikacije koji vam omogućuje interakciju s bilo kojom bazom podataka kompatibilnom s ODBC, kako za čitanje tako i za pisanje. Vanjski izvori podataka dostupni su i za Windows i za Linux.

Mehanizam razmjene podataka

Mehanizam razmjene podataka namijenjen je kako za stvaranje geografski distribuiranih sustava temeljenih na 1C:Enterprise, tako i za organiziranje razmjene podataka s drugim informacijskim sustavima koji se ne temelje na 1C:Enterprise.

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

Jedan od ključnih pojmova u mehanizmu razmjene podataka je plan razmjene. Plan razmjene je posebna vrsta objekta 1C aplikacijske platforme, koja određuje, posebice, sastav podataka koji će sudjelovati u razmjeni (koji direktoriji, dokumenti, registri itd.). Plan razmjene sadrži i podatke o sudionicima razmjene (tzv. čvorovi razmjene).
Druga komponenta mehanizma razmjene podataka je mehanizam registracije promjena. Ovaj mehanizam automatski nadzire sustav radi promjena u podacima koji se moraju prenijeti krajnjim korisnicima kao dio plana razmjene. Koristeći ovaj mehanizam, platforma prati promjene koje su se dogodile od zadnje sinkronizacije i omogućuje vam da minimizirate količinu podataka prenesenih tijekom sljedeće sesije sinkronizacije.

Razmjena podataka odvija se pomoću XML poruka određene strukture. Poruka sadrži podatke koji su se promijenili od zadnje sinkronizacije s čvorom i neke servisne informacije. Struktura poruke podržava numeriranje poruka i omogućuje primanje potvrde od čvora primatelja da su poruke primljene. Takva potvrda je sadržana u svakoj poruci koja dolazi od prijemnog čvora, u obliku broja posljednje primljene poruke. Poruke s numeriranjem omogućuju platformi da razumije koji su podaci već uspješno poslani primateljskom čvoru i da izbjegne ponovni prijenos odašiljanjem samo podataka koji su promijenjeni otkako je pošiljateljski čvor primio posljednju poruku s potvrdom o primitku podataka koje je primateljski čvor primio. Ova radna shema osigurava zajamčenu isporuku čak i uz nepouzdane prijenosne kanale i gubitak poruka.

Vanjske komponente

U nizu slučajeva, pri rješavanju problema integracije, potrebno je suočiti se sa specifičnim zahtjevima, na primjer, protokolima interakcije, formatima podataka, koji nisu predviđeni u platformi 1C:Enterprise. Za takav niz zadataka platforma pruža tehnologija vanjskih komponenti, koji vam omogućuje stvaranje dinamičkih plug-in modula koji proširuju funkcionalnost 1C:Enterprise.

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

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

Zastarjeli mehanizmi integracije

Platforma pruža mehanizme integracije koji se ne preporučuju za korištenje u novim rješenjima; oni su ostavljeni zbog kompatibilnosti sa starijim verzijama, kao iu slučaju da druga strana ne može raditi s modernijim protokolima. Jedan od njih je rad s datotekama DBF formata (podržano u ugrađenom jeziku pomoću XBase objekta).

Još jedan naslijeđeni mehanizam integracije je korištenje COM tehnologije (dostupno samo na Windows platformi). Platforma 1C:Enterprise nudi dvije metode integracije za Windows koristeći COM tehnologiju: poslužitelj automatizacije i vanjsku vezu. Vrlo su slični, ali jedna od temeljnih razlika je u tome što se u slučaju poslužitelja za automatizaciju pokreće potpuna klijentska aplikacija 1C:Enterprise 8, a u slučaju vanjske veze, relativno mali COM unutar procesa. server je pokrenut. To jest, ako radite preko poslužitelja za automatizaciju, možete koristiti funkcionalnost klijentske aplikacije i izvoditi radnje slične interaktivnim radnjama korisnika. Kada koristite vanjsku vezu, možete koristiti samo funkcije poslovne logike, a one se mogu izvršiti i na strani klijenta veze, gdje se kreira COM poslužitelj u procesu, i možete pozvati poslovnu logiku na poslužitelju 1C:Enterprise strana.

COM tehnologija se također može koristiti za pristup vanjskim sustavima iz aplikacijskog koda na platformi 1C:Enterprise. U ovom slučaju aplikacija 1C djeluje kao COM klijent. Ali treba podsjetiti da će ti mehanizmi raditi samo ako 1C poslužitelj radi u Windows okruženju.

Integracijski mehanizmi implementirani u standardnim konfiguracijama

Format podataka poduzeća

Metode integracije s 1C
U brojnim konfiguracijama 1C (popis u nastavku), na temelju gore opisanog mehanizma za razmjenu podataka platforme, implementiran je gotov mehanizam za razmjenu podataka s vanjskim aplikacijama, koji ne zahtijeva promjenu izvornog koda konfiguracija (priprema za podatke razmjena se vrši u postavkama aplikativnih rješenja):

  • "1C:ERP Enterprise Management 2.0"
  • "Složena automatizacija 2"
  • "Računovodstvo poduzeća", izdanje 3.0
  • "Računovodstvo za CORP poduzeće", izdanje 3.0
  • "Maloprodaja", izdanje 2.0
  • "Osnove trgovačkog menadžmenta", izdanje 11
  • Menadžment trgovine, 11. izdanje
  • “Plaće i upravljanje osobljem CORP”, izdanje 3

Format koji se koristi za razmjenu podataka je EnterpriseData, temeljen na XML-u. Format je poslovno orijentiran - strukture podataka opisane u njemu odgovaraju poslovnim subjektima (dokumentima i imeničkim elementima) predstavljenim u 1C programima, na primjer: akt o završetku, nalog za blagajnu, druga ugovorna strana, stavka itd.

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

  • putem namjenskog direktorija datoteka
  • putem FTP imenika
  • putem web usluge postavljene na strani aplikacije 1C. Podatkovna datoteka prosljeđuje se kao parametar web metodama
  • putem e-pošte

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 aplikacija 1C (smještanjem podatkovne datoteke u odgovarajući direktorij ili slanjem podatkovne datoteke na konfiguriranu adresu e-pošte).
Također na strani 1C možete konfigurirati učestalost sinkronizacije (za opcije s razmjenom datoteka putem imenika i e-pošte):

  • prema rasporedu (s određenom učestalošću)
  • ručno; korisnik će morati ručno pokrenuti sinkronizaciju svaki put kada mu zatreba

Potvrđivanje poruka

1C aplikacije vode evidenciju o poslanim i primljenim porukama za sinkronizaciju i očekuju isto od aplikacija trećih strana. To vam omogućuje korištenje mehanizma numeriranja poruka opisanog gore u odjeljku "Mehanizam razmjene podataka".

Tijekom sinkronizacije, 1C aplikacije prenose samo informacije o promjenama koje su se dogodile s poslovnim subjektima od zadnje sinkronizacije (kako bi se smanjila količina prenesenih informacija). Tijekom prve sinkronizacije, aplikacija 1C će učitati sve poslovne subjekte (na primjer, stavke referentne knjige artikala) u formatu EnterpriseData u XML datoteku (jer su svi "novi" za vanjsku aplikaciju). Aplikacija treće strane mora obraditi informacije iz XML datoteke primljene od 1C i tijekom sljedeće sesije sinkronizacije staviti u datoteku poslanu 1C, u poseban XML odjeljak, informaciju da je poruka od 1C s određenim brojem uspješno primljena. primljeno. Poruka o primitku signal je aplikaciji 1C da su svi poslovni subjekti uspješno obrađeni od strane vanjske aplikacije i više nema potrebe za prijenosom informacija o njima. Uz račun, XML datoteka iz aplikacije treće strane može sadržavati i podatke za sinkronizaciju od strane aplikacije (primjerice, dokumenti za prodaju roba i usluga).

Nakon primitka poruke o primitku, aplikacija 1C označava sve promjene prenesene u prethodnoj poruci kao uspješno sinkronizirane. Samo nesinkronizirane promjene poslovnih subjekata (kreiranje novih entiteta, izmjena i brisanje postojećih) bit će poslane vanjskoj aplikaciji tijekom sljedeće sesije sinkronizacije.

Metode integracije s 1C
Prilikom prijenosa podataka iz vanjske aplikacije u aplikaciju 1C, slika je obrnuta. Vanjska aplikacija mora u skladu s tim ispuniti odjeljak primitka XML datoteke i sa svoje strane staviti poslovne podatke za sinkronizaciju u format EnterpriseData.

Metode integracije s 1C

Pojednostavljena razmjena podataka bez rukovanja

Za slučajeve jednostavne integracije, kada je dovoljno samo prenijeti podatke iz aplikacije treće strane u aplikaciju 1C, a obrnuti prijenos podataka iz aplikacije 1C u aplikaciju treće strane nije potreban (na primjer, integracija online trgovina koja prenosi podatke o prodaji u 1C: Računovodstvo), postoji pojednostavljena opcija rada putem web usluge (bez potvrde), koja ne zahtijeva postavke na strani aplikacije 1C.

Prilagođena integracijska rješenja

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

Integracija s bankarskim rješenjima

Norma "Klijent banka", razvijen od strane stručnjaka 1C prije više od 10 godina, zapravo je postao industrijski standard u Rusiji. Sljedeći korak u tom smjeru je tehnologija DirectBank, koji vam omogućuje slanje dokumenata za plaćanje banci i primanje izvoda iz banke izravno iz programa sustava 1C:Enterprise pritiskom na jedan gumb u programu 1C; ne zahtijeva instaliranje i pokretanje dodatnih programa na klijentskom računalu.

Tu su i standard za razmjenu podataka u projektima plaća.

Drugi

Vrijedno spomena protokol razmjene između sustava 1C:Enterprise i web stranice, standard razmjene komercijalnih informacija CommerceML (razvijeno zajedno s Microsoftom, Intelom, Price.ru i drugim tvrtkama), standard za razmjenu podataka za transakcije preuzimanja.

Izvor: www.habr.com

Dodajte komentar