Koji su najvažniji zahtevi koje treba ispunjavati poslovne aplikacije? Neki od najvažnijih su sledeći zadaci:
- Lakoća promene/adaptacije logike rada aplikacije prema promenljivim poslovnim zahtevima.
- Lakoća integracije s drugim aplikacijama.
Način na koji se u 1C rešava prvi zadatak kratak je opisan u odeljku „Kustomizacija i podrška“ ; još ćemo se vratiti na ovu zanimljivu temu u nekom od narednih članaka. Danas ćemo govoriti o drugom zadatku, o integraciji.
Integracijski zadaci
Integracijski zadaci mogu biti različiti. Za rešenje nekih je dovoljno jednostavno interaktivno razmenjivanje podataka – na primer, za slanje bankama spiska zaposlenih za izdavanje platnih kartica. Za složenije zadatke može biti potrebna potpuno automatizovana razmena podataka, možda uz korišćenje poslovne logike spoljnog sistema. Postoje zadaci specijalizovane prirode, kao što su integracija sa spoljnim uređajima (na primer, trgovačkom opremom, mobilnim skenerima itd.) ili sa nasleđenim ili usko specijalizovanim sistemima (kao što su sistemi prepoznavanja RFID oznaka). Izuzetno je važno za svaki zadatak odabrati najprikladniji mehanizam integracije.
Mogućnosti integracije s 1C
Postoje različiti pristupi za realizaciju integracije s 1C aplikacijama, a koji od njih odabrati zavisi od zahteva zadatka.
- Realizacija temelji , koje pruža platforma, njegovom vlastitom specijalizovanom API-ju na strani aplikacije 1C (na primer, setu Web ili HTTP servisa koji će pozivati spoljne aplikacije radi razmene podataka s aplikacijom 1C). Prednost ovog pristupa je otpornost API-ja na promenu implementacije na strani aplikacije 1C. Osobina pristupa je da je potrebno menjati izvorni kod standardnog rešenja 1C, što može potencijalno zahtevati napore prilikom spajanja izvornog koda prilikom prelaska na novu verziju konfiguracije. U ovom slučaju može pomoći nova progresivna funkcionalnost — Razširitve so v bistvu mehanizem dodatkov, ki omogoča ustvarjanje dodatkov aplikacijskih rešitev, ne da bi spremenili same aplikacijske rešitve. Izločitev integracijskega API-ja v razširitev konfiguracije bo omogočila izogibanje težavam pri združevanju konfiguracij ob prehodu na novo različico standardne rešitve.
- Uporaba mehanizmov integracije platforme, ki omogočajo zunanji dostop do objektn Modela aplikacije in ne zahtevajo sprememb aplikacije ali ustvarjanja razširitve. Prednost tega pristopa je, da aplikacije 1C ni treba spreminjati. Slabost - če je bila aplikacija 1C prilagojena, so morda potrebne spremembe v integrirani aplikaciji. Primer takšnega pristopa je uporaba protokola OData za integracijo, ki ga implementira platforma 1C:Preduzeće (več o tem spodaj).
- Uporaba pripravljenih aplikacijskih protokolov, ki so implementirani v standardnih rešitvah 1C. Številne standardne rešitve 1C in partnerjev implementirajo na podlagi mehanizmov integracije, ki jih zagotavlja platforma, svoje lastne aplikacijske protokole, usmerjene na konkretne naloge. Pri uporabi teh mehanizmov ni potrebno pisati kode na strani aplikacije 1C, saj izkoriščamo običajne možnosti aplikacijske rešitve. Na strani aplikacije 1C moramo le izvesti določene nastavitve.
Mehanizmi integracije v platformi 1C:Preduzeće
Uvoz/izvoz datotek
Predpostavimo, da imamo nalogo dvosmernega izmenjevanja podatkov med aplikacijo 1C in poljubno aplikacijo. Na primer, potrebujemo sinhronizacijo seznama izdelkov (evidenca Nomenklatura) med aplikacijo 1C in poljubno aplikacijo.

Za rešitev te naloge lahko napišemo razširitev, ki izvozi evidenco Nomenkature v datoteko določenega formata (besedilni, XML, JSON itd.) in zna brati ta format.
V platformi je implementiran mehanizem serializacije aplikacijskih objektov v XML, tako neposredno preko metod globalnega konteksta ZapišiXML/PreberiXML, kot tudi s pomočjo pomožnega objekta XDTO (XML Data Transfer Objects).
Katerikoli objekt v sistemu 1C:Preduzeće lahko serializiramo v XML predstavitev in obratno.
Ta funkcija bo vrnila predstavitev objekta v obliki XML:
Функция Объект_В_XML(Объект)
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
ЗаписатьXML(ЗаписьXML, Объект);
Возврат ЗаписьXML.Закрыть();
КонецФункции
так будет выглядеть экспорт справочника Номенклатура в XML при помощи XDTO:
&НаСервере
Процедура ЭкспортXMLНаСервере()
НовыйСериализаторXDTO = СериализаторXDTO;
НоваяЗаписьXML = Новый ЗаписьXML();
НоваяЗаписьXML.ОткрытьФайл("C:DataНоменклатура.xml", "UTF-8");
НоваяЗаписьXML.ЗаписатьОбъявлениеXML();
НоваяЗаписьXML.ЗаписатьНачалоЭлемента("СправочникНоменклатура");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектНоменклатура = Выборка.ПолучитьОбъект();
НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, ОбъектНоменклатура, НазначениеТипаXML.Явное);
КонецЦикла;
НоваяЗаписьXML.ЗаписатьКонецЭлемента();
НоваяЗаписьXML.Закрыть();
КонецПроцедуры
Путем несложной переделки кода экспортируем справочник в JSON. Товары будут записаны в массив; для разнообразия приведем англоязычный вариант синтаксиса:
&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
Далее останется только передать данные конечному потребителю. Платформа 1С:Предприятие поддерживает основные интернет-протоколы HTTP, FTP, POP3, SMTP, IMAP, включая их безопасные версии. Также для передачи данных можно использовать HTTP и/или Web-сервисы.
HTTP- и веб-сервисы

Приложения 1С могут реализовывать свои HTTP- и веб-сервисы, а также вызывать HTTP- и веб-сервисы, реализованные сторонними приложениями.
REST интерфейс и протокол OData
Начиная с версии 8.3.5 платформа 1С:Предприятие может автоматически для всего прикладного решения. Любой объект конфигурации (справочник, документ, регистр сведений и т.д.) можно сделать доступным для получения и модификации данных через REST интерфейс. В качестве протокола доступа платформа использует протокол version 3.0. Publishing OData services is done from the Configurator menu 'Administration -> Publish on Web Server', the 'Publish standard OData interface' checkbox must be checked. Formats atom/XML and JSON are supported. Once the application solution is published on the web server, external systems can access it via the REST interface using HTTP requests. No programming on the 1C side is required to work with the 1C application via the OData protocol.
Thus, a URL like http:////odata/standard.odata/Catalog_Nomenclature will return the contents of the Catalog Nomenclature in XML format — a collection of entry elements (message header omitted for brevity):
http://server/Config/odata/standard.odata/Catalog_Nomenclature(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')
2016-06-06T16:42:17
35d1f6e4-289b-11e6-8ba4-e03f49b16074
AAAAAgAAAAA=
false
000000001
Air Conditioner Mitsubishi
Power 2.5 kW, modes: heating/cooling
http://server/Config/odata/standard.odata/Catalog_Nomenclature(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')
...
By adding the string '?$format=application/json' to the URL, we will receive the contents of the Catalog Nomenclature in JSON format (URL like http:////odata/standard.odata/Catalog_Nomenclature?$format=application/json ):
{
"odata.metadata": "http://server/Config/odata/standard.odata/$metadata#Catalog_Nomenclature",
"value": [{
"Ref_Key": "35d1f6e4-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAgAAAAA=",
"DeletionMark": false,
"Code": "000000001",
"Description": "Air Conditioner Mitsubishi",
"Описание": "Power 2.5 kW, modes: heating/cooling"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Air Conditioner Daikin",
"Описание": "Power 3 kW, modes: heating/cooling"
}, …
External data sources

In some cases, data exchange through lahko se izkaže za optimalno rešitev. Zunanji podatkovni viri so aplikacijski objekt konfiguracije 1C, ki omogoča interakcijo z vso bazami podatkov, ki so združljive z ODBC, tako za branje kot za pisanje. Zunanji podatkovni viri so na voljo tako v Windows kot tudi na Linuxu.
Mehanizem izmenjave podatkov
je namenjen tako za ustvarjanje teritorialno razpršenih sistemov na osnovi 1C:Podjetja kot tudi za organizacijo izmenjave podatkov z drugimi informacijskimi sistemi, ki niso osnovani na 1C:Podjetju.
Ta mehanizem se aktivno uporablja pri uvajanju 1C, spekter nalog, ki jih rešuje, pa je zelo širok. To vključuje izmenjavo podatkov med aplikacijami 1C, nameščenimi v podružnicah organizacije, izmenjavo med aplikacijo 1C in spletno trgovino, ter izmenjavo podatkov med strežniško aplikacijo 1C in mobilno stranko (ustvarjeno z mobilno platformo 1C:Podjetja), in še mnogo več.
Ena od ključnih pojmov v mehanizmu izmenjave podatkov je načrt izmenjave. Načrt izmenjave je poseben tip objekta aplikacijske platforme 1C, ki določa, med drugim, sestav podatkov, ki bodo sodelovali v izmenjavi (katere natančne evidence, dokumenti, registri itd.). Načrt izmenjave vsebuje tudi informacije o udeležencih izmenjave (t.i. vozliščih izmenjave).
Druga sestavina mehanizma izmenjave podatkov je mehanizem registracije sprememb. Ta mehanizem samodejno spremlja spremembe podatkov v sistemu, ki jih je treba prenesti končnim uporabnikom v okviru načrta izmenjave. S pomočjo tega mehanizma platforma sledi spremembam, ki so se zgodile od zadnje sinhronizacije, in omogoča minimizacijo obsega podatkov, ki se prenašajo v okviru naslednjega seje sinhronizacije.
Izmenjava podatkov poteka preko XML sporočil določene strukture. Sporočilo vsebuje podatke, ki so se spremenili od zadnje sinhronizacije z vozliščem, in nekaj službenih informacij. Struktura sporočil podpira numeracijo sporočil in omogoča prejemanje potrdil od prejemnikovega vozlišča o prejemu sporočil. Takšno potrdilo je vključeno v vsakem sporočilu, ki prihaja od prejemnikovega vozlišča, v obliki številke zadnjega sprejetega sporočila. Numeracija sporočil omogoča platformi, da razume, kateri podatki so bili že uspešno preneseni na prejemnikovo vozlišče, in se izogne ponovnemu prenosu, tako da prenaša le podatke, spremenjene od časa, ko je pošiljatelj prejel zadnje sporočilo s potrdilom o prejetih podatkih. Pri tej shemi dela je zagotovljena zanesljiva dostava tudi preko nezanesljivih komunikacijskih kanalov in izgube sporočil.
Zunanje komponente
V nekaterih primerih, pri reševanju nalog integracije, naletimo na specifične zahteve, kot so protokoli interakcije, podatkovni formati, s katerimi platforma 1C:Enterprise ne predvideva dela. Za takšne naloge je v platformi predvidena , ki omogoča ustvarjanje dinamično priključenih modulov, ki širijo funkcionalnost 1C:Enterprise.
Tipičen primer naloge s takšnimi zahtevami je lahko integracija aplikativne rešitve 1C s trgovsko opremo, od tehtnic do blagajn in čitalnikov črtnih kod. Zunanje komponente se lahko priključijo tako na strani strežnika 1C:Enterprise kot tudi na odjemalski strani (vključno z web odjemalcem ter 1C:Enterprise). Tehnologija zunanjih komponent predvideva dovolj preprost in razumljiv programski (C++) vmesnik za interakcijo komponente s platformo 1C:Enterprise, ki ga mora uresničiti razvijalec.
Možnosti, ki jih odpira uporaba zunanjih komponent, so zelo široke. Uresničiti je mogoče interakcijo po specifičnem protokolu izmenjave podatkov z zunanjimi napravami in sistemi, vgraditi specifične algoritemi za obdelavo podatkov in podatkovne formate itd.
Zastarele mehanizme integracije
Na platformi su dostupni mehanizmi integracije koji se ne preporučuju za korišćenje u novim rešenjima; ostavljeni su iz razloga unazadne kompatibilnosti, kao i za slučaj da druga strana ne može raditi sa savremenijim protokolima. Jedan od njih je rad sa datotekama u DBF formatu (podržava se u ugrađenom jeziku pomoću objekta XBase).
Drugi zastareli mehanizam integracije je korišćenje COM tehnologije (dostupno samo na Windows platformi). 1C:Preduzeće platforma pruža dva načina integracije za Windows, koristeći COM tehnologiju: Automation-server i Spoljna povezanost. Oni su vrlo slični, ali jedna od suštinskih razlika je u tome što se u slučaju Automation-servera pokreće puno klijentsko aplikaciju 1C:Preduzeće 8, dok se u slučaju spoljne povezanosti pokreće relativno mali unutrašnji COM-server. Dakle, u slučaju rada kroz Automation server može se iskoristiti funkcionalnost klijentske aplikacije, izvoditi radnje slične interaktivnim radnjama korisnika. Kada se koristi spoljna povezanost, mogu se koristiti samo funkcije poslovne logike, a mogu se izvoditi kako na klijentskoj strani povezanosti, gde se kreira unutrašnji COM-server, tako i pozivati poslovnu logiku na strani servera 1C:Preduzeća.
COM tehnologiju takođe je moguće koristiti za pristup spoljnim sistemima iz koda aplikacije na platformi 1C:Preduzeće. U ovom slučaju, 1C aplikacija deluje kao COM-klijent. Međutim, treba napomenuti da će ti mehanizmi raditi samo ako 1C server funkcioniše u Windows okruženju.
Mehanizmi integracije implementirani u standardnim konfiguracijama
Format EnterpriseData

U nizu 1C konfiguracija (spisak u nastavku) na osnovu gore opisanog platformskog mehanizma razmene podataka realizovan je gotov mehanizam razmene podataka sa spoljnim aplikacijama, koji ne zahteva izmene izvornog koda konfiguracija (priprema za razmenu podataka se vrši u postavkama aplikativnih rešenja):
- «1C:ERP Upravljanje preduzećem 2.0»
- «Kompleksna automatizacija 2»
- «Računovodstvo preduzeća», izdanje 3.0
- «Računovodstvo preduzeća KORP», izdanje 3.0
- «Maloprodaja», izdanje 2.0
- „Upravljanje trgovinom osnovna“, izdanje 11
- „Upravljanje trgovinom“, izdanje 11
- „Plate i upravljanje osobljem KORP“, izdanje 3
Za razmenu podataka koristi se format , zasnovan na XML-u. Format je poslovno orijentisan – opisi u njemu odgovaraju poslovnim entitetima (dokumenata i elemenata kataloga) koje predstavljaju programi 1C, na primer: akt o izvršenim radovima, prihodna kasa, poslovni partner, asortiman itd.
Razmena podataka između aplikacije 1C i treće aplikacije može se odvijati:
- kroz poseban direktorijum fajlova
- kroz FTP direktorijum
- kroz veb-servis postavljen na strani aplikacije 1C. Fajl sa podacima se prenosi kao parametar veb-metoda
- kroz elektronsku poštu
U slučaju razmene kroz veb-servis, treća aplikacija će inicirati sesiju razmene podataka pozivanjem odgovarajućih veb-metoda aplikacije 1C. U ostalim slučajevima, inicijator sesije razmene biće aplikacija 1C (postavljanjem fajla sa podacima u odgovarajući direktorijum ili slanjem fajla sa podacima na podešenu adresu elektronske pošte).
Takođe se na strani 1C podešava, kojom učestalošću će se vršiti sinhronizacija (za opcije sa razmenom fajlova kroz direktorijum i elektronsku poštu):
- po rasporedu (sa zadatom učestalošću)
- ručno; korisnik će morati ručno da pokrene sinhronizaciju svaki put kada mu bude potrebna
Potvrda poruka
Aplikacije 1C vode knjigu o poslati i primljenim porukama sinhronizacije i očekuju isto od trećih aplikacija. To omogućava korišćenje mehanizma numerisanja poruka, opisanog ranije u odeljku „Mehanizam razmene podacima“.
Aplikacije 1C pri sinhronizaciji prenose samo informacije o promenama koje su se dogodile sa poslovnim entitetima od poslednje sinhronizacije (kako bi se minimizirala količina prenetih informacija). Prilikom prve sinhronizacije aplikacija 1C će izvesti sve poslovne entitete (na primer, stavke iz imenika robe) u formatu EnterpriseData u XML datoteku (pošto su svi oni "novi" za eksternu aplikaciju). Eksterni program treba da obradi informacije iz pristigle XML datoteke od 1C i prilikom sledeće seanse sinhronizacije da stavi u datoteku koja se šalje 1C, u posebnu sekciju XML, informaciju da je poruka od 1C pod određenim brojem uspešno primljena. Potvrda poruke služi aplikaciji 1C kao signal da su svi poslovni entiteti uspešno obrađeni od strane eksternog programa i da o njima više nije potrebno slati informacije. Pored potvrde, XML datoteka od eksternog programa takođe može sadržati podatke za sinhronizaciju sa strane aplikacije (na primer, dokumente o realizaciji proizvoda i usluga).
Nakon primanja potvrde poruke, aplikacija 1C obeležava sve promene prenesene u prethodnoj poruci kao uspešno sinhronizovane. Samo nesinhronizovane promene u poslovnim entitetima (kreiranje novih entiteta, izmena i brisanje postojećih) biće poslate eksternoj aplikaciji prilikom sledeće seanse sinhronizacije.

Kada se podaci prenose od eksternog programa u aplikaciju 1C, slika se menja na suprotno. Eksterni program treba da popuni odeljak potvrde u XML datoteci na odgovarajući način i da stavi poslovne podatke za sinhronizaciju sa svoje strane u formatu EnterpriseData.

Pojednostavljena razmena podataka bez potvrde
Za slučajeve jednostavne integracije, kada je dovoljno samo prenositi informacije od eksternog programa u aplikaciju 1C i obrnuti prenos podataka iz aplikacije 1C u eksterni program nije potreban (na primer, integracija online prodavnice koja prenosi informacije o prodaji u "1C: Računovodstvo"), postoji pojednostavljeni način rada preko veb-servisa (bez potvrde), koji ne zahteva podešavanja na strani aplikacije 1C.
Specijalizovana integracijska rešenja
Obstaja tipična rešitev „1C: Pretvorba podatkov“, ki uporablja mehanizme platforme za pretvorbo in izmenjavo podatkov med tipičnimi konfiguracijami 1C, lahko pa se uporablja tudi za integracijo s tujimi aplikacijami.
Integracija z bančnimi rešitvami
Standard , razvit od strokovnjakov 1C pred več kot 10 leti, je dejansko postal industrijski standard v Rusiji. Naslednji korak v tej smeri je tehnologija , ki omogoča pošiljanje plačilnih dokumentov v banko in prejemanje izpiskov iz banke neposredno iz programov sistema „1C: Podjetje“ s pritiskom na gumb v programu „1C“; pri tem ni potrebna namestitev in zagon dodatnih programov na odjemalčevem računalniku.
Obstaja tudi .
Ostalo
Zaslužijo omembo , standard izmenjave trgovinskih informacij (razvit v sodelovanju z Microsoftom, Intlom, Price.ru in drugimi podjetji), .
Izvor: habr.com
