Schimb automat de date folosind procesarea „Schimb universal de date în XML”, fără modificarea configurației

Sistemele de control automatizate constau în cele mai multe cazuri din baze de date separate și au adesea o structură distribuită geografic. În același timp, schimbul de date corect implementat este o condiție necesară pentru funcționarea eficientă a unor astfel de sisteme.

Configurarea inițială a schimbului poate necesita o serie de acțiuni, nu doar în ceea ce privește programarea, ci și consultanța, chiar dacă avem de-a face cu surse omogene, așa cum este cazul produselor de pe platforma 1C:Enterprise. De ce configurarea schimbului 1C (sau, așa cum se mai numește, sincronizarea datelor în 1C 8.3) poate deveni sarcina cea mai consumatoare de timp și mai costisitoare a unui proiect de integrare, vom lua în considerare în acest articol.

Schimbul de date în mediul 1C vă permite să:

  • Elimina dubla intrare a documentelor;
  • Automatizați procesele de afaceri aferente;
  • Optimizați interacțiunea între departamentele distribuite;
  • Actualizați prompt datele pentru activitatea specialiștilor din diferite departamente;
  • „Faceți diferența” între diferitele tipuri de contabilitate.*

*În cazurile în care datele unui tip de contabilitate diferă semnificativ de altul, este necesară asigurarea confidențialității informațiilor și „delimitarea” fluxurilor de informații. De exemplu, schimbul de date între 1C UT și 1C Accounting nu necesită încărcarea datelor de management în baza de date contabilă de reglementare, de exemplu. sincronizarea în 1C va fi incompletă aici.

Dacă ne imaginăm procesul standard de implementare a schimbului de date primare, când cel puțin unul dintre obiectele sale este un produs 1C, atunci putem distinge următoarele etape:

  • Coordonarea componenței schimbului;
  • Definirea transportului (protocoale de schimb);
  • Stabilirea regulilor;
  • Programare.

Identificarea compoziției schimbului 1C

Obiectele de schimb pot fi împărțite în „sursă” și „receptor”. În același timp, ei pot îndeplini două roluri în același timp, care se vor numi schimb bidirecțional. Sursa și destinația sunt determinate logic în funcție de necesitatea sau funcționalitatea sistemului.*

*De exemplu, la integrarea „WA: Financier” - o soluție pentru menținerea contabilității financiare și gestionarea proceselor de trezorerie, dezvoltată pe baza „1C:Enterprise”, experții WiseAdvice o recomandă ca sistem master. Acest lucru se datorează prezenței instrumentelor de control pentru a respecta regulile politicii de aplicare și, în consecință, pentru a asigura eficacitatea soluției.

În continuare, pe baza cerințelor primite și înregistrate de la utilizatori, se creează o listă de date pentru schimb, se determină volumul acesteia, cerințele pentru frecvența schimbului și se prescrie procesul de lucru cu erori și de gestionare a situațiilor excepționale (coliziuni).

În aceeași etapă, în funcție de flota de sisteme existente și de structura întreprinderii, se determină formatul de schimb:

Baza de informatii distribuite

  • RIB implică schimbul între configurații identice de baze de date 1C, cu o structură de control „master-slave” clară pentru fiecare pereche de schimb. Ca element al unei platforme tehnologice, RIB, pe lângă date, poate transmite modificări de configurare și informații administrative ale bazei de date (dar numai de la master la slave).

Schimb universal de date în 1C

  • Un mecanism care vă permite să configurați schimbul de baze de date 1C, atât cu configurații pe platforma 1C:Enterprise, cât și cu sisteme terțe. Schimbul se realizează prin transferul de date într-un format xml universal în conformitate cu „Planurile de schimb”.

EnterpriseData

  • Cea mai recentă dezvoltare de la 1C, concepută pentru a implementa schimbul de date în format xml între produsele create pe platforma 1C:Enterprise cu orice sisteme de automatizare. Utilizarea EnterpriseData simplifică modificările asociate schimbului. Anterior, atunci când într-un sistem era inclusă o nouă configurație, era necesar să se implementeze un mecanism de import și export de date, atât pentru acesta, cât și pentru sistemele existente. Acum sistemele care suportă EnterpriseData nu au nevoie de nicio modificare, având un singur punct de intrare-ieșire.

Definirea transportului (protocoale de schimb)

Pentru sistemul de pe platforma 1C:Enterprise 8 este oferită o gamă largă de posibilități de organizare a schimbului cu orice resurse de informații folosind standarde universale general acceptate (xml, fișiere text, Excel, conexiune ADO etc.). Prin urmare, atunci când determinați transportul pentru schimbul de date, ar trebui să vă bazați pe capacitățile bazei de date ale sistemului terț.

Sincronizarea directoarelor

Principiul de bază al sincronizării eficiente a directoarelor este prezența unui singur punct de intrare. Dar dacă vorbim despre lucrul cu directoare care au fost completate istoric după reguli diferite, este necesar să se definească clar câmpurile de sincronizare pentru a aduce schimbul la un „numitor comun.”*

*În această etapă, poate fi necesar să se efectueze lucrări de normalizare a datelor de referință pe partea sursei de date. În funcție de starea directoarelor și de volumul acestora, procesul de comparare a elementelor, recunoaștere, identificare a erorilor și duplicatelor, precum și completarea câmpurilor lipsă și atribuirea câmpurilor de sincronizare, poate necesita munca unui întreg grup de experți, atât pe parte a integratorului (proprietarul tehnicii de normalizare a datelor de bază) și din partea clientului.

Stabilirea regulilor

Capacitatea de a afișa date din sistemele sursă în receptori depinde de regulile de schimb definite corect. Regulile, prezentate în format xml, reglementează corespondența detaliilor cheie ale obiectelor sursă-receptor. Soluția 1C: Data Conversion este concepută pentru a automatiza crearea de reguli pentru implementarea schimburilor unice și permanente.

Garantează nicio pierdere de date în timpul schimbului de schimb. Aceasta este parte integrantă a oricărei configurații pe platforma 1C:Enterprise, care descrie complet procedura de schimb 1C: compoziția datelor (documente cu detalii „de identificare”) și noduri (baze de informații receptor-transmițător), precum și activarea RIB pentru direcțiile de schimb selectate.

Orice modificare a datelor introduse în Planul de schimb este înregistrată și primește semnul „schimbat”. Până când datele modificate se potrivesc între ele în nodurile receptor-transmițător, semnul nu va fi resetat, iar sistemul va trimite mesaje de control către ambele noduri. După încărcarea datelor și confirmarea conformității lor deplină în ambele sisteme, semnul este resetat.

Program de schimb în 1C

Pentru a automatiza schimbul regulat, este setată frecvența de încărcare a datelor. Frecvența schimburilor depinde de nevoi și de capacitățile tehnice. De asemenea, configurațiile pe platforma 1C:Enterprise vă permit să configurați schimbul de date atunci când are loc un eveniment.

Având în vedere procesul standard de implementare a unui schimb, să acordăm atenție factorilor care vor necesita îmbunătățiri în diferite etape:

  • Configurații de baze de date non-standard, foarte modificate;
  • Diferite versiuni ale platformei 1C:Enterprise;
  • Versiuni de configurare care nu au fost actualizate de mult timp;
  • Obiecte de schimb care au suferit anterior modificări;
  • Necesitatea unor reguli de schimb nestandardizate;
  • Un set și o compoziție foarte diferită de detalii în cărțile de referință existente.

Deoarece chiar și acțiunile standard pentru implementarea schimbului de date primare necesită cunoștințe de specialitate, se recomandă să fie realizate cu participarea specialiștilor 1C. Numai după finalizarea tuturor pașilor descriși mai sus ar trebui să treceți la configurarea schimbului în configurație. Să ne uităm la integrarea bazelor de date folosind exemplul 1C:UPP și 1C:Retail (schimbul cu 1C:UT este configurat folosind aceeași schemă). De asemenea, în sincronizarea standard este inclus și schimbul SCP-SCP, care este tipic pentru sistemele de automatizare pe scară largă la cele mai mari întreprinderi industriale.

În submeniul „Serviciu”, selectați „Schimb de date cu produse de pe platformă...” (selectarea schimbului direct cu „Retail” duce adesea la erori la nivelul obiectului COM). Vă rugăm să rețineți mesajul de serviciu „Această funcție nu este disponibilă”.


Pentru a rezolva această problemă, trebuie să selectați „Configurarea comunicațiilor”


... și bifați caseta. Apoi, ignorați mesajul de eroare.


În setările de sincronizare a datelor, selectați „Creați un schimb cu „Retail”...



Înainte de a configura setările de conexiune printr-un director local sau de rețea, ar trebui să vă asigurați că există spațiu pe disc pentru director. Deși, de regulă, nu ocupă mai mult de 30-50 MB, în cazuri excepționale poate necesita până la 600 MB. Puteți crea directorul necesar direct din configurator.



Când ne conectăm printr-un director de rețea, ignorăm oferta de a configura conexiunea printr-o adresă FTP și prin e-mail făcând clic pe „Următorul”.


În setări, introducem manual prefixe - simboluri ale bazelor de date (de obicei BP, UPP, RO), setăm regulile și data de începere a încărcării datelor. Prefixul va fi indicat în numele documentelor pentru a indica baza de date în care au fost create. Dacă regulile de încărcare nu sunt editate, datele vor fi încărcate implicit în conformitate cu toți parametrii disponibili.



Creăm un fișier de setări de schimb pentru „Retail” pentru a nu ne repeta acțiunile. Dacă trebuie să trimiteți date imediat după configurarea sincronizării, bifați caseta.


Pentru a automatiza procesul de schimb, trebuie să configurați un program.


Meniul „Retail”.


Bifați caseta și selectați „Sincronizare”.


Efectuăm configurarea „inversă” selectând Managementul întreprinderii de producție.




Încărcați fișierul de setări creat în UPP.


Punem o bifă, sistemul preia adresa automat.





Acționăm la fel ca în UPP.









Compararea datelor de verificare (Compararea manuală a datelor se recomandă să se facă în etapa pregătitoare, deoarece această muncă poate deveni cea mai laborioasă în procesul de implementare a schimbului). Fereastra de comparație se deschide făcând dublu clic pe mouse.



În cazul unei erori de sincronizare, „Detalii...” va fi înlocuit cu „Never...”.


„Detalii...” deschide jurnalul cu informații actualizate despre schimb.


Gata.

Atunci când se întrețin mai multe baze de date 1C funcționale, uneori este nevoie de schimb de date între ele. Există 2 moduri de a transfera date:

  1. Transferul de date utilizând regulile de schimb și procesare „XML Data Exchange”. Regulile de schimb sunt create folosind configurația 1C: Conversia datelor.
  2. Transferarea datelor între baze de informații similare utilizând procesarea „Încărcarea și încărcarea datelor XML”.

Să luăm în considerare a doua opțiune, adică. încărcarea și încărcarea datelor din/la configurații care conțin aceleași obiecte (identice) de care avem nevoie. Pentru a face acest lucru, vom folosi procesarea externă „Încărcarea și încărcarea datelor XML”, care poate fi utilizată.

Condiția de utilizare a acestei prelucrări este următoarea: Baza de informații din care se descarcă datele trebuie să conțină aceleași obiecte și cu aceleași detalii (nume și tip de date) ca și în baza de date în care sunt încărcate datele.

Să luăm în considerare un exemplu cu transfer de date folosind această prelucrare. Să presupunem că trebuie să transferați documentele „Ordin de plată de intrare” și „Ordin de plată de ieșire”. Soluția la această problemă va fi următoarea.

Deschidem procesarea externă „Încărcarea și încărcarea datelor XML” prin meniul principal: Fișier? Deschide... În fila „Încărcare” specificăm fișierul XML în care vom salva datele.

Apoi trebuie să specificați perioada pentru care vom descărca obiectele de date din baza de date 1C și obiectele în sine. Bifăm documentele de care avem nevoie pentru încărcare în câmpul structurii obiect de configurare din coloana „Date pentru încărcare”. Dacă documentele încărcate conțin legături către elemente de director care nu se află într-o altă configurație, atunci este logic să bifați casetele din coloana „Dacă este necesar”, astfel încât aceste elemente să fie și ele încărcate împreună cu documentele.

Acum, la acest pas, trebuie să decideți dacă să încărcați mișcările lor de-a lungul registrelor împreună cu documentele sau să transferați aceste documente într-o altă bază de date? Pentru a reposta documentele încărcate într-o altă bază de date, puteți utiliza procesarea „Prelucrare în grup a directoarelor și documentelor”. Dacă algoritmii de procesare din aceste baze de date de informații diferă într-un fel, atunci caseta de selectare de lângă „Încărcați toate mișcările sale cu documentul” nu trebuie bifată.

Asta e tot, configurarea încărcării este completă, totul este simplu aici! Faceți clic pe butonul „Încărcați date” și așteptați până când datele sunt salvate într-un fișier XML. Pentru descărcări mai complexe, puteți specifica selecția pentru obiectele descărcate nu numai în funcție de perioadă.

După descărcare, mergeți la a doua bază de date 1C și deschideți aceeași procesare acolo. Accesați fila „Descărcare” și indicați aici același fișier XML în care am încărcat datele.

În această filă, bifați caseta de lângă „Continuați încărcarea obiectelor dacă apare o eroare” și faceți clic pe butonul „Încărcare date”. Nu luăm în considerare alte funcții, de exemplu, utilizarea totalurilor, deși această funcție poate accelera semnificativ încărcarea obiectelor (înregistrări pe registre).

Imprimare (Ctrl+P)

Schimb printr-un format universal

Subsistemul „Schimb de date” al bibliotecii de subsisteme standard conține 4 opțiuni (tehnologii) pentru schimbul de informații între diverse baze de informații:

  • baze de informații distribuite (RIB);
  • schimb de date printr-un format universal;
  • schimbul de date conform regulilor de schimb (regulile de schimb sunt create folosind configurația „Conversia datelor”, ediția 2.1);
  • schimb de date fără reguli de schimb.

Acest articol discută despre tehnologia schimbului de date prin format universal EnterpriseData. Această tehnologie este disponibilă în „Biblioteca de subsisteme standard” începând cu versiunea 2.3.1.62. lansat la începutul anului 2016. În prezent, cea mai recentă ediție a BSP 2.3 (pentru utilizarea cu platforma 1C:Enterprise 8.3 nu mai mică decât versiunea 8.3.8.1652 cu modul de compatibilitate dezactivat) are versiunea 2.3.6.17.

Orez. 1 Ultimele versiuni ale BSP 2.3

Printre fișierele pentru furnizarea de soluții de aplicație 1C, există un fișier text „Versiuni de bibliotecă”, unde este scris pe baza cărei versiuni a BSP a fost dezvoltată aplicația, de exemplu, pe baza soluției de aplicație UT 11.3.3.231, S-a format BSP 2.3.5.65.

Vă rugăm să rețineți că pentru utilizarea cu versiunea platformei „1C:Enterprise 8.3” nu este mai mică 8.3.10.2168 ediția a fost lansată cu modul de compatibilitate dezactivat BSP 2.4.

Descrierea formatului EnterpriseData

Ce este formatul EnterpriseData?

Acesta este un format care vă permite să descrieți un obiect de bază de informații (contraparte, factură etc.) sau să raportați faptul că acest obiect a fost șters. Este de așteptat ca configurația care primește fișierul în format EnterpriseData va reacționa în consecință - va crea obiecte noi și le va șterge pe cele care sunt marcate ca șterse în fișier. Este destinat schimbului de informații între configurațiile UT, RT, UNF, BP. Formatul poate fi folosit și pentru a face schimb de informații cu orice alte sisteme informaționale: nu depinde de caracteristicile software-ului propriu sau de structurile de bază de informații care participă la schimb și nu conține restricții evidente de utilizare.

Versiunea în format EnterpriseData

Datele de format sunt stocate în pachete XDTO în ramurile de configurare generală a bazei de date, așa cum se arată în Fig. 2

Fig. 2 Pachete cu format de date XDTO – EnterpriseData

În fig. 2 arată că există mai multe pachete XDTO. Acestea sunt versiuni diferite ale formatului. Numărul versiunii formatului este format din X.Y.Z, unde X.Y este versiunea, Z este versiunea minoră. Versiunea Minor este mărită în cazul remedierii erorilor și a altor modificări în care: funcționalitatea logicii de conversie a datelor bazată pe versiunea anterioară a formatului rămâne operațională (menținerea compatibilității inverse a algoritmilor actuali de transfer de date prin format); Suportul pentru noile capacități de format pentru logica de conversie este voluntar. Un exemplu de astfel de modificări ar putea fi corectarea unei erori, modificarea proprietăților obiectelor de format, adăugarea de proprietăți a căror utilizare nu este obligatorie la conversia datelor. În alte cazuri, când se schimbă formatul, versiunea Major crește: X – în cazul restructurării globale, Y – în alte cazuri.
Formatul descrie reprezentarea obiectelor (documente sau elemente de director) sub formă de fișiere XML. Versiunea 1.0.1 conține o descriere a 94 de obiecte din diverse domenii (finanțe, producție, achiziții și vânzări, operațiuni de depozit). Numele tipurilor, de regulă, sunt bine înțelese și nu au nevoie de explicații suplimentare: de exemplu, „Document.Act de lucru finalizat” sau „Director.Contrapărți”. După cum puteți vedea, descrierea tipurilor de document începe cu prefixul „Documentar.”, iar elementul director începe cu prefixul „Director”. O descriere mai detaliată a formatului poate fi găsită
Cea mai recentă versiune este 1.3, cu toate acestea, cea mai frecvent utilizată versiune este 1.0. Nu există mare diferență între versiuni. Format EnterpriseDataExchange_1_0_1_1 utilizat la schimbul prin intermediul unui serviciu web.
Rețineți că cu care este utilizat pachetul de format de date EnterpriseData ExchangeMessage la crearea regulilor de conversie. Este acest pachet care conține obiectul tip Informații suplimentarecare poate avea orice tip de valoare și este utilizat la crearea unei reguli de conversie între obiectele de configurare. care nu sunt în formatul de date. Exact, multumesc Informații suplimentarePuteți adapta și personaliza regulile de schimb fără a modifica formatul datelor din pachetele XDTO.

Orez. 3 Structura pachetului XDTOExchangeMessage

Cum se fac schimb de date în format EnterpriseData?

Schimbul de date în format EnterpriseData cu configurație este un schimb de fișiere. Ca răspuns la fișierul primit de la aplicația externă, configurația îl va procesa și va crea un fișier de răspuns. Fișierele pot fi schimbate:

  • printr-un director de fișiere dedicat,
  • prin directorul FTP,
  • printr-un serviciu web implementat pe partea bazei de informații. Fișierul de date este transmis ca parametru metodelor web.

Notă. Pentru schimbul de date bidirecțional între o aplicație terță parte și configurația din partea bazei de informații, trebuie efectuate o serie de setări - aplicația terță parte trebuie să fie înregistrată în baza de informații, trebuie definit un canal de schimb pentru aceasta (prin un fișier sau un director FTP), etc. Dar pentru cazurile de integrare simplă, atunci când este suficient să transferați doar informații dintr-o aplicație terță în baza de informații și transferul invers al datelor din baza de date către o aplicație terță parte (de exemplu, integrarea unui magazin online). care transferă informațiile de vânzări către 1C: Contabilitate), există o versiune simplificată de lucru printr-un serviciu web care nu necesită setări laterale.

La schimbul folosind planuri de schimb de configurații în timpul sincronizării, sunt transmise numai informații despre modificările care au avut loc de la ultima sincronizare (pentru a minimiza cantitatea de informații transferate). Prima dată când sincronizați, configurația va descărca toate obiectele formatate EnterpriseData într-un fișier XML (deoarece sunt toate „noi” pentru aplicația terță parte).

Următorul pas este pentru aplicația terță parte - trebuie să proceseze informațiile din fișierul XML și să le plaseze în secțiune în timpul următoarei sesiuni de sincronizare informație că un mesaj din configurație cu un anumit număr a fost primit cu succes (plasați numărul mesajului primit din configurație în câmpul ReceivedNo). Mesajul de primire este un semnal către configurație că toate obiectele au fost procesate cu succes de aplicația externă și nu mai este nevoie să transmiteți informații despre ele. Pe lângă chitanță, fișierul XML de la o aplicație terță poate conține și date pentru sincronizare (în secțiunea ).

După primirea mesajului de primire, configurația marchează toate modificările trimise în mesajul anterior ca fiind sincronizate cu succes. Doar modificările nesincronizate ale obiectelor (crearea unora noi, modificarea și ștergerea celor existente) vor fi trimise la aplicația externă în timpul următoarei sesiuni de sincronizare.

Când transferați date dintr-o aplicație externă în configurație, imaginea este inversată. Aplicația trebuie să completeze secțiunea în consecință, și în secțiune plasați obiecte pentru a fi sincronizate în format EnterpriseData.

După procesarea fișierului, configurația va genera un fișier XML care va conține un mesaj de primire și date noi pentru sincronizare din configurație (dacă există de la ultima sesiune de sincronizare).

Puteți vedea mai multe detalii despre schimbul de date cu soluții de aplicație pe platforma 1C:Enterprise în format EnterpriseData

Modul general de „manager de schimb printr-un format universal”.

Procedurile și funcțiile care descriu complet regulile de descărcare a datelor din baza de informații în formatul de schimb și regulile de încărcare a datelor din formatul de schimb în baza de informații sunt dezvoltate într-un modul comun - modulul de gestionare a schimbului printr-un format universal.


Orez. 4 Structura modulului de manager de schimb printr-un format universal

Modulul este creat automat folosind configurația „Conversia datelor”, ediția 3.0, pe baza regulilor de schimb configurate, sau manual în configurator.

Modulul este format din mai multe secțiuni mari, fiecare dintre ele conține propriul său grup de proceduri și funcții.

  1. Un comentariu. Prima linie a modulului conține un comentariu cu numele conversiei. Această linie este necesară pentru a identifica modulul atunci când se utilizează comanda în programul Data Conversion, ediția 3.0, de exemplu. // Conversie UP2.2.3 din 06/01/2017 19:51:50
  2. Proceduri de conversie. Conține proceduri predefinite care sunt efectuate în diferite etape ale sincronizării datelor: înainte de conversie, după conversie, înainte de completare amânată.
  3. Reguli de prelucrare a datelor (DPR). Conține proceduri și funcții care descriu regulile de prelucrare a datelor.
  4. Reguli de conversie a obiectelor (OCR). Conține proceduri și funcții care descriu regulile de conversie a obiectelor, precum și regulile de conversie a proprietăților acestor obiecte.
  5. Reguli de conversie a datelor predefinite (PDC). Conține o procedură care completează regulile de conversie a datelor predefinite.
  6. Algoritmi. Conține algoritmi arbitrari care sunt apelați din alte reguli (POD sau PKO).
  7. Opțiuni. Conține logica pentru completarea parametrilor de conversie.
  8. Scop general. Conține proceduri și funcții care sunt utilizate pe scară largă în reguli și algoritmi.

Parametrii procedurilor și funcțiilor care sunt utilizați în mai multe tipuri de proceduri din modulul manager sunt descriși mai jos.

Schimb de componente. Tip - Structură. Conține parametri și reguli de schimb inițializate ca parte a sesiunii de schimb.

Direcția de schimb. Tip – șir. Fie „Trimite”, fie „Primește”.

date IB. Tip – DirectoryObject sau DocumentObject.

Proceduri legate de evenimentele de conversie

Există trei proceduri predefinite care sunt apelate în timpul procesului de conversie:

  • Înainte de Conversie. Apelat înainte de sincronizarea datelor. Această procedură găzduiește de obicei logica pentru inițializarea diferiților parametri de conversie, popularea valorilor implicite etc. Parametri: Schimb de componente.
  • DupăConversie. Apelat după finalizarea sincronizării datelor, dar înainte să se producă umplutura leneșă. Opțiuni: Schimb de componente.
  • Înainte de umplere întârziată. Apelat înainte să apară umplerea leneșă. Logica de sortare sau ajustare a tabelului de obiecte supuse umplerii leneșe poate fi localizată aici. Opțiuni: Schimb de componente.

Proceduri AML

Completați Regulile de prelucrare a datelor. O procedură de export care conține logica pentru completarea regulilor de prelucrare a datelor. Conține apeluri la alte proceduri care adaugă o regulă pentru procesarea unui anumit obiect la tabelul de reguli (vezi procedurile de mai jos Adăugați AML). Opțiuni: Schimb de direcție, Reguli de prelucrare a datelor

Adăugați UNDER_<ИмяПОД>. Un set de proceduri care populează tabelul SUB regulile pentru anumite obiecte. Numărul de astfel de proceduri corespunde numărului de AML furnizat pentru această conversie în programul Data Conversion, versiunea 3.0. Opțiuni: Reguli de prelucrare a datelor(un tabel de valori inițializat ca parte a sesiunii de schimb).

SUB_<ИмяПОД>_Când se procesează. Procedura conține textul handlerului În timpul procesării pentru un anumit AML. Handler-ul este conceput pentru a implementa logica de conversie la nivel de obiect. De exemplu, atribuiți un anumit PQO unui anumit obiect în funcție de conținutul obiectului. Opțiuni:

  • InformațiiB date sau DataXDTO(în funcție de direcția schimbului):
  • la trimiterea - obiect ( DirectoryObject,DocumentObject);
  • la primire - o structură cu o descriere a obiectului XDTO.
  • Utilizarea PKO. Tip - Structura. Cheia conține un șir cu numele PCO și valoarea tipului boolean (Adevărat– se folosește PKO, Minciună– PKO nu este utilizat).
  • Schimb de componente.

SUB_<ИмяПОД>_Eșantionarea datelor. Funcția conține textul de gestionare La Descărcare. Handler-ul este conceput pentru a implementa un algoritm arbitrar pentru selectarea obiectelor de descărcat. Valoare returnată: o matrice de obiecte de descărcat. Matricea poate conține atât link-uri către obiecte infobase, cât și o structură cu date pentru încărcare. Opțiuni: Schimb de componente.

Proceduri PKO

Completați Regulile de conversie a obiectelor. O procedură de export care conține logica pentru completarea regulilor de conversie a obiectelor. Conține apeluri către alte proceduri care adaugă o anumită regulă de conversie a obiectelor la tabelul de reguli (vezi procedurile de mai jos Adăugați PKO). Opțiuni: Schimb de direcție, Reguli de conversie(un tabel de valori inițializat ca parte a sesiunii de schimb).

AdaugăPKO_<ИмяПКО>. Un set de proceduri care populează tabelul PKO cu reguli pentru anumite obiecte. Numărul de astfel de proceduri corespunde numărului de pachete software furnizate pentru această conversie în programul Data Conversion, versiunea 3.0. Opțiuni: Reguli de conversie(un tabel de valori inițializat ca parte a sesiunii de schimb).

PKO_<ИмяПКО>_WhenSendingData. Procedura conține textul handlerului La Trimitere pentru un anumit PKO. Handler-ul este folosit la încărcarea datelor. Proiectat pentru a implementa logica pentru conversia datelor conținute într-un obiect de bază de informații într-o descriere a unui obiect XDTO. Opțiuni:

  • InformațiiB date. Tip - DirectoryObject, DocumentObject. Obiectul de bază de informații în curs de procesare.
  • DataXDTO. Tip - Structura. Proiectat pentru a accesa datele obiectului XDTO.
  • Schimb de componente.
  • StackUploads. Tip - Matrice. Conține link-uri către obiecte descărcate, ținând cont de imbricare.

PKO_<ИмяПКО>_La conversia datelor XDTO. Procedura conține textul handlerului Când convertiți DataXDTO pentru un anumit PKO. Handler-ul este folosit la încărcarea datelor. Proiectat pentru a implementa logica arbitrară de conversie a datelor XDTO. Opțiuni:

  • DataXDTO. Tip - Structura. Proprietățile obiectului XDTO care au fost preprocesate pentru a le face mai ușor de accesat.
  • Date primite. Tip - DirectoryObject, DocumentObject. Un obiect de bază de informații format prin conversia datelor XDTO. Nu sunt înregistrate în baza de date cu informații.
  • Schimb de componente.

PKO_<ИмяПКО>_Înainte de înregistrarea datelor primite. Procedura conține textul handlerului Înainte de înregistrarea datelor primite pentru un anumit PKO. Handler-ul este folosit la încărcarea datelor. Proiectat pentru a implementa o logică suplimentară care trebuie efectuată înainte de înregistrarea unui obiect în baza de informații. De exemplu, dacă modificările sunt încărcate în datele de securitate a informațiilor existente sau ar trebui să fie încărcate ca date noi. Opțiuni:

  • Date primite. Tip - DirectoryObject, DocumentObject. Un element de date generat prin conversia datelor XDTO.

Înregistrate dacă aceste date sunt noi pentru baza de informații (parametrul InformațiiB date conţine valoarea Nedefinit).

In caz contrar Date primite a inlocui InformațiiB date(toate proprietățile de la Date primite Transferat către InformațiiB date).

Dacă nu este necesară înlocuirea standard a datelor de securitate a informațiilor cu datele primite, ar trebui să scrieți propria logică de transfer și apoi să setați parametrul Date primite sens Nedefinit:

  • InformațiiB date. Tip - DirectoryObject, DocumentObject. Un element de date din baza de informații care corespunde datelor primite. Dacă nu se găsesc date care să se potrivească, conține Nedefinit.
  • ConvertingProperties. Tip - Tabelul de valori. Conține reguli pentru conversia proprietăților obiectului curent, inițializate ca parte a sesiunii de schimb.
  • Schimb de componente.

Proceduri PCPD

Completați regulile de conversie a datelor predefinite. O procedură de export care conține logica pentru completarea regulilor de conversie a datelor predefinite. Opțiuni: Schimb de direcție, Reguli de conversie(un tabel de valori inițializat ca parte a sesiunii de schimb).

Algoritmi

În programul „Conversia datelor”, ediția 3.0, este posibil să se creeze algoritmi arbitrari care sunt apelați de la manipulatorii AML și PKPD. Numele, parametrii și conținutul algoritmilor sunt determinate la elaborarea regulilor.

Opțiuni

Completați ConversionParameters. O procedură de export în care se completează structura cu parametrii de conversie. Opțiuni: Opțiuni de conversie(tip - Structura).

Proceduri și funcții cu scop general

ExecuteManagerModuleProcedure. Opțiuni: ProcedureName(linia), Opțiuni(structura). O procedură de export, care are scopul de a apela o procedură de modul non-export, al cărei nume și parametri sunt primiți ca intrare. Vă permite să apelați o procedură sau o funcție pe o linie fără a utiliza o metodă A executa.

ExecuteManagerModuleFunction. Opțiuni: ProcedureName(linia), Opțiuni(structura). Funcție, scop similar ExecuteManagerModuleProcedure. Diferența este că apelează o funcție și returnează valoarea acesteia.

Ce este necesar pentru schimbul automat de date, fără a face modificări de configurare:
1) Prelucrarea „Interschimb universal de date în format XML”, care este inclus în majoritatea configurațiilor standard. Dacă nu este acolo, atunci este ușor să-l găsiți pe discul ITS sau pe Internet. În configurație se numește „Exchange universal de date XML”
2) Reguli de schimb de date. Creat folosind „Conversia datelor”. O meserie pe care va trebui să-l stăpânești. Există, de asemenea, cursuri video și tutoriale. De exemplu: http://programmist1s.ru/wp-content/uploads/2013/06/Konvertatsiya_dannyih._Metodika_rabotyi_i_primeryi.pdf
3) Prelucrare externă, care conțin procedurile de încărcare/descărcare. Să începem să-l creăm:
În modulul obiect este creată o prelucrare externă care va conține textul de mai jos (înlocuiți datele dumneavoastră cu bazele de date și utilizatori). Este recomandabil să creați un utilizator separat cu drepturi depline pentru a face schimb de date. Să numim procesarea, de exemplu, „Data Exchange.epf”.

Dacă LaunchParameter = „Încărcare” atunci Procesare=Processing.UniversalXMLDataExchange.Create(); //Setați parametrii necesari pentru încărcare (opțional pentru editare) Processing.ExchangeMode="Upload"; Processing.LoadDataInExchangeMode=Adevărat; Processing.WriteRegistersRecordSets = Adevărat; Processing.RememberLoadedObjects=Adevărat; Processing.UseSelectionByDateForAllObjects=True; Processing.UploadOnlyAllowed=Adevărat; //!Setați parametrii necesari pentru încărcare //Acești parametri trebuie reumpluți OBLIGATORIU //Setați restricții la încărcare în funcție de datele obiectului Processing.StartDate = CurrentDate() - 60*60*24*2; Processing.EndDate = "00010101"; //Dacă dorim să încărcăm date într-un fișier, setați-l la Fals. Dacă este adevărat, acesta va fi încărcat în baza de date receptoare Processing.DirectReadingVIBReceiver=True; //Dacă baza de date care primește datele încărcate este una de server, atunci False. If file - True Processing.InformationBaseForConnectionType=True; //!Parametrii necesari au fost completați //Dacă încărcăm datele într-un fișier If Not Processing.DirectReadingVIBReceiver Then Processing.ExchangeFileName = "C:\Inbox\OlegA\Conversion\upload.xml"; //Dacă încărcăm datele în baza de date Altfel Processing.PasswordInformationBaseForConnection="Admin"; Processing.ConnectionInfoBaseUser="supercool"; Processing.AuthenticationWindowsInformationBaseForConnection=Fals; //Dacă receptorul de date este o bază de server Dacă Processing.ConnectionInformationBaseType = False, atunci Processing.ConnectionInformationBaseServerName="MainServ"; Processing.InformationBaseNameOnServerForConnection="Buhia"; //Dacă receptorul de date este o bază de date de fișiere Altfel Processing.InformationBasePlatformVersionForConnection="V82"; Processing.InformationBaseDirectoryForConnection="C:\Inbox\OlegA\Clients\Zeus BP20\Zeus BP20"; endIf; endIf; //Acțiuni la înregistrare la încărcare conform planurilor de schimb Processing.RegistrationDeletionTypeofChangesForExchangeNodesAfterUpload=0; // 0 - nu anulați înregistrarea, // 1 - anulați înregistrarea Processing.LoadExchangeRules(); //DACĂ TREBUIE SĂ ÎNCĂRCĂȚI CONFORM PLANURILOR DE SCHIMB, ATUNCI ACTIVAȚI ACEST BLOC ȘI TRIMITEȚI PROPRIUL NOD PLAN DE SCHIMB //Pentru fiecare pagină din ciclul Processing.UploadRulesTable.Lines //Page.Enable=1; // Pentru fiecare pagină 1 din buclă PageLine // Line1.Enable=1; // Page1.LinkToExchangeNode=ExchangePlans.Full. FindByCode("BP20"); //EndCycle; //EndCycle; Procesare.Efectuați încărcare(); ShutdownSystem (Fals); ElseIf LaunchParameter = "Load" Then ExchangeProcessing = Processing.UniversalXMLDataExchange.Create(); ExchangeProcessing.ExchangeFileName = "C:\Inbox\OlegA\Upload.xml"; ExchangeProcessing.ExchangeMode = "Se încarcă"; ExchangeProcessing.OpenDownloadFile(True); ProcessExchange.ArchiveFile = Fals; ProcessExchange.PerformLoad(); ExchangeProcessing = Nedefinit; ShutdownSystem (Fals); endIf;

4) Încărcarea fișierelor bat, care va lansa 1C și procesare externă cu parametrul de lansare sub utilizator, care este destinat schimbului de date. Fișierul trebuie creat, de exemplu, în notepad++ cu codificare OEM (MS-Dos), altfel nu va funcționa. Să denumim fișierul, de exemplu, „BatVygruz.bat”. Textul va fi după cum urmează:

Dacă baza de date este un fișier:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\Inbox\KBF\1Cv8_Base_8.1\Zeus 83 BP3\Zeus 83 BP3" /N"Data Exchange Robot" /P "treceți " /DisableStartupMessages /RunModeManagedApplication /Execute"C:\Inbox\OlegA\DataExchange.epf" /C"Încărcare"
Explicatii:

b) C:\Inbox\KBF\1Cv8_Base_8.1\Zeus 83 BP3\Zeus 83 BP3 - calea către baza de date a fișierelor din care vom încărca date
c) Robot de schimb de date - Nume de utilizator sub care rulează 1C pentru schimbul de date
d) pass - parola utilizator
e) /DisableStartupMessages - închideți ferestrele pop-up când porniți 1C
e) /RunModeOrdinaryApplication - rulați clientul gros în modul normal
g) C:\Inbox\OlegA\Data Exchange.epf - calea către procesarea noastră, care va începe la pornire
h) Încărcare - trecem parametrul de lansare 1C, ne spune că trebuie să încărcăm date

Dacă baza de date este bazată pe server:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /S"Server1C/DataBase" /N"Data Exchange Robot" /P"pass" /DisableStartupMessages /RunModeManagedApplication /Execute"C:\Inbox\ Oleg\ Data Exchange.epf" /C"Încărcare"
Explicatii:
a) C:\Program Files (x86)\1cv82\common\1cestart.exe - calea către pornitorul 1C
b) Server1C/DataBase - serverul dumneavoastră pe care se află baza de date și numele bazei de date în sine de pe care încărcăm datele.
Parametrii rămași sunt similari cu versiunea fișierului bat

5) Descărcarea fișierului bat (dacă este necesar). Dacă decideți să încărcați date într-un fișier și nu direct în baza de date. Atunci vom avea nevoie și de acest articol (de obicei necesar).
Crearea unui fișier de descărcare Bat este similară cu fișierul de încărcare, dar numai parametrul de lansare este diferit, în loc de „Încărcare”, punem „Descărcare”

6) Stabiliți un program de lansareÎncărcarea/încărcarea fișierelor noastre Bat pe server. Pentru a face acest lucru, trebuie să mergeți la administrarea panoului de control de pe server și în planificatorul de activități să creați o nouă sarcină pentru a rula fișierul de descărcare la ora 23 în fiecare zi și o sarcină de descărcare care specifică fișierul de descărcare Bat (dacă necesar) la ora 04 de exemplu.