Mitkä ovat tärkeimmät vaatimukset yrityssovelluksille? Jotkut tärkeimmistä tehtävistä ovat seuraavat:
Sovelluslogiikan muuttaminen/mukauttaminen muuttuviin liiketoimintatehtäviin on helppoa.
Helppo integrointi muihin sovelluksiin.
Kuinka ensimmäinen tehtävä ratkaistaan 1C:ssä, kuvattiin lyhyesti "Räätälöinti ja tuki" -osiossa tässä artikkelissa; Palaamme tähän mielenkiintoiseen aiheeseen tulevassa artikkelissa. Tänään puhumme toisesta tehtävästä, integraatiosta.
Integrointitehtävät
Integrointitehtävät voivat olla erilaisia. Joidenkin ongelmien ratkaisemiseksi riittää yksinkertainen interaktiivinen tiedonvaihto - esimerkiksi työntekijäluettelon siirtäminen pankkiin palkkamuovikorttien myöntämistä varten. Monimutkaisempia tehtäviä varten täysin automatisoitu tiedonvaihto voi olla tarpeen, mahdollisesti ulkoisen järjestelmän liiketoimintalogiikkaan viitaten. On tehtäviä, jotka ovat luonteeltaan erikoistuneita, kuten integrointi ulkoisiin laitteisiin (esim. vähittäiskaupan laitteet, mobiiliskannerit jne.) tai vanhoihin tai pitkälle erikoistuneisiin järjestelmiin (esim. RFID-tunnisteiden tunnistusjärjestelmiin). On erittäin tärkeää valita kullekin tehtävälle sopivin integrointimekanismi.
Integrointivaihtoehdot 1C:n kanssa
Integroinnin toteuttamiseen 1C-sovellusten kanssa on erilaisia lähestymistapoja, joista valita riippuu tehtävän vaatimuksista.
Toteutus perustuu integraatiomekanismejaalustan tarjoama oma erikoistunut API 1C-sovelluspuolella (esimerkiksi joukko Web- tai HTTP-palveluita, jotka kutsuvat kolmannen osapuolen sovelluksia vaihtamaan tietoja 1C-sovelluksen kanssa). Tämän lähestymistavan etuna on API:n kestävyys toteutuksen muutoksille 1C-sovelluspuolella. Lähestymistavan erikoisuus on, että standardin 1C-ratkaisun lähdekoodia on vaihdettava, mikä saattaa vaatia vaivaa lähdekoodien yhdistämisessä siirryttäessä uuteen kokoonpanon versioon. Tässä tapauksessa uusi progressiivinen toiminnallisuus voi tulla apuun - kokoonpanolaajennukset. Laajennukset ovat pohjimmiltaan laajennusmekanismi, jonka avulla voit luoda lisäyksiä sovellusratkaisuihin muuttamatta itse sovellusratkaisuja. Integrointisovellusliittymän siirtäminen määrityslaajennukseen auttaa sinua välttämään kokoonpanojen yhdistämisongelmia, kun siirryt uuteen standardiratkaisun versioon.
Käyttämällä alustan integrointimekanismeja, jotka tarjoavat ulkoisen pääsyn sovellusobjektimalliin ja jotka eivät vaadi sovelluksen muokkaamista tai laajennuksen luomista. Tämän lähestymistavan etuna on, että 1C-sovellusta ei tarvitse muuttaa. Miinus - jos 1C-sovellusta on parannettu, integroitu sovellus saattaa vaatia parannuksia. Esimerkki tästä lähestymistavasta on OData-protokollan käyttö integrointiin, joka on toteutettu 1C:Enterprise-alustan puolella (lisätietoja alla).
1C-standardiratkaisuissa toteutettujen valmiiden sovellusprotokollien käyttö. Monet 1C:n ja kumppaneiden standardiratkaisut toteuttavat omia sovellusprotokolliaan, jotka keskittyvät tiettyihin tehtäviin alustan tarjoamien integrointimekanismeihin perustuen. Näitä mekanismeja käytettäessä ei tarvitse kirjoittaa koodia 1C-sovelluspuolelle, koska Käytämme sovellusratkaisun vakioominaisuuksia. 1C-sovelluspuolella meidän tarvitsee tehdä vain tietyt asetukset.
Integrointimekanismit 1C:Enterprise-alustalla
Tuo/vie tiedostot
Oletetaan, että edessämme on kaksisuuntainen tiedonvaihto 1C-sovelluksen ja mielivaltaisen sovelluksen välillä. Meidän on esimerkiksi synkronoitava tuoteluettelo (nimikkeistöhakemisto) 1C-sovelluksen ja mielivaltaisen sovelluksen välillä.
Voit ratkaista tämän ongelman kirjoittamalla laajennuksen, joka lataa Nomenclature-hakemiston tietyn muotoiseen tiedostoon (teksti, XML, JSON, ...) ja voi lukea tämän muodon.
Alusta toteuttaa mekanismin sovellusobjektien sarjoittamiseksi XML:ssä sekä suoraan, WriteXML/ReadXML globaalien kontekstimenetelmien kautta että käyttämällä XDTO-apuobjektia (XML Data Transfer Objects).
Mikä tahansa objekti 1C:Enterprise-järjestelmässä voidaan serialisoida XML-esitykseen ja päinvastoin.
Tämä toiminto palauttaa objektin XML-esityksen:
Функция Объект_В_XML(Объект)
ЗаписьXML = Новый ЗаписьXML();
ЗаписьXML.УстановитьСтроку();
ЗаписатьXML(ЗаписьXML, Объект);
Возврат ЗаписьXML.Закрыть();
КонецФункции
Nimikkeistöhakemiston vienti XML:ään XDTO:n avulla näyttää tältä:
&НаСервере
Процедура ЭкспортXMLНаСервере()
НовыйСериализаторXDTO = СериализаторXDTO;
НоваяЗаписьXML = Новый ЗаписьXML();
НоваяЗаписьXML.ОткрытьФайл("C:DataНоменклатура.xml", "UTF-8");
НоваяЗаписьXML.ЗаписатьОбъявлениеXML();
НоваяЗаписьXML.ЗаписатьНачалоЭлемента("СправочникНоменклатура");
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
ОбъектНоменклатура = Выборка.ПолучитьОбъект();
НовыйСериализаторXDTO.ЗаписатьXML(НоваяЗаписьXML, ОбъектНоменклатура, НазначениеТипаXML.Явное);
КонецЦикла;
НоваяЗаписьXML.ЗаписатьКонецЭлемента();
НоваяЗаписьXML.Закрыть();
КонецПроцедуры
Muokkaamalla koodia viemme hakemiston JSON-muotoon. Tuotteet kirjoitetaan taulukkoon; Vaihtelun vuoksi tässä on syntaksin englanninkielinen versio:
Sitten jää vain siirtää tiedot loppukuluttajalle. 1C:Enterprise-alusta tukee tärkeimpiä Internet-protokollia HTTP, FTP, POP3, SMTP, IMAP, mukaan lukien niiden suojatut versiot. Voit myös käyttää HTTP- ja/tai Web-palveluita tiedonsiirtoon.
HTTP- ja verkkopalvelut
1C-sovellukset voivat toteuttaa omia HTTP- ja verkkopalvelujaan sekä kutsua kolmannen osapuolen sovellusten toteuttamia HTTP- ja verkkopalveluita.
REST-liitäntä ja OData-protokolla
Versiosta 8.3.5 alkaen 1C:Enterprise-alusta voi automaattisesti luo REST-käyttöliittymä koko sovellusratkaisulle. Mikä tahansa konfiguraatioobjekti (hakemisto, asiakirja, tietorekisteri jne.) voidaan asettaa saataville tietojen vastaanottamista ja muokkaamista varten REST-liitännän kautta. Alusta käyttää protokollaa pääsyprotokollana OData versio 3.0. OData-palveluiden julkaisu suoritetaan Configurator-valikosta "Hallinta -> Julkaiseminen verkkopalvelimella", "Julkaise standardi OData-liitäntä" -valintaruutu tulee olla valittuna. Atom/XML- ja JSON-muotoja tuetaan. Kun sovellusratkaisu on julkaistu verkkopalvelimella, kolmannen osapuolen järjestelmät voivat käyttää sitä REST-rajapinnan kautta HTTP-pyyntöjen avulla. Jos haluat työskennellä 1C-sovelluksen kanssa OData-protokollan kautta, ohjelmointia 1C-puolella ei tarvita.
Joten, kuten URL http://<сервер>/<конфигурация>/odata/standard.odata/Catalog_Номенклатура palauttaa meille nimikkeistön luettelon sisällön XML-muodossa - kokoelma merkintäelementtejä (viestin otsikko jätetään pois lyhyyden vuoksi):
Joissakin tapauksissa tiedonvaihto kautta ulkoisista tietolähteistä voi olla paras ratkaisu. Ulkoiset tietolähteet ovat 1C-sovelluksen konfigurointiobjekteja, joiden avulla voit olla vuorovaikutuksessa minkä tahansa ODBC-yhteensopivan tietokannan kanssa sekä lukemista että kirjoittamista varten. Ulkoiset tietolähteet ovat saatavilla sekä Windowsissa että Linuxissa.
Tiedonvaihtomekanismi
Tiedonvaihtomekanismi on tarkoitettu sekä maantieteellisesti hajautettujen järjestelmien luomiseen 1C:Enterprise-pohjaisten järjestelmien luomiseen että tiedonvaihdon järjestämiseen muiden kuin 1C:Enterprise-pohjaisten tietojärjestelmien kanssa.
Tätä mekanismia käytetään aktiivisesti 1C-toteutuksissa, ja sen avulla ratkaistujen tehtävien valikoima on erittäin laaja. Tämä sisältää tiedonvaihdon organisaation sivukonttoreihin asennettujen 1C-sovellusten välillä, tiedonsiirron 1C-sovelluksen ja verkkokaupan verkkosivuston välillä sekä tiedonvaihdon 1C-palvelinsovelluksen ja mobiiliasiakkaan välillä ( luotu 1C:Enterprise-mobiilialustan avulla) ja paljon muuta. lisää.
Yksi tiedonvaihtomekanismin keskeisistä käsitteistä on vaihtosuunnitelma. Vaihtosuunnitelma on 1C-sovellusalustan erityinen objekti, joka määrittää erityisesti vaihtoon osallistuvien tietojen koostumuksen (mitkä hakemistot, asiakirjat, rekisterit jne.). Vaihtosuunnitelma sisältää myös tietoa vaihtoon osallistuvista (ns. vaihtosolmuista).
Tiedonvaihtomekanismin toinen komponentti on muutoksen rekisteröintimekanismi. Tämä mekanismi valvoo automaattisesti järjestelmää tietojen muutosten varalta, jotka on siirrettävä loppukäyttäjille osana vaihtosuunnitelmaa. Tämän mekanismin avulla alusta seuraa viimeisimmän synkronoinnin jälkeen tapahtuneita muutoksia ja antaa sinun minimoida siirrettävän tiedon määrän seuraavan synkronointiistunnon aikana.
Tiedonvaihto tapahtuu käyttämällä tietyn rakenteen XML-viestejä. Viesti sisältää dataa, joka on muuttunut edellisen solmun kanssa tehdyn synkronoinnin jälkeen, sekä joitakin palvelutietoja. Viestirakenne tukee viestien numerointia ja mahdollistaa vastaanottajan solmun vahvistuksen siitä, että viestit on vastaanotettu. Tällainen vahvistus sisältyy jokaiseen vastaanottavalta solmulta tulevaan viestiin viimeisen vastaanotetun viestin numeron muodossa. Numerointisanomien avulla alusta ymmärtää, mitä dataa on jo onnistuneesti lähetetty vastaanottavalle solmulle, ja välttää uudelleenlähetyksen lähettämällä vain dataa, joka on muuttunut sen jälkeen, kun lähettävä solmu on vastaanottanut viimeisen viestin vastaanottavan solmun vastaanottamasta tiedosta kuittauksella. Tämä toimintamalli takaa taatun toimituksen myös epäluotettavien lähetyskanavien ja viestien katoamisen yhteydessä.
Ulkoiset komponentit
Useissa tapauksissa integraatioongelmia ratkaistaessa on käsiteltävä erityisiä vaatimuksia, esimerkiksi vuorovaikutusprotokollia, tietomuotoja, joita 1C:Enterprise-alusta ei sisällä. Alusta tarjoaa tällaisia tehtäviä varten ulkoisten komponenttien tekniikka, jonka avulla voit luoda dynaamisesti laajennettavia moduuleja, jotka laajentavat 1C:Enterprisen toimintoja.
Tyypillinen esimerkki samankaltaisesta tehtävästä on 1C-sovellusratkaisun integrointi vähittäiskaupan laitteisiin, jotka vaihtelevat vaa'oista kassakoneisiin ja viivakoodilukijoihin. Ulkoiset komponentit voidaan kytkeä sekä 1C:Enterprise-palvelinpuolelle että asiakaspuolelle (mukaan lukien, mutta ei rajoittuen, verkkoasiakas, sekä mobiilialustan seuraava versio 1C: Yritys). Ulkoisten komponenttien tekniikka tarjoaa melko yksinkertaisen ja ymmärrettävän ohjelmiston (C++) käyttöliittymän komponenttien vuorovaikutukseen 1C:Enterprise-alustan kanssa, joka kehittäjän on otettava käyttöön.
Ulkoisten komponenttien käytössä avautuvat mahdollisuudet ovat erittäin laajat. Voit toteuttaa vuorovaikutusta käyttämällä tiettyä tiedonsiirtoprotokollaa ulkoisten laitteiden ja järjestelmien kanssa, rakentaa tiettyjä algoritmeja tietojen ja tietomuotojen käsittelyyn jne.
Vanhentuneet integrointimekanismit
Alusta tarjoaa integraatiomekanismeja, joita ei suositella käytettäväksi uusissa ratkaisuissa; ne jätetään sisään taaksepäin yhteensopivuuden vuoksi ja myös siltä varalta, että toinen osapuoli ei voi työskennellä nykyaikaisempien protokollien kanssa. Yksi niistä työskentelee DBF-muotoisten tiedostojen kanssa (tuettu sisäänrakennetulla kielellä XBase-objektin avulla).
Toinen vanha integrointimekanismi on COM-tekniikan käyttö (saatavilla vain Windows-alustalla). 1C:Enterprise-alusta tarjoaa Windowsille kaksi COM-tekniikkaa käyttävää integrointimenetelmää: automaatiopalvelin ja ulkoinen yhteys. Ne ovat hyvin samankaltaisia, mutta yksi perustavanlaatuisista eroista on, että Automation-palvelimen tapauksessa käynnistetään täysimittainen 1C:Enterprise 8 -asiakassovellus ja ulkoisen yhteyden tapauksessa suhteellisen pieni prosessin sisäinen COM. palvelin käynnistetään. Eli jos työskentelet automaatiopalvelimen kautta, voit käyttää asiakassovelluksen toimintoja ja suorittaa toimintoja, jotka ovat samanlaisia kuin käyttäjän interaktiiviset toiminnot. Ulkoista yhteyttä käytettäessä voit käyttää vain liiketoimintalogiikkatoimintoja, ja ne voidaan suorittaa sekä yhteyden asiakaspuolella, jonne luodaan prosessin sisäinen COM-palvelin, että voit kutsua liiketoimintalogiikkaa 1C:Enterprise-palvelimella. puolella.
COM-teknologiaa voidaan käyttää myös ulkoisten järjestelmien käyttämiseen sovelluskoodista 1C:Enterprise-alustalla. Tässä tapauksessa 1C-sovellus toimii COM-asiakkaana. Mutta on muistettava, että nämä mekanismit toimivat vain, jos 1C-palvelin toimii Windows-ympäristössä.
Integrointimekanismit toteutettu vakiokokoonpanoissa
Yritystietomuoto
Useissa 1C-konfiguraatioissa (luettelo alla), jotka perustuvat edellä kuvattuun alustan tiedonvaihtomekanismiin, on toteutettu valmis mekanismi tietojen vaihtamiseksi ulkoisten sovellusten kanssa, mikä ei vaadi konfiguraatioiden lähdekoodin muuttamista (tietojen valmistelu vaihto tapahtuu sovellusratkaisujen asetuksissa):
"1C:ERP Enterprise Management 2.0"
"Monimutkainen automaatio 2"
"Enterprise Accounting", painos 3.0
"CORP-yrityksen kirjanpito", painos 3.0
"Vähittäiskauppa", painos 2.0
"Basic Trade Management", painos 11
Kaupan hallinta, painos 11
Palkat ja henkilöstöhallinto OYJ, painos 3
Tiedonvaihdossa käytetty muoto on EnterpriseData, perustuu XML:ään. Muoto on liiketoimintalähtöinen - siinä kuvatut tietorakenteet vastaavat 1C-ohjelmissa esitettyjä liikekokonaisuuksia (asiakirjoja ja hakemistoelementtejä), esimerkiksi: täyttöasiakirja, kassakuittimääräys, vastapuoli, nimike jne.
Tiedonvaihto 1C-sovelluksen ja kolmannen osapuolen sovelluksen välillä voi tapahtua:
erillisen tiedostohakemiston kautta
FTP-hakemiston kautta
1C-sovelluspuolella käyttöönotetun verkkopalvelun kautta. Datatiedosto välitetään parametrina verkkomenetelmille
sähköpostin välityksellä
Verkkopalvelun kautta tapahtuvassa vaihdossa kolmannen osapuolen sovellus aloittaa tiedonvaihtoistunnon kutsumalla 1C-sovelluksen vastaavia verkkomenetelmiä. Muissa tapauksissa vaihtoistunnon aloittaja on 1C-sovellus (sijoittamalla datatiedosto sopivaan hakemistoon tai lähettämällä datatiedosto määritettyyn sähköpostiosoitteeseen).
Myös 1C-puolella voit määrittää, kuinka usein synkronointi tapahtuu (vaihtoehdot tiedostojen vaihtamiseksi hakemiston ja sähköpostin kautta):
aikataulun mukaan (määritetyllä tiheydellä)
käsin; käyttäjän on käynnistettävä synkronointi manuaalisesti aina, kun hän sitä tarvitsee
Viestien kuittaus
1C-sovellukset pitävät kirjaa lähetetyistä ja vastaanotetuista synkronointiviesteistä ja odottavat samaa kolmansien osapuolten sovelluksilta. Näin voit käyttää yllä "Tiedonvaihtomekanismi" -osiossa kuvattua viestien numerointimekanismia.
Synkronoinnin aikana 1C-sovellukset lähettävät vain tietoja muutoksista, jotka ovat tapahtuneet liiketoimintayksiköissä viimeisen synkronoinnin jälkeen (siirrettävän tiedon määrän minimoimiseksi). Ensimmäisen synkronoinnin aikana 1C-sovellus lataa kaikki liiketoimintayksiköt (esimerkiksi tuoteviitekirjan kohteet) EnterpriseData-muodossa XML-tiedostoon (koska ne ovat kaikki "uusia" ulkoiselle sovellukselle). Kolmannen osapuolen sovelluksen on käsiteltävä tiedot 1C:ltä vastaanotetusta XML-tiedostosta ja seuraavan synkronointiistunnon aikana sijoitettava 1C:lle lähetettyyn tiedostoon erityiseen XML-osioon tiedot, että 1C:n viesti tietyllä numerolla onnistui. otettu vastaan. Kuittiviesti on signaali 1C-sovellukselle, että ulkoinen sovellus on käsitellyt kaikki liiketoimintayksiköt onnistuneesti, eikä niistä tarvitse enää lähettää tietoja. Kuitin lisäksi kolmannen osapuolen sovelluksen XML-tiedosto voi sisältää myös tietoja sovelluksen synkronoitavaksi (esimerkiksi tavaroiden ja palveluiden myyntiasiakirjat).
Vastaanotettuaan kuittausviestin 1C-sovellus merkitsee kaikki edellisessä viestissä lähetetyt muutokset onnistuneesti synkronoiduiksi. Vain synkronisoimattomat muutokset liiketoimintakokonaisuuksiin (uusien entiteettien luominen, olemassa olevien muuttaminen ja poistaminen) lähetetään ulkoiseen sovellukseen seuraavan synkronointiistunnon aikana.
Kun siirretään tietoja ulkoisesta sovelluksesta 1C-sovellukseen, kuva käännetään. Ulkoisen sovelluksen on täytettävä XML-tiedoston kuittiosio vastaavasti ja asetettava liiketoimintatiedot synkronoitavaksi omalta osaltaan EnterpriseData-muotoon.
Yksinkertaistettu tiedonvaihto ilman kättelyä
Yksinkertaisen integroinnin tapauksissa, kun riittää vain tietojen siirtäminen kolmannen osapuolen sovelluksesta 1C-sovellukseen, eikä tietojen käänteistä siirtoa 1C-sovelluksesta kolmannen osapuolen sovellukseen vaadita (esimerkiksi online-sovelluksen integrointi myymälä, joka siirtää myyntitiedot 1C:lle: Kirjanpito), on yksinkertaistettu mahdollisuus työskennellä verkkopalvelun kautta (ilman kuittausta), joka ei vaadi asetuksia 1C-sovelluksen puolella.
Mukautetut integraatioratkaisut
On olemassa standardiratkaisu “1C: Data Conversion”, joka käyttää alustamekanismeja tietojen muuntamiseen ja vaihtamiseen standardien 1C-kokoonpanojen välillä, mutta jota voidaan käyttää myös integrointiin kolmannen osapuolen sovellusten kanssa.
Integrointi pankkiratkaisuihin
Standardi "Asiakaspankki"1C:n asiantuntijoiden yli 10 vuotta sitten kehittämä, on itse asiassa tullut alan standardiksi Venäjällä. Seuraava askel tähän suuntaan on teknologia DirectBank, jonka avulla voit lähettää maksuasiakirjoja pankkiin ja vastaanottaa tiliotteita pankista suoraan 1C:Enterprise-järjestelmän ohjelmista painamalla yhtä painiketta 1C-ohjelmassa; se ei vaadi lisäohjelmien asentamista ja suorittamista asiakastietokoneessa.