Vilka Àr de viktigaste kraven för affÀrsapplikationer? NÄgra av de frÀmsta Àr följande uppgifter:
- LÀtthet att Àndra/anpassa applikationens arbetslogik till förÀndrade affÀrsbehov.
- LĂ€tthet att integrera med andra applikationer.
SÄ som den första uppgiften löses i 1C, beskrevs kort i avsnittet "Anpassning och stöd" ; vi kommer Äterkomma till detta intressanta Àmne i en av kommande artiklar. Idag handlar det om den andra uppgiften, om integration.
Integrationsuppgifter
Integrationsuppgifter kan vara olika. För vissa kan en enkel interaktiv datautbyte vara tillrĂ€cklig â till exempel för att överföra en lista över anstĂ€llda till banken för utfĂ€rdande av lönekort. För mer komplexa uppgifter kan en helt automatiserad datautbyte vara nödvĂ€ndig, eventuellt med anrop till affĂ€rslogiken i ett externt system. Det finns uppgifter av specialiserad karaktĂ€r, sĂ„som integration med extern utrustning (till exempel försĂ€ljningsutrustning, mobila skannrar osv.) eller med arvtagna eller specialiserade system (till exempel med RFID-handlingar). Det Ă€r extremt viktigt för varje uppgift att vĂ€lja den mest lĂ€mpliga integrationsmekanismen.
Integrationsmöjligheter med 1C
Det finns olika tillvÀgagÄngssÀtt för att implementera integration med 1C-applikationer, vilket man ska vÀlja beror pÄ uppgiftens krav.
- Implementering baserad pĂ„ , som tillhandahĂ„lls av plattformen, ett eget specialiserat API pĂ„ sidan av 1C-applikationen (till exempel en uppsĂ€ttning web- eller HTTP-tjĂ€nster, som kommer att anropa externa applikationer för att utbyta data med 1C-applikationen). Fördelarna med denna metod Ă€r API:ts motstĂ„ndskraft mot förĂ€ndringar i implementeringen pĂ„ sidan av 1C-applikationen. KĂ€nnetecknet för metoden Ă€r att man behöver Ă€ndra kĂ€llkoden för standardlösningen i 1C, vilket potentiellt kan krĂ€va insatser vid sammanslagning av kĂ€llkoder vid övergĂ„ng till en ny version av konfigurationen. I detta fall kan den nya progressiva funktionen hjĂ€lpa till â . TillĂ€gg Ă€r i grunden en plugin-mekanism som gör det möjligt att skapa tillĂ€gg för applikationslösningar utan att Ă€ndra sjĂ€lva applikationslösningarna. Att flytta integrations-API:et till ett konfigurationstillĂ€gg gör det möjligt att undvika svĂ„righeter vid sammanslagning av konfigurationer nĂ€r man gĂ„r över till en ny version av den standardiserade lösningen.
- AnvÀndning av integrationsmekanismerna pÄ plattformen som tillhandahÄller extern Ätkomst till applikationsmodellens objekt utan att krÀva modifiering av applikationen eller skapande av ett tillÀgg. Fördelen med denna metod Àr att applikationen 1C inte behöver Àndras. Nackdelen Àr att om applikationen 1C har modifierats kan det krÀvas justeringar i den integrerade applikationen. Ett exempel pÄ denna metod Àr anvÀndningen av OData-protokollet för integration, som implementerats pÄ 1C:Enterprise-plattformens sida (mer om det nedan).
- AnvÀndning av fÀrdiga applikationsprotokoll implementerade i standardlösningar frÄn 1C. MÄnga standardlösningar frÄn 1C och dess partners implementerar sina egna applikationsprotokoll baserade pÄ integrationsmekanismerna som tillhandahÄlls av plattformen, riktade mot specifika uppgifter. Vid anvÀndning av dessa mekanismer krÀvs ingen kodning pÄ 1C-applikationens sida, eftersom vi anvÀnder de inbyggda funktionerna i applikationslösningen. PÄ 1C-applikationens sida behöver vi bara göra vissa instÀllningar.
Integrationsmekanismer i 1C:Enterprise-plattformen
Import/export av filer
LÄt oss anta att vi stÄr inför uppgiften att ha en tvÄvÀgsdataöverföring mellan 1C-applikationen och en godtycklig applikation. Till exempel, vi behöver synkronisera produktlistan (register Nomenklatur) mellan 1C-applikationen och en godtycklig applikation.

För att lösa denna uppgift kan man skriva ett tillÀgg som exporterar Nomenklaturregistret till en fil i ett visst format (text, XML, JSON, ...) och kan lÀsa detta format.
Plattformen har implementerat en mekanism för serialisering av applikationsobjekt till XML bÄde direkt, genom metoderna i den globala kontexten SkrivaXML/LÀsaXML, samt med hjÀlp av det hjÀlpbjektet XDTO (XML Data Transfer Objects).
Vilket objekt som helst i systemet 1C:Enterprise kan serialiseras till XML-representation och vice versa.
Denna funktion kommer att returnera en representation av objektet i form av XML:
Funktionen Objekt_I_XML(Objekt)
RegistreraXML = Ny RegistreraXML();
RegistreraXML.SÀttaStrÀng();
SkrivaXML(RegistreraXML, Objekt);
Retur RegistreraXML.StÀng();
SlutFunktion
sÄ hÀr kommer exporten av katalogen Nomenklatur att se ut i XML med hjÀlp av XDTO:
&
Procedur ExportXMLPÄServern()
NySserializatorXDTO = SserializatorXDTO;
NyRegistreraXML = Ny RegistreraXML();
NyRegistreraXML.ĂppnaFil("C:DataNomenklatur.xml", "UTF-8");
NyRegistreraXML.SkrivaTillKallelseXML();
NyRegistreraXML.SkrivaStartElement("KatalogNomenklatur");
Urval = Kataloger.Nomenklatur.VĂ€lja();
Medans Urval.NÀsta() Gör
ObjektNomenklatur = Urval.FÄObjekt();
NySserializatorXDTO.SkrivaXML(NyRegistreraXML, ObjektNomenklatur, TillÀmpningsTypXML.Uttrycklig);
SlutPÄGör;
NyRegistreraXML.SkrivaSlutElement();
NyRegistreraXML.StÀng();
SlutProcedur
Genom en enkel omarbetning av koden exporterar vi katalogen till JSON. Varor kommer att lagras i en array; för variation ska vi ge den engelsksprÄkiga syntaxversionen:
&
Procedur ExportJSONPÄServern()
NyXDTOSerializator = XDTOSerializator;
NyJSONSkribent = Ny JSONSkribent();
NyJSONSkribent.ĂppnaFil("C:DataNomenklatur.json", "UTF-8");
NyJSONSkribent.SkrivaStartObjekt();
NyJSONSkribent.SkrivaEgenskapsNamn("KatalogNomenklatur");
NyJSONSkribent.SkrivaStartArray();
Urval = Kataloger.Nomenklatur.VĂ€lja();
Medans Urval.NÀsta() Gör
NomenklaturObjekt = Urval.FÄObjekt();
NyJSONSkribent.SkrivaStartObjekt();
NyJSONSkribent.SkrivaEgenskapsNamn("Nomenklatur");
NyXDTOSerializator.SkrivaJSON(NyJSONSkribent, NomenklaturObjekt, XMLTypTillÀmpning.UnderförstÄdd);
NyJSONSkribent.SkrivaSlutObjekt();
SlutPÄGör;
NyJSONSkribent.SkrivaSlutArray();
NyJSONSkribent.SkrivaSlutObjekt();
NyJSONSkribent.StÀng();
SlutProcedur
DÀrefter ÄterstÄr det bara att överföra data till slutkunden. Plattformen 1C:Enterprise stödjer de grundlÀggande internetprotokollen HTTP, FTP, POP3, SMTP, IMAP, inklusive deras sÀkra versioner. Data kan ocksÄ överföras med HTTP och/eller webbservicer.
HTTP- och webbservicer

1C-appar kan implementera sina egna HTTP- och webbservicer, samt anropa HTTP- och webbservicer som implementerats av externa appar.
REST-grÀnssnitt och protokoll OData
FrÄn version 8.3.5 kan plattformen 1C:Enterprise automatiskt för hela applikationslösningen. Varje konfigurationsobjekt (katalog, dokument, register etc.) kan göras tillgÀngligt för att hÀmta och modifiera data via REST-grÀnssnitt. Som Ätkomstprotokoll anvÀnder plattformen ett protokoll version 3.0. Publicering av OData-tjÀnster görs frÄn menyn Konfigurator "Administration -> Publicering pÄ webbserver", och rutan "Publicera standard OData-grÀnssnitt" mÄste vara markerad. Formaten atom/XML och JSON stöds. NÀr den applikationen har publicerats pÄ webbservern kan externa system komma Ät den via REST-grÀnssnittet med hjÀlp av HTTP-förfrÄgningar. För att arbeta med applikationen 1C via OData-protokollet krÀvs ingen programmering pÄ 1C-sidan.
SĂ„, URL som ser ut som http:////odata/standard.odata/Catalog_Produkter ger oss innehĂ„llet i produktkatalogen i XML-format â en samling av element entry (meddelandets huvud har utelĂ€mnats för korthet):
http://server/Config/odata/standard.odata/Catalog_Produkter(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')
2016-06-06T16:42:17
35d1f6e4-289b-11e6-8ba4-e03f49b16074
AAAAAgAAAAA=
false
000000001
Airconditioner Mitsubishi
Effekt 2,5 kW, driftslÀgen: vÀrme/kyl
http://server/Config/odata/standard.odata/Catalog_Produkter(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')
...
Genom att lÀgga till strÀngen "?$format=application/json" till URL:en fÄr vi innehÄllet i produktkatalogen i JSON-format (URL som ser ut som http:////odata/standard.odata/Catalog_Produkter?$format=application/json ):
{
"odata.metadata": "http://server/Config/odata/standard.odata/$metadata#Catalog_Produkter",
"value": [{
"Ref_Key": "35d1f6e4-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAgAAAAA=",
"DeletionMark": false,
"Code": "000000001",
"Description": "Airconditioner Mitsubishi",
"Beskrivning": "Effekt 2,5 kW, driftslÀgen: vÀrme/kyl"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Airconditioner Daikin",
"Beskrivning": "Effekt 3 kW, driftslÀgen: vÀrme/kyl"
}, âŠ
Externa datakÀllor

I vissa fall sker datalagring via kan vara den optimala lösningen. Externa datakÀllor Àr ett applikationsobjekt för 1C-konfiguration, som gör det möjligt att interagera med valfri ODBC-kompatibel databas bÄde för lÀsning och skrivning. Externa datakÀllor Àr tillgÀngliga bÄde i Windows och pÄ Linux.
Datakommunikationsmekanism
Àr avsedd för sÄvÀl skapandet av geografiskt fördelade system baserade pÄ 1C:Enterprise som för att organisera datakommunikation med andra informationssystem som inte Àr baserade pÄ 1C:Enterprise.
Denna mekanism anvÀnds aktivt vid implementeringar av 1C, och spektrumet av uppgifter som löses med hjÀlp av den Àr mycket brett. Det handlar om datakommunikation mellan 1C-applikationer installerade pÄ företagets filialer, samt kommunikation mellan en 1C-applikation och en e-handelswebbplats, och datakommunikation mellan en serverapplikation i 1C och en mobilklient (skapad med hjÀlp av den mobila plattformen 1C:Enterprise), och mycket mer.
Ett av de centrala begreppen i datakommunikationsmekanismen Àr utbytesplan. Utbytesplanen Àr en speciell typ av objekt i 1C-plattformen som definierar, bland annat, sammansÀttningen av de data som kommer att delta i utbytet (vilka specifika register, dokument, register o.s.v.). Utbytesplanen innehÄller ocksÄ information om deltagarna i utbytet (de sÄ kallade utbytesnoderna).
Den andra komponenten i datakommunikationsmekanismen Àr mekanismen för registrering av förÀndringar. Denna mekanism övervakar automatiskt förÀndringar i datan som mÄste överföras till slutanvÀndarna inom ramen för utbytesplanen. Med hjÀlp av denna mekanism övervakar plattformen förÀndringar som har intrÀffat sedan den senaste synkroniseringen och gör det möjligt att minimera mÀngden data som överförs under nÀsta synkronisering.
Datautbytet sker via XML-meddelanden av en viss struktur. Meddelandet innehÄller data som har Àndrats sedan den senaste synkroniseringen med noden, samt viss tjÀnsteinformation. Meddelandestrukturen stödjer numrering av meddelanden och möjliggör mottagningsbekrÀftelser frÄn mottagarnoden. SÄdana bekrÀftelser ges i varje meddelande som kommer frÄn mottagarnoden i form av numret pÄ det senaste mottagna meddelandet. Meddelandenumreringen gör det möjligt för plattformen att förstÄ vilka data som redan har överförts framgÄngsrikt till mottagarnoden, och att undvika duplicerad överföring genom att endast skicka data som har Àndrats sedan den mottagna senaste meddelandet med en kvittens pÄ den mottagna informationen. Med detta arbetsschema sÀkerstÀlls garanterad leverans Àven vid opÄlitliga överföringskanaler och meddelandeförlust.
Extern komponenter
I vissa fall, nÀr integrationsutmaningar ska lösas, kan man stöta pÄ specifika krav, till exempel interaktionsprotokoll och dataformat som inte stöds i plattformen 1C:Enterprise. För denna typ av uppgifter finns det , som möjliggör skapandet av dynamiskt anslutna moduler som utökar funktionaliteten hos 1C:Enterprise.
Ett typiskt exempel pÄ uppgifter med sÄdana krav kan vara integrationen av en 1C-applikation med handelsutrustning, frÄn vÄgar till kassasystem och streckkodslÀsare. Externa komponenter kan anslutas bÄde vid 1C:Enterprise-servern och pÄ klientsidan (inklusive webbkunden samt 1C:Enterprise). Teknologin för externa komponenter förutsÀtter ett ganska enkelt och tydligt programmeringsgrÀnssnitt (C++) för interaktion mellan komponenten och plattformen 1C:Enterprise, som utvecklaren ska implementera.
Möjligheterna som öppnas genom anvÀndning av externa komponenter Àr mycket omfattande. Man kan implementera interaktion enligt ett specifikt dataöverföringsprotokoll med externa enheter och system, inbÀdda specifika algoritmer för databehandling och dataformat, osv.
FörÄldrade integrationsmekanismer
Plattformen erbjuder integrationsmekanismer som inte rekommenderas för nya lösningar; de finns kvar av bakÄtkompatibilitetsskÀl och för fall dÀr den andra parten inte kan arbeta med mer moderna protokoll. En av dem Àr hantering av filer i DBF-format (stöds i det inbyggda sprÄket via objektet XBase).
En annan förÄldrad integrationsmetodik Àr anvÀndningen av COM-teknologi (endast tillgÀnglig pÄ Windows-plattformen). 1C:Enterprise-plattformen erbjuder tvÄ integrationsmetoder för Windows som anvÀnder COM-teknologi: Automation-server och extern anslutning. De Àr mycket lika, men en av de grundlÀggande skillnaderna Àr att i fallet med Automation-servern körs en fullt fungerande klientapplikation 1C:Enterprise 8, medan i fallet med extern anslutning startas en relativt liten intern COM-server. Det innebÀr att vid arbete via Automation-servern kan funktionaliteten i klientapplikationen utnyttjas och ÄtgÀrder som liknar interaktiva anvÀndarÄtgÀrder kan genomföras. Vid anvÀndning av extern anslutning kan endast funktioner inom affÀrslogiken anvÀndas, och dessa kan utföras bÄde pÄ klientens sida av anslutningen, dÀr den interna COM-servern skapas, samt anropas pÄ sidan av 1C:Enterprise-servern.
COM-teknologi kan ocksÄ anvÀndas för att fÄ Ätkomst till externa system frÄn koden i applikationen pÄ 1C:Enterprise-plattformen. I detta fall fungerar 1C-applikationen som en COM-klient. Men det bör pÄminnas om att dessa mekanismer endast fungerar om 1C-servern körs i en Windows-miljö.
Integrationsmekanismer implementerade i standardkonfigurationer
EnterpriseData-format

I ett antal 1C-konfigurationer (listan nedan) har en fÀrdig mekanism för dataintegration med externa applikationer implementerats, baserat pÄ den ovan beskrivna plattformsmetoden för datautbyte, vilket inte krÀver Àndringar i kÀllkoden för konfigurationerna (förberedelse för dataintegration görs i instÀllningarna för de tillÀmpade lösningarna):
- «1C:ERP Företagsledning 2.0»
- «Komplett automatisering 2»
- «Företagsredovisning», version 3.0
- «Företagsredovisning KORP», version 3.0
- «Detaljhandel», version 2.0
- «Handelshantering Basic», version 11
- «Handelshantering», version 11
- «Löner och personalhantering KORP», version 3
För datautbyte anvĂ€nds formatet , baserat pĂ„ XML. Formatet Ă€r affĂ€rsorienterat â de datakonstruktioner som beskrivs motsvarar affĂ€rsmĂ€ssiga enheter (dokument och katalogelement) som presenteras i programmen 1C, exempelvis: utfört arbete, inbetalningskvitto, motpart, nomenklatur m.m.
Datautbyte mellan applikationen 1C och en tredje parts applikation kan ske:
- genom en dedikerad filkatalog
- genom en FTP-katalog
- genom en webbtjÀnst som Àr implementerad pÄ sidan av applikationen 1C. Filen med data överförs som en parameter i webbtjÀnstmetoderna
- genom e-post
Vid datautbyte via webbtjÀnsten kommer tredje parts applikation att initiera datautbytet genom att anropa motsvarande webbtjÀnstmetoder i applikationen 1C. I övriga fall kommer initiativet till datautbytet att tas av applikationen 1C (genom att placera filen med data i motsvarande katalog eller genom att skicka filen med data till den konfigurerade e-postadressen).
Ăven pĂ„ 1C-sidan konfigureras hur ofta synkronisering ska ske (för alternativ med filutbyte via katalog och e-post):
- enligt schema (med angiven frekvens)
- manuellt; anvÀndaren mÄste köra synkroniseringen manuellt varje gÄng det behövs
BekrÀftelse av meddelanden
Applikationer 1C hĂ„ller register över skickade och mottagna synkroniseringsmeddelanden och förvĂ€ntar sig samma frĂ„n tredje parts applikationer. Detta möjliggör anvĂ€ndning av meddelandenummereringsmekanismen som beskrivits ovan i avsnittet âMekanism för datautbyteâ.
1C-applikationer överför endast information om Àndringar som har skett med affÀrsobjekt sedan den senaste synkroniseringen (för att minimera mÀngden överförd information) under synkroniseringen. Vid första synkroniseringen kommer 1C-applikationen att exportera alla affÀrsobjekt (till exempel element frÄn katalogen av varor) i formatet EnterpriseData till en XML-fil (eftersom de alla Àr "nya" för den externa applikationen). Den externa applikationen mÄste bearbeta informationen frÄn den mottagna XML-filen frÄn 1C och vid nÀsta synkroniseringstillfÀlle placera i filen som skickas till 1C i en speciell sektion av XML, information om att meddelandet frÄn 1C med ett visst nummer har mottagits framgÄngsrikt. Kvittemeddelandet Àr en signal för 1C-applikationen om att alla affÀrsobjekt framgÄngsrikt har bearbetats av den externa applikationen och att information om dem inte lÀngre behöver överföras. Förutom kvittot kan XML-filen frÄn den externa applikationen ocksÄ innehÄlla data för synkronisering frÄn applikationens sida (till exempel dokument för försÀljning av varor och tjÀnster).
Efter att ha mottagit kvittomeddelandet markerar 1C-applikationen alla Àndringar som överfördes i det föregÄende meddelandet som framgÄngsrikt synkroniserade. Endast osynkroniserade Àndringar i affÀrsobjekten (skapande av nya objekt, Àndring och borttagning av befintliga) kommer att skickas till den externa applikationen vid nÀsta synkroniseringstillfÀlle.

NÀr data överförs frÄn den externa applikationen till 1C-applikationen förÀndras bilden. Den externa applikationen mÄste fylla i kvittosektionen i XML-filen pÄ ett korrekt sÀtt och placera affÀrsdata för synkronisering frÄn sin sida i formatet EnterpriseData.

Förenklad dataöverföring utan kvittering
För fall av enkel integration, dÀr det rÀcker med att endast överföra information frÄn den externa applikationen till 1C-applikationen och dÀr en Äteröverföring av data frÄn 1C-applikationen till den externa applikationen inte krÀvs (till exempel integration av en nÀtbutik som överför försÀljningsinformation till "1C: Bokföring"), finns det en förenklad lösning via webbtjÀnst (utan kvittering) som inte krÀver nÄgra instÀllningar pÄ 1C-applikationens sida.
Specialiserade integrationslösningar
Det finns en standardlösning "1C: Datakonvertering" som anvÀnder plattformens mekanismer för konvertering och utbyte av data mellan standardkonfigurationer av 1C, men den kan ocksÄ anvÀndas för integration med tredjepartsapplikationer.
Integration med banklösningar
Standard , utvecklad av 1C-specialister för mer Àn 10 Är sedan, har faktiskt blivit industristandarden i Ryssland. NÀsta steg i denna riktning Àr teknologin , som tillÄter att skicka betalningsdokument till banken och ta emot kontoutdrag direkt frÄn programmen i "1C: Företags" med ett knapptryck i programmet "1C"; inga ytterligare program behöver installeras och köras pÄ klientdatorn.
Det finns ocksÄ .
Ăvrigt
VÀrt att nÀmna Àr , standarden för utbyte av kommersiell information (utvecklad tillsammans med Microsoft, Intel, Price.ru och andra företag), .
KĂ€lla: habr.com
