Metode integracije z 1C

Katere so najpomembnejše zahteve za poslovne aplikacije? Nekatere izmed najpomembnejših nalog so naslednje:

  • Enostavnost spreminjanja/prilagajanja logike aplikacije spreminjajočim se poslovnim nalogam.
  • Enostavna integracija z drugimi aplikacijami.

Kako je prva naloga rešena v 1C, je bilo na kratko opisano v razdelku »Prilagajanje in podpora«. ta članek; K tej zanimivi temi se bomo vrnili v prihodnjem članku. Danes bomo govorili o drugi nalogi, integraciji.

Integracijske naloge

Integracijske naloge so lahko različne. Za rešitev nekaterih težav zadostuje preprosta interaktivna izmenjava podatkov - na primer prenos seznama zaposlenih v banko za izdajo plačnih plastičnih kartic. Za bolj zapletene naloge bo morda potrebna popolnoma avtomatizirana izmenjava podatkov, po možnosti s sklicevanjem na poslovno logiko zunanjega sistema. Obstajajo naloge, ki so po naravi specializirane, kot je integracija z zunanjo opremo (na primer maloprodajna oprema, mobilni skenerji itd.) ali s podedovanimi ali visoko specializiranimi sistemi (na primer s sistemi za prepoznavanje oznak RFID). Izjemno pomembno je, da za vsako nalogo izberemo najprimernejši integracijski mehanizem.

Možnosti integracije z 1C

Obstajajo različni pristopi k izvajanju integracije z aplikacijami 1C, katerega izbrati je odvisno od zahtev naloge.

  1. Temelji na implementaciji integracijski mehanizmiki ga ponuja platforma, lasten specializiran API na strani aplikacije 1C (na primer nabor spletnih ali HTTP storitev, ki bodo poklicale aplikacije tretjih oseb za izmenjavo podatkov z aplikacijo 1C). Prednost tega pristopa je odpornost API-ja na spremembe v implementaciji na strani aplikacije 1C. Posebnost pristopa je, da je treba spremeniti izvorno kodo standardne rešitve 1C, kar lahko potencialno zahteva napor pri združevanju izvornih kod pri prehodu na novo različico konfiguracije. V tem primeru lahko na pomoč priskoči nova progresivna funkcionalnost - razširitve konfiguracije. Razširitve so v bistvu mehanizem vtičnikov, ki vam omogoča, da ustvarite dodatke k rešitvam aplikacije, ne da bi spremenili same rešitve aplikacije. Če integracijski API premaknete v razširitev konfiguracije, se boste izognili težavam pri združevanju konfiguracij pri prehodu na novo različico standardne rešitve.
  2. Uporaba mehanizmov integracije platforme, ki zagotavljajo zunanji dostop do objektnega modela aplikacije in ne zahtevajo spreminjanja aplikacije ali ustvarjanja razširitve. Prednost tega pristopa je, da ni treba spreminjati aplikacije 1C. Minus - če je bila aplikacija 1C izboljšana, bodo morda potrebne izboljšave v integrirani aplikaciji. Primer tega pristopa je uporaba protokola OData za integracijo, implementiranega na strani platforme 1C:Enterprise (več o tem spodaj).
  3. Uporaba že pripravljenih aplikacijskih protokolov, implementiranih v standardne rešitve 1C. Številne standardne rešitve 1C in partnerjev izvajajo lastne aplikacijske protokole, osredotočene na specifične naloge, ki temeljijo na integracijskih mehanizmih, ki jih ponuja platforma. Pri uporabi teh mehanizmov ni treba pisati kode na strani aplikacije 1C, ker Uporabljamo standardne zmožnosti aplikativne rešitve. Na strani aplikacije 1C moramo narediti samo določene nastavitve.

Integracijski mehanizmi v platformo 1C:Enterprise

Uvoz/izvoz datotek

Recimo, da se soočamo z nalogo dvosmerne izmenjave podatkov med aplikacijo 1C in poljubno aplikacijo. Na primer, moramo sinhronizirati seznam izdelkov (Nomenklaturni imenik) med aplikacijo 1C in poljubno aplikacijo.

Metode integracije z 1C
Za rešitev tega problema lahko napišete razširitev, ki prenese imenik Nomenklature v datoteko določenega formata (besedilo, XML, JSON, ...) in lahko prebere ta format.

Platforma implementira mehanizem za serializacijo aplikacijskih objektov v XML tako neposredno, prek metod globalnega konteksta WriteXML/ReadXML kot z uporabo pomožnega objekta XDTO (XML Data Transfer Objects).

Vsak objekt v sistemu 1C:Enterprise je mogoče serializirati v predstavitev XML in obratno.

Ta funkcija bo vrnila XML predstavitev predmeta:

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

Takole bo videti izvoz imenika nomenklature v XML z uporabo XDTO:

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

S preprosto spremembo kode izvozimo imenik v JSON. Produkti bodo zapisani v matriko; Za raznolikost je tukaj angleška različica 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

Nato preostane le še prenos podatkov do končnega potrošnika. Platforma 1C:Enterprise podpira glavne internetne protokole HTTP, FTP, POP3, SMTP, IMAP, vključno z njihovimi varnimi različicami. Za prenos podatkov lahko uporabite tudi HTTP in/ali spletne storitve.

HTTP in spletne storitve

Metode integracije z 1C

Aplikacije 1C lahko implementirajo lastne HTTP in spletne storitve ter kličejo HTTP in spletne storitve, ki jih izvajajo aplikacije tretjih oseb.

Vmesnik REST in protokol OData

Od različice 8.3.5 lahko platforma 1C:Enterprise samodejno ustvarite vmesnik REST za celotno aplikativno rešitev. Vsak konfiguracijski objekt (imenik, dokument, informacijski register itd.) je lahko na voljo za sprejemanje in spreminjanje podatkov prek vmesnika REST. Platforma uporablja protokol kot protokol za dostop OData različica 3.0. Objava storitev OData se izvede iz menija konfiguratorja “Administracija -> Objava na spletnem strežniku”, obkljukano mora biti polje “Objavi standardni vmesnik OData”. Podprti sta formata Atom/XML in JSON. Ko je aplikativna rešitev objavljena na spletnem strežniku, lahko sistemi tretjih oseb dostopajo do nje prek vmesnika REST z uporabo HTTP zahtev. Za delo z aplikacijo 1C prek protokola OData programiranje na strani 1C ni potrebno.

Torej, URL všeč http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура nam bo vrnil vsebino nomenklaturnega kataloga v formatu XML - zbirko vnosnih elementov (naslov sporočila je zaradi kratkosti izpuščen):

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

Z dodajanjem niza “?$format=application/json” v URL dobimo vsebino Nomenklaturnega kataloga v formatu JSON (URL obrazca 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 кВт, режимы работы: тепло/холод"
}, …

Zunanji viri podatkov

Metode integracije z 1C
V nekaterih primerih je izmenjava podatkov prek zunanji viri podatkov morda najboljša rešitev. Zunanji viri podatkov so objekt konfiguracije aplikacije 1C, ki vam omogoča interakcijo s katero koli bazo podatkov, združljivo z ODBC, tako za branje kot pisanje. Zunanji viri podatkov so na voljo v sistemih Windows in Linux.

Mehanizem izmenjave podatkov

Mehanizem izmenjave podatkov je namenjen tako za ustvarjanje geografsko porazdeljenih sistemov, ki temeljijo na 1C:Enterprise, kot za organizacijo izmenjave podatkov z drugimi informacijskimi sistemi, ki ne temeljijo na 1C:Enterprise.

Ta mehanizem se aktivno uporablja v implementacijah 1C, obseg nalog, ki se rešujejo z njegovo pomočjo, pa je zelo širok. To vključuje izmenjavo podatkov med aplikacijami 1C, nameščenimi v podružnicah organizacije, in izmenjavo med aplikacijo 1C in spletnim mestom spletne trgovine ter izmenjavo podatkov med strežniško aplikacijo 1C in mobilnim odjemalcem (ustvarjeno z uporabo mobilne platforme 1C:Enterprise) in še veliko več. več.

Eden ključnih pojmov v mehanizmu izmenjave podatkov je načrt izmenjave. Načrt izmenjave je posebna vrsta objekta aplikacijske platforme 1C, ki določa predvsem sestavo podatkov, ki bodo sodelovali pri izmenjavi (kateri imeniki, dokumenti, registri itd.). Načrt izmenjave vsebuje tudi podatke o udeležencih izmenjave (t.i. menjalnih vozliščih).
Druga komponenta mehanizma za izmenjavo podatkov je mehanizem za registracijo sprememb. Ta mehanizem samodejno spremlja sistem za spremembe podatkov, ki jih je treba prenesti končnim uporabnikom kot del načrta izmenjave. S tem mehanizmom platforma sledi spremembam, do katerih je prišlo od zadnje sinhronizacije, in vam omogoča, da zmanjšate količino prenesenih podatkov med naslednjo sinhronizacijsko sejo.

Izmenjava podatkov poteka z uporabo XML sporočil določene strukture. Sporočilo vsebuje podatke, ki so se spremenili od zadnje sinhronizacije z vozliščem, in nekatere storitvene informacije. Struktura sporočila podpira oštevilčevanje sporočil in vam omogoča, da prejmete potrditev od vozlišča prejemnika, da so sporočila prejeta. Takšno potrdilo vsebuje vsako sporočilo, ki prihaja iz sprejemnega vozlišča, v obliki številke zadnjega prejetega sporočila. Oštevilčenje sporočil omogoča platformi, da razume, kateri podatki so že bili uspešno poslani sprejemnemu vozlišču, in se izogne ​​ponovnemu prenosu s prenosom samo podatkov, ki so se spremenili, odkar je pošiljateljsko vozlišče prejelo zadnje sporočilo s potrdilom o prejemu podatkov, ki jih je prejelo sprejemno vozlišče. Ta shema delovanja zagotavlja zajamčeno dostavo tudi pri nezanesljivih prenosnih kanalih in izgubi sporočila.

Zunanje komponente

V številnih primerih se je treba pri reševanju integracijskih težav soočiti s posebnimi zahtevami, na primer s protokoli interakcije, formati podatkov, ki jih platforma 1C: Enterprise ne predvideva. Za tak obseg nalog ponuja platforma tehnologija zunanjih komponent, ki vam omogoča ustvarjanje dinamičnih vtičnikov, ki širijo funkcionalnost 1C:Enterprise.

Tipičen primer naloge s podobnimi zahtevami je integracija aplikativne rešitve 1C z maloprodajno opremo, od tehtnic do registrskih blagajn in čitalcev črtne kode. Zunanje komponente se lahko povežejo tako na strani strežnika 1C:Enterprise kot na strani odjemalca (vključno s spletnim odjemalcem, vendar ne omejeno nanj). naslednja različica mobilne platforme 1C:Podjetje). Tehnologija zunanjih komponent zagotavlja dokaj preprost in razumljiv programski (C++) vmesnik za interakcijo komponent s platformo 1C:Enterprise, ki jo mora implementirati razvijalec.

Možnosti, ki se odpirajo pri uporabi zunanjih komponent, so zelo široke. Izvedete lahko interakcijo z uporabo posebnega protokola za izmenjavo podatkov z zunanjimi napravami in sistemi, vgradite posebne algoritme za obdelavo podatkov in formate podatkov itd.

Zastareli integracijski mehanizmi

Platforma ponuja integracijske mehanizme, ki niso priporočljivi za uporabo v novih rešitvah; ostanejo notri zaradi združljivosti za nazaj in tudi v primeru, da druga stran ne more delati s sodobnejšimi protokoli. Eden od njih je delo z datotekami formata DBF (podprto v vgrajenem jeziku z uporabo objekta XBase).

Drug podedovan integracijski mehanizem je uporaba tehnologije COM (na voljo samo na platformi Windows). Platforma 1C:Enterprise omogoča dva načina integracije za Windows s tehnologijo COM: avtomatski strežnik in zunanjo povezavo. Zelo sta si podobna, vendar je ena temeljnih razlik v tem, da se v primeru strežnika Automation zažene polnopravna odjemalska aplikacija 1C:Enterprise 8, v primeru zunanje povezave pa relativno majhen COM v procesu. strežnik je zagnan. To pomeni, da če delate prek strežnika za avtomatizacijo, lahko uporabljate funkcionalnost odjemalske aplikacije in izvajate dejanja, podobna interaktivnim dejanjem uporabnika. Pri uporabi zunanje povezave lahko uporabljate samo funkcije poslovne logike, izvajajo pa se lahko tako na odjemalski strani povezave, kjer se ustvari znotrajprocesni COM strežnik, kot tudi kličete poslovno logiko na strežniku 1C:Enterprise. strani.

COM tehnologijo lahko uporabimo tudi za dostop do zunanjih sistemov iz aplikacijske kode na platformi 1C:Enterprise. V tem primeru aplikacija 1C deluje kot odjemalec COM. Vendar je treba opozoriti, da bodo ti mehanizmi delovali le, če strežnik 1C deluje v okolju Windows.

Integracijski mehanizmi, implementirani v standardne konfiguracije

Podatkovni format podjetja

Metode integracije z 1C
V številnih konfiguracijah 1C (seznam spodaj) je na podlagi zgoraj opisanega mehanizma izmenjave podatkov platforme implementiran že pripravljen mehanizem za izmenjavo podatkov z zunanjimi aplikacijami, ki ne zahteva spreminjanja izvorne kode konfiguracij (priprava podatkov menjava poteka v nastavitvah aplikativne rešitve):

  • "1C:ERP Enterprise Management 2.0"
  • "Kompleksna avtomatizacija 2"
  • "Računovodstvo podjetja", izdaja 3.0
  • "Računovodstvo za podjetje CORP", izdaja 3.0
  • "Maloprodaja", izdaja 2.0
  • "Basic Trade Management", izdaja 11
  • Trade Management, izdaja 11
  • “Plače in upravljanje osebja CORP”, izdaja 3

Format, uporabljen za izmenjavo podatkov, je EnterpriseData, ki temelji na XML. Format je poslovno usmerjen - v njem opisane podatkovne strukture ustrezajo poslovnim subjektom (dokumenti in imeniški elementi), predstavljenim v programih 1C, na primer: akt o zaključku, blagajniški nalog, nasprotna stranka, postavka itd.

Do izmenjave podatkov med aplikacijo 1C in aplikacijo tretje osebe lahko pride:

  • prek namenskega imenika datotek
  • prek imenika FTP
  • prek spletne storitve, nameščene na strani aplikacije 1C. Podatkovna datoteka se kot parameter posreduje spletnim metodam
  • preko elektronske pošte

V primeru izmenjave prek spletne storitve bo aplikacija tretje osebe sprožila sejo izmenjave podatkov s klicem ustreznih spletnih metod aplikacije 1C. V drugih primerih bo pobudnik seje izmenjave aplikacija 1C (s postavitvijo podatkovne datoteke v ustrezen imenik ali pošiljanjem podatkovne datoteke na konfigurirani elektronski naslov).
Tudi na strani 1C lahko konfigurirate, kako pogosto bo prišlo do sinhronizacije (za možnosti z izmenjavo datotek prek imenika in e-pošte):

  • po urniku (z določeno frekvenco)
  • ročno; uporabnik bo moral ročno zagnati sinhronizacijo vsakič, ko jo bo potreboval

Potrjevanje sporočil

Aplikacije 1C vodijo evidenco poslanih in prejetih sinhronizacijskih sporočil in pričakujejo enako od aplikacij tretjih oseb. To vam omogoča uporabo mehanizma oštevilčevanja sporočil, ki je opisan zgoraj v razdelku »Mehanizem za izmenjavo podatkov«.

Med sinhronizacijo aplikacije 1C prenašajo samo informacije o spremembah, ki so se zgodile s poslovnimi subjekti od zadnje sinhronizacije (za zmanjšanje količine prenesenih informacij). Pri prvi sinhronizaciji bo aplikacija 1C naložila vse poslovne subjekte (na primer postavke referenčne knjige postavk) v formatu EnterpriseData v datoteko XML (saj so vsi "novi" za zunanjo aplikacijo). Aplikacija tretje osebe mora obdelati podatke iz datoteke XML, prejete od 1C, in med naslednjo sejo sinhronizacije v datoteko, poslano v 1C, v poseben razdelek XML vnesti informacijo, da je bilo sporočilo 1C z določeno številko uspešno. prejeli. Sporočilo o prejemu je signal aplikaciji 1C, da je zunanja aplikacija uspešno obdelala vse poslovne subjekte in o njih ni več treba prenašati informacij. Datoteka XML iz aplikacije tretje osebe lahko poleg računa vsebuje tudi podatke za sinhronizacijo s strani aplikacije (na primer dokumente o prodaji blaga in storitev).

Po prejemu sporočila o prejemu aplikacija 1C vse spremembe, poslane v prejšnjem sporočilu, označi kot uspešno sinhronizirane. Samo nesinhronizirane spremembe poslovnih subjektov (ustvarjanje novih subjektov, spreminjanje in brisanje obstoječih) bodo v naslednji sinhronizacijski seji poslane zunanji aplikaciji.

Metode integracije z 1C
Pri prenosu podatkov iz zunanje aplikacije v aplikacijo 1C je slika obrnjena. Zunanja aplikacija mora ustrezno izpolniti razdelek za prejem XML datoteke in s svoje strani postaviti poslovne podatke za sinhronizacijo v format EnterpriseData.

Metode integracije z 1C

Poenostavljena izmenjava podatkov brez rokovanja

Za primere preproste integracije, ko je dovolj samo prenos informacij iz aplikacije tretje osebe v aplikacijo 1C in povratni prenos podatkov iz aplikacije 1C v aplikacijo tretje osebe ni potreben (na primer integracija spletnega trgovina, ki podatke o prodaji prenaša v 1C: Računovodstvo), obstaja poenostavljena možnost dela prek spletne storitve (brez potrditve), ki ne zahteva nastavitev na strani aplikacije 1C.

Integracijske rešitve po meri

Obstaja standardna rešitev "1C: Pretvorba podatkov", ki uporablja mehanizme platforme za pretvorbo in izmenjavo podatkov med standardnimi konfiguracijami 1C, lahko pa se uporablja tudi za integracijo z aplikacijami tretjih oseb.

Integracija z bančnimi rešitvami

Standardni "Stranka banka", ki so ga razvili strokovnjaki 1C pred več kot 10 leti, je dejansko postal industrijski standard v Rusiji. Naslednji korak v tej smeri je tehnologija DirectBank, ki vam omogoča pošiljanje plačilnih dokumentov v banko in prejemanje izpiskov iz banke neposredno iz programov sistema 1C:Enterprise s pritiskom na en gumb v programu 1C; ne zahteva nameščanja in izvajanja dodatnih programov na odjemalskem računalniku.

Obstajajo tudi standard za izmenjavo podatkov v plačnih projektih.

Drugo

Vredno omembe protokol izmenjave med sistemom 1C:Enterprise in spletnim mestom, standard izmenjave komercialnih informacij CommerceML (razvito skupaj z Microsoftom, Intelom, Price.ru in drugimi podjetji), standard za izmenjavo podatkov za pridobivanje transakcij.

Vir: www.habr.com

Dodaj komentar