Millised on peamised nõuded ärirakendustele? Kõige olulisemad on järgmised ülesanded:
- Rakenduse töölogika lihtne muutmine/adapteerimine muutuvate äriülesannete jaoks.
- Lihtne integreerimine teiste rakendustega.
Kuidas lahendatakse 1C-s esimest ülesannet, on lühidalt kirjeldatud osas „Kohandamine ja tugi” ; me tuleme selle huvitava teema juurde tagasi ühes tulevases artiklis. Täna räägime teisest ülesandest, integreerimisest.
Integratsiooniteemad
Integratsiooniteemad võivad olla erinevad. Mõnede lahendamiseks piisab lihtsast interaktiivsest andmevahetusest - näiteks töötajate nimekirja edastamiseks pangale palgaplakatite väljastamiseks. Komplitseeritud ülesannete lahendamiseks võib osutuda vajalikuks täielikult automatiseeritud andmevahetus, võimalik, et koos välise süsteemi äriloogikaga. On ka spetsialiseeritud ülesandeid, nagu integreerimine välise seadmega (näiteks müügiseadmed, mobiilsed skannerid jne) või pärand- või kitsalt spetsialiseeritud süsteemidega (näiteks RFID-märgiste tuvastamissüsteemidega). Iga ülesande jaoks on äärmiselt oluline valida sobivaim integreerimismehhanism.
Integreerimisvõimalused 1C-ga
1C rakendustega integreerimise rakendamiseks on erinevaid lähenemisviise, millist neist valida, sõltub ülesande nõudmistest.
- Rakendamine põhineb , mida pakub platvorm, oma spetsialiseeritud API-l 1C rakenduse küljes (näiteks Web- või HTTP-teenuste komplektil, mis kutsub esile kolmandate osapoolte rakendusi andmevahetuseks 1C rakendusega). Selle lähenemise eeliseks on API vastupidavus muutustele 1C rakenduse poolel. Selle lähenemise eripära on see, et 1C tüüplahenduse lähtekoodi tuleb muuta, mis võib potentsiaalselt vajada jõupingutusi lähtekoodide ühendamisel uue konfigureerimisversiooni kasutusele võtmisel. Sel juhul võib uut progresiivset funktsionaalsust aidata - . Laiendused on põhimõtteliselt pluginate mehhanism, mis võimaldab luua rakenduste täiustusi, muutes samas rakendusi ise. Integreerimise API viimine konfiguratsiooni laiendusse aitab vältida keerukusi konfiguratsioonide ühinemisel standardlahenduse uut versioonile üleminekul.
- Platvormi integreerimismehhanismide kasutamine, mis pakuvad juurdepääsu rakenduse objektimudelile ja ei nõua rakenduse olemasolevat muutmist ega laienduste loomist. Sellise lähenemise pluss on see, et rakendust 1C ei pea muutma. Miinus on see, et kui rakendust 1C on kohandatud, võivad integreeritavas rakenduses olla vajalikud muudatused. Sellise lähenemise näide on OData protokolli kasutamine integreerimiseks, mis on rakendatud 1C:Ettevõte platvormil (lisateavet selle kohta allpool).
- Valmis rakendusprotokollide kasutamine, mis on ellu viidud 1C standardlahendustes. Paljud 1C ja partnerite standardlahendused rakendavad platvormi pakutavaid integreerimismehhanisme, luues oma rakendusprotokollid, mis on suunatud spetsiifilistele ülesannetele. Nende mehhanismide kasutamisel ei ole vaja 1C rakenduse poolel koodi kirjutada, kuna kasutame rakenduse standardseid võimalusi. 1C rakenduse poolel on vajalik vaid teatud seadistuste tegemine.
Integreerimismehhanismid 1C:Ettevõtte platvormil
Failide eksportimine/importimine
Oletame, et meil on ülesanne kahe suunalise andmevahetuse loomiseks 1C rakenduse ja mõne muu rakenduse vahel. Näiteks peame sünkroonima kaupade nimekirja (nomenklatuur) 1C rakenduse ja mõne muu rakenduse vahel.

Selle ülesande lahendamiseks saab kirjutada laienduse, mis eksportib nomenklatuuri nimekirja teatud formaadis faili (tekst, XML, JSON jne) ja oskab seda formaati lugeda.
Platvormil on rakendatud mehhanism rakendusobjektide sertifitseerimiseks XML-is, kas otseselt, globaalsete kontekstimeetodite kaudu 'ЗаписатьXML'/'ЧтениеXML', või abiolukorra objekti XDTO (XML Andmete Edastamise Objektid) abil.
Iga objekti 1C:Ettevõtte süsteemis saab serialiseerida XML esituses ja vastupidi.
See funktsioon tagastab objekti kujutise XML-is:
Funktsioon Objekti_XML(Objekt)
SalvestusXML = Uus SalvestusXML();
SalvestusXML.SeadaRida();
KirjutaXML(SalvestusXML, Objekt);
Tagasta SalvestusXML.Suletud();
LõppFunktsioon
nii näeb välja kausta Nomenklatuur eksport XML-i XDTO abil:
&AtServer
Protseduur EksportXMLServeris()
UusSerialiseerijaXDTO = SerialiseerijaXDTO;
UusSalvestusXML = Uus SalvestusXML();
UusSalvestusXML.AvataFail("C:DataNomenklatuur.xml", "UTF-8");
UusSalvestusXML.KirjutaTeadeXML();
UusSalvestusXML.KirjutaElemendiAlgus("KaustNomenklatuur");
Valik = Kaustad.Nomenklatuur.Vali();
Kuni Valik.Järgmine() Tsükkel
ObjektNomenklatuur = Valik.HangiObjekt();
UusSerialiseerijaXDTO.KirjutaXML(UusSalvestusXML, ObjektNomenklatuur, XMLTüüpMääratlus.Juhuslik);
LõppTsükkel;
UusSalvestusXML.KirjutaElemendiLõpp();
UusSalvestusXML.Suletud();
LõppProtseduur
Muudatustega koodi kaudu eksportime kausta JSON-i. Tooteid salvestatakse massiivi; mitmekesisuse huvides toome välja ingliskeelse süntaksivormi:
&AtServer
Protseduur EksportJSONServeris()
UusXDTOSerialiseerija = XDTOSerialiseerija;
UusJSONKirjutaja = Uus JSONKirjutaja();
UusJSONKirjutaja.AvataFail("C:DataNomenklatuur.json", "UTF-8");
UusJSONKirjutaja.KirjutaAlgusObjekt();
UusJSONKirjutaja.KirjutaOmaduseNimi("KaustNomenklatuur");
UusJSONKirjutaja.KirjutaAlgusMassiiv();
Valik = Kaustad.Nomenklatuur.Vali();
Kuni Valik.Järgmine() Tee
NomenklatuurObjekt = Valik.HangiObjekt();
UusJSONKirjutaja.KirjutaAlgusObjekt();
UusJSONKirjutaja.KirjutaOmaduseNimi("Nomenklatuur");
UusXDTOSerialiseerija.KirjutaJSON(UusJSONKirjutaja, NomenklatuurObjekt, XMLTüüpMääratlus.Juhuslik);
UusJSONKirjutaja.KirjutaLõpuObjekt();
LõppTee;
UusJSONKirjutaja.KirjutaLõpuMassiiv();
UusJSONKirjutaja.KirjutaLõpuObjekt();
UusJSONKirjutaja.Suletud();
LõppProtseduur
Jätkub viimane samm andmete edastamisel lõppkasutajale. Platvorm 1C:Ettevõte toetab peamisi internetiprotokolle HTTP, FTP, POP3, SMTP, IMAP, sealhulgas nende turvalisi versioone. Samuti saab andmete edastamiseks kasutada HTTP ja/või veebiteenuseid.
HTTP- ja veebiteenused

1C rakendused saavad rakendada oma HTTP- ja veebiteenuseid ning kutsuda esile kolmandate osapoolte rakenduste pakutavaid HTTP- ja veebiteenuseid.
REST-ühendus ja protokoll OData
Alates versioonist 8.3.5 platvorm 1C:Ettevõte suudab automaatselt kogu rakenduse lahenduse jaoks. Iga konfiguratsiooni objekt (kaust, dokument, andmete register jne) saab muuta andmete saamiseks ja muutmiseks REST-ühenduse kaudu kättesaadavaks. Platvorm kasutab juurdepääsu protokollina protokolli versioon 3.0. OData teenuste avaldamine toimub menüüst Konfigurator „Haldus -> Avaldamine veebiserverisse“, valik „Avalda OData standardliides“ peab olema märgitud. Toetatakse forme atom/XML ja JSON. Pärast rakenduse avaldamist veebiserverisse saavad kolmandate osapoolte süsteemid sellele ligi pääseda REST liidese kaudu HTTP päringute abil. 1C rakendusega töötamiseks OData protokollis ei ole programmeerimine 1C poolel vajalik.
Nii, URL vormis http:////odata/standard.odata/Catalog_Номенклатура tagastab meile Katalooge Nomenkaltuuri sisu XML formaadis - elementide komplekti entry (sõnumi pealkiri on lühiduse huvides vahele jäetud):
http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid'35d1f6e4-289b-11e6-8ba4-e03f49b16074')
2016-06-06T16:42:17
35d1f6e4-289b-11e6-8ba4-e03f49b16074
AAAAAgAAAAA=
false
000000001
Mitsubishi konditsioneeri
Võimsus 2,5 kW, töörežiimid: soe/külm
http://server/Config/odata/standard.odata/Catalog_Номенклатура(guid'35d1f6e5-289b-11e6-8ba4-e03f49b16074')
...
Lisades URL-ile rea „?$format=application/json“, saame Katalooge Nomenkaltuuri sisu JSON formaadis (URL vormis 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 konditsioneeri",
"Описание": "Võimsus 2,5 kW, töörežiimid: soe/külm"
},{
"Ref_Key": "35d1f6e5-289b-11e6-8ba4-e03f49b16074",
"DataVersion": "AAAAAwAAAAA=",
"DeletionMark": false,
"Code": "000000002",
"Description": "Daikin konditsioneeri",
"Описание": "Võimsus 3 kW, töörežiimid: soe/külm"
}, …
Välised andmeallikad

Mõnel juhul toimub andmete vahetus läbi võib osutuda ideaalseteks lahenduseks. Välimised andmeallikad on 1C konfiguratsiooni rakendusobjekt, mis võimaldab suhelda mis tahes ODBC-ühilduva andmebaasiga andmete lugemise ja kirjutamise eesmärgil. Välimised andmeallikad on saadaval nii Windowsis kui ka Linuxis.
Andmevahetuse mehhanism
on mõeldud nii 1C:Enterprise'i põhjal territoriaalselt jaotatud süsteemide loomiseks kui ka andmevahetuse korraldamiseks teiste teabe süsteemidega, mis ei põhine 1C:Enterprise'il.
Seda mehhanismi kasutatakse aktiivselt 1C juurutustes ja selle abil lahendatavate ülesannete spekter on väga lai. See hõlmab andmevahetust 1C rakenduste vahel, mis on paigaldatud organisatsiooni filiaalides, andmevahetust 1C rakenduse ja veebipoe vahel, samuti andmevahetust 1C serveri rakenduse ja mobiilikliendi (mis on loodud 1C:Enterprise mobiilse platvormi abil) vahel ning palju muud.
Üks andmevahetuse mehhanismi võtmekontseptsioone on vahetusplaan. Vahetusplaan on eriline rakendusobjekti tüüp 1C platvormil, mis määratleb muu hulgas andmete koosseisu, mis osaleb vahetuses (millised täpselt on registrid, dokumendid, registrid jne). Vahetusplaan sisaldab samuti teavet vahetuse osalejate (nn vahetuspunktide) kohta.
Teine andmevahetuse mehhanismi koostisosa on muudatuste registreerimise mehhanism. See mehhanism jälgib automaatselt süsteemis andmete muudatusi, mis peavad olema edastatud lõppkasutajatele vahetusplaani raames. Selle mehhanismi abil jälgib platvorm muudatusi, mis on toimunud alates viimase sünkroniseerimise hetkest, ja võimaldab minimeerida andmemahtu, mida edastatakse järgmise sünkroniseerimise sessiooni raames.
Andmete vahetus toimub teatud struktuuriga XML-sõnumite kaudu. Sõnum sisaldab andmeid, mis on muutunud alates viimase sünkroniseerimise hetkest sõlmega, ja teatud teenusinformatsiooni. Sõnumite struktuur toetab sõnumite numbreid ja võimaldab saada sõlme-vastuvõtjalt kinnitusi sõnumite vastuvõtmise kohta. Selline kinnitus sisaldub igas sõnumis, mis tuleb sõlme-vastuvõtjalt, viimasena vastu võetud sõnumi numbri näol. Sõnumite numeerimine võimaldab platvormil mõista, millised andmed on juba edastatud sõlme-vastuvõtjale, vältides korduvat edastamist, edastades vaid andmed, mis on muutunud alates sõlme-saatja viimase sõnumi vastuvõtmisest, mille kohta on kinnitus sõlme-vastuvõtjalt. Sel viisil tagatakse garanteeritud edastamine isegi ebaregulaarsel edastuskanalil ja sõnumite kadumise korral.
Välised komponendid
Teatud juhtudel, integreerimise ülesandeid lahendades, tuleb silmitsi seista spetsiifiliste nõudmistega, näiteks suhtlusprotokollide ja andmevormingutega, millega töötamine ei ole platvormis 1C:Ettevõte ette nähtud. Selliste ülesannete jaoks on platvormis ette nähtud , mis võimaldab luua dünaamiliselt ühendatavaid mooduleid, laiendades 1C:Ettevõtte funktsionaalsust.
Tüüpiliseks näiteks selliste nõudmistega ülesandest võib olla integreerimine 1C rakendusel kaubandusseadmetega, alates kaaludest kuni kassapidamisaparaatide ja barcode skanneriteni. Välised komponendid võivad olla ühendatud nii 1C:Ettevõtte serveripoolses osas kui ka kliendipooles (sealhulgas ka veebikliendis ning 1C:Ettevõte). Väliste komponentide tehnoloogia ette näeb piisavalt lihtsa ja arusaadava programmilik (C++) liidese komponentide suhtlemiseks 1C:Ettevõtte platvormiga, mille peab välja töötama arendaja.
Võimalused, mis avanevad väliste komponentide kasutamisel, on väga laiad. Saab rakendada suhtlemist spetsiifilise andmevahetuse protokolli kaudu väliste seadmete ja süsteemidega, sisestada spetsiifilisi andmete töötlemise algoritme ja andmeformaatide jms.
Aegunud integreerimismehhanismid
Platvormil on saadaval integreerimismehhanismid, mida ei soovitata kasutada uutes lahendustes; need on jäetud tagasikõlblikkuse kaalutlustel ning juhuks, kui teine osapool ei saa töötada kaasaegsete protokollidega. Üks neist on DBF-formaadiga failide töötlemine (toetatud sisseehitatud keeles objekti XBase abil).
Teine aegunud integreerimismehhanism on COM-tehnoloogia kasutamine (saadaval ainult Windowsi platvormil). 1C:Ettevõtte platvorm pakub Windowsile kahte integreerimisviisi, mis kasutavad COM-tehnoloogiat: Automaatserver ja Väline ühendus. Need on väga sarnased, kuid üks peamisi erinevusi on see, et Automaatserveri korral käivitub täisfunktsionaalne 1C:Ettevõtte 8 kliendirakendus, samas kui välise ühenduse korral käivitub suhteliselt väike protsessidevaheline COM-server. See tähendab, et Automaatserveri kaudu töötades saab kasutada kliendirakenduse funktsionaalsust, sooritada toiminguid, mis on analoogsed kasutaja interaktiivsetele toimingutele. Välise ühenduse kasutamisel saab kasutada ainult äri-logiikafunktsioone, mida saab täita nii ühenduse kliendi poolel, kus luuakse protsessidevaheline COM-server, kui ka tõmmata äri-loogikat 1C:Ettevõtte serveri poolel.
Samuti võib COM-tehnoloogiat kasutada välistele süsteemidele pöördumiseks 1C:Ettevõtte rakenduse koodist. Sellisel juhul toimib 1C rakendus COM-klientina. Kuid tuleks meeles pidada, et need mehhanismid töötavad ainult juhul, kui 1C server töötab Windowsi keskkonnas.
Integreerimismehhanismid, mis on rakendatud tüüpilistes konfiguratsioonides
EnterpriseData formaat

Mitmes 1C konfiguratsioonis (allpool loetletud) on põhinedes eespool kirjeldatud platvormi mehhanismile andmete vahetamiseks rakendatud valmis andmevahetusmehhanism, mis ei nõua konfiguratsioonide lähtekoodi muutmist (andmevahetuse ettevalmistamine toimub rakenduste seadetes):
- «1C:ERP Ettevõtte juhtimine 2.0»
- «Kompleksne automatiseerimine 2»
- «Ettevõtte raamatupidamine», redaktsioon 3.0
- «Ettevõtte raamatupidamine KORP», redaktsioon 3.0
- «Jaekaubandus», redaktsioon 2.0
- „Kaubanduse haldamine, põhi“ 11. väljaanne
- „Kaubanduse haldamine“ 11. väljaanne
- „Palga ja personalihaldus KORP“ 3. väljaanne
Andmete vahetamiseks kasutatakse formaati , mis põhineb XML-il. Formaat on ärikeskne – selles kirjeldatud andmestruktuurid vastavad 1C programmides esitatud ärisubjektidele (dokumentidele ja registrielementidele), nagu näiteks: tehtud tööde akt, sissetuleku kassakviitung, koostööpartner, nomenklatuur jne.
Andmete vahetamine 1C rakenduse ja kolmanda osapoole rakenduse vahel võib toimuda:
- erakäideldava failikatalooge kaudu
- FTP katalooge kaudu
- 1C rakenduse poolel paigaldatud veebiteenuse kaudu, kus andmefail edastatakse veebimetoodikate parameetrina
- elektroonilise posti kaudu
Veebiteenuse kaudu toimuva vahetuse puhul algatab kolmanda osapoole rakendus andmete vahetamise seansi, kutsudes esile vastavad 1C rakenduse veebimeetodid. Teistes juhtudel on vahetuse algataja 1C rakendus (paigaldades andmefaili vastavasse katalooge või saates andmefaili määratud e-posti aadressile).
1C poolel on samuti seadistatud, kui sageli toimub sünkroniseerimine (failivahetus kaudu katalooge ja elektroonilise posti variantide puhul):
- ajakavaga (mugavalt määratud sagedusega)
- käsi; kasutaja peab sünkroniseerimise iga kord käsitsi käivitama, kui tal seda vaja on
Sõnumite kviteerimine
1C rakendused peavad arvestust saadetud ja vastuvõetud sünkroniseerimiste sõnumite üle ning ootavad sama ka kolmanda osapoole rakendustelt. See võimaldab kasutada sõnumite numereerimise mehhanismi, nagu on kirjeldatud eespool jaotises „Andmevahetuse mehhanism“.
1C rakendused edastavad sünkroniseerimise käigus ainult teavet muudatustest, mis on toimunud äriobjektide osas pärast viimast sünkroniseerimist (et minimeerida edastatava teabe mahtu). Esimese sünkroniseerimise ajal laadib 1C rakendus kõik äriobjektid (nt nomenklatuuri määratlemise elemendid) välja EnterpriseData formaadis XML-faili (kuna kõik need on välise rakenduse jaoks "uued"). Kolmas rakendus peab töötlema 1C-lt saadud XML-faili teavet ja järgmise sünkroniseerimise seansi ajal lisama 1C-le saadetavasse faili spetsiaalsesse XML-sektsiooni info, et 1C sõnum teatud numbriga on edukalt vastu võetud. Kinnitussõnum on 1C rakendusele signaal, et kõik äriobjektid on kolmanda rakenduse poolt edukalt töödeldud ning nende teavet enam edastada ei ole vaja. Peale kinnituse võib kolmanda rakenduse XML-fail sisaldada ka andmeid sünkroniseerimiseks rakenduse poolt (nt kaupade ja teenuste müügidokumendid).
Pärast kinnitussõnumi saamist märgib 1C rakendus kõik eelnevas sõnumis edastatud muudatused edukalt sünkroniseerituks. Ainult sünkroniseerimata muudatused äriobjektides (uusite loomine, olemasolevate muutmine ja kustutamine) saadetakse järgmise sünkroniseerimise seansi ajal välisesse rakendusse.

Andmete edastamisel välisest rakendusest 1C rakendusse muutub olukord vastupidiseks. Väliseks rakenduseks on vaja õigesti täita XML-failis kinnituse sektsioon ning lisada äriandmed sünkroniseerimiseks oma poolt EnterpriseData formaadis.

Lihtsustatud andmevahetus ilma kinnitamiseta
Lihtsate integratsioonide puhul, kus piisab ainult teabe edastamisest välisest rakendusest 1C rakendusse ning vastupidist andmete edastamist ei nõuta (nt veebipoe integratsioon, mis edastab müügiandmed "1C:Raamatupidamisse"), on olemas lihtsustatud veebiteenuse variant (ilma kinnitamiseta), mis ei nõua seadistusi 1C rakenduse küljest.
Spetsialiseeritud integratsioonilahendused
On existe un type de solution «1C:Conversion des données», qui utilise les mécanismes de la plateforme pour la conversion et l'échange de données entre des configurations 1C standards, mais qui peut également être utilisé pour l'intégration avec des applications tierces.
Intégration avec les solutions bancaires
Standard , développé par des spécialistes de 1C il y a plus de 10 ans, est devenu en fait la norme de l'industrie en Russie. Le pas suivant dans cette direction est la technologie , permettant d'envoyer des documents de paiement à la banque et de recevoir des extraits de la banque directement depuis les programmes du système «1C:Entreprise» d'une simple pression sur un bouton dans le programme «1C» ; aucune installation ni démarrage de programmes supplémentaires sur l'ordinateur client n'est requis.
Il existe également un .
Muud
Méritent d'être mentionnés , le standard d'échange d'informations commerciales (développé en collaboration avec Microsoft, Intel, Price.ru et d'autres entreprises), .
Allikas: habr.com
