1c conversie de date 2.0 versiunea 2.1 8.2. Instrucțiuni video pentru conversie

Mecanismul de gestionare a evenimentelor este unul dintre cei cheie în tehnologia de conversie a datelor folosind „Data Conversion 2.0”. Utilizarea competentă și abil a acestui mecanism permite dezvoltatorului să rezolve rapid aproape orice problemă de conversie a datelor. Folosind tehnologia procesorului, selecția și conversia datelor sunt ușor de implementat diferite tipuri, selecții complexe de date, setarea parametrilor de conversie și multe alte sarcini.

Să luăm în considerare principiile de bază ale acestei tehnologii. În punctele cheie ale algoritmilor de descărcare și încărcare a datelor de procesare a schimbului universal, este posibil să se execute cod de program preluat din regulile de schimb de date și nu „conectat” în procesarea de descărcare sau încărcare a datelor. Configurația Data Conversion 2.0 oferă oportunități pentru integrarea unui astfel de cod de program în regulile de schimb de date.

Total diverse locuri Există mai mult de douăzeci de algoritmi de schimb de date în care poate fi executat cod de la terți. În consecință, configurația prevede crearea diverse tipuri handlere de evenimente.

Codul de gestionare a evenimentelor este „legat” de regulile obiectelor de schimb - elemente ale directoarelor: conversii, reguli de conversie a obiectelor, reguli de conversie a proprietăților, reguli de încărcare a datelor și reguli de ștergere a datelor. Desigur, codul de gestionare a evenimentelor trebuie să îndeplinească o serie de cerințe. În special, pentru a controla procesul de conversie în codul de gestionare, este necesar să se utilizeze variabile speciale - parametri. O descriere completă a tuturor tipurilor de handler de evenimente și a variabilelor disponibile poate fi găsită în informațiile despre handler de pe formularele corespunzătoare.

ATENŢIE!!!

Tehnologiile „Data Conversion 2.0” permit schimbul de date cu baze de informații implementate pe platformele „1C:Enterprise 7.7” și „1C:Enterprise 8.0”. Datorită particularităților platformei 1C:Enterprise 7.7, pregătirea regulilor de schimb de date folosind handlere de evenimente pentru baze de informare, implementat pe această platformă are o serie de caracteristici.

Pentru platforma 1C:Enterprise 7.7 nu este posibil să se execute cod arbitrar (analog cu funcția Run pentru V8). Dacă trebuie să utilizați handlere de evenimente pentru platforma V7.7, trebuie să înlocuiți textul de procesare pentru descărcarea sau încărcarea datelor cu textele de procesare care sunt emise de configurația „Conversia datelor 2.0”.

Dacă trebuie să migrați datele de la V7.7 la V8, atunci:

La descărcare, pe lângă fișierul de reguli în sine, sistemul generează text modul pentru procesarea V77Exp.ert cu funcții care implementează handlere de evenimente. Apoi, în configurator, trebuie să înlocuim modulul standard V77Exp.ert cu unul nou generat de „Data Conversion 2.0”.

Când dezvoltați soluții pentru schimbul de date pe platforma 1C:Enterprise 7.7, trebuie să vă amintiți acest „fleeac” important. Regulile dvs. vor funcționa corect numai dacă utilizați procesare modificată, al cărei text modul a fost creat la descărcarea regulilor de schimb de date. Există o excepție de la această regulă - dacă nu utilizați handlere de evenimente, atunci puteți utiliza procesarea standard.

Cu stimă, Vladimir Milkin(profesor și dezvoltator).

Conversia datelor 2.0 și 2.1 este o configurație tehnologică a 1C, implementată pe versiunile platformei de la 8.1 la 8.3.

Sarcina principală a instrumentului este de a scrie reguli pentru schimbul între soluțiile de aplicație 1C 8 și 7. Versiunea actuală a conversiei datelor de astăzi este 3.0.

Conversia datelor este o configurație foarte utilă, cu ajutorul ei, puteți rezolva nu numai problema transferului de informații de la o bază de informații la alta, ci și, de exemplu, conversia informațiilor într-o bază de date.

Configurația este foarte convenabilă de utilizat cu .

Conversia datelor va fi utilă oricărui programator: a avea abilitățile de a crea reguli de schimb este un plus serios pentru abilitățile profesionale.

Pentru a afla cum să lucrați cu configurația, soluția este cea mai potrivită probleme practice. Încercați să veniți cu sarcini pentru dvs., de exemplu: transferați unele informații dintr-o bază de date în alta, transformați un document de vânzare într-un document de chitanță, „conduceți” solduri curente De contabilitateîn documentul „introducerea soldurilor” și alte sarcini.

Va fi foarte util să înțelegeți regulile de schimb „standard” din 1C 8.3 acolo puteți găsi adesea exemple interesante de implementare a sarcinilor;

Pentru a înțelege elementele de bază, veți avea nevoie de materiale, le vom lua în considerare mai jos.

Instrucțiuni video pentru conversie

Pentru elementele de bază privind configurarea schimbului de date în 1C utilizând configurația „1C Data Conversion”, vedeți exemplul din videoclip:

Materiale, manuale pentru studiul 1C Data Conversion 2.0

Nu există prea multe materiale și documentație pe Internet, am încercat să adun cele mai importante și mai interesante materiale:

0. În primul rând, vă recomand cursul video gratuit de Ilya Leontyev, este disponibil la adresa legătură.

1. Aș sfătui în primul rând să folosiți ajutorul încorporat în configurare. Este foarte bine scris și bine implementat din punct de vedere tehnic:

2. A doua cea mai importantă sursă de informare este site-ul http://www.mykod.info/ (site-ul s-a închis), specializat în special în conversia datelor. Acolo poți descărca număr mare materiale de conversie.

3. Separat, aș dori să evidențiez manualul - (autor - Olga Kuznetsova).

1. Introducere.

2. Ce veți avea nevoie: Configurare 1C: Conversie de date 2.* și procesare din pachet. Pentru sarcini de exemplu, să luăm configurațiile 1C: Managementul comerțului 11 și 1C: BP 3.*.

Deci, pentru a dezvolta reguli de încărcare a datelor în 1C, veți avea nevoie de configurația 1C: Object Conversion 2, precum și de procesarea inclusă în pachet.

De exemplu, am implementat deja o bază de date de conversie și am lansat-o.

Vom scrie dezvoltarea regulilor de schimb între configurația 1C: Trade Management 11 și 1C: Enterprise Accounting 3 (reguli de schimb UT / ACCOUNT).

3. Vom avea nevoie de Procesare pentru a descărca structura și schimbul de metadate.

Primul lucru pe care trebuie să-l obțineți pentru dezvoltare sunt fișierele cu o structură de metadate. Acest lucru se realizează folosind procesarea pentru descărcarea structurii de metadate incluse în pachetul de conversie a obiectelor.

De fapt, în directorul de configurare dezambalat pentru configurații activate forme controlate suntem interesați să procesăm MD83Exp.epf. Dacă descărcarea trebuie făcută din configurații pe formulare obișnuite, atunci se utilizează procesarea MD82Exp.epf. Asta dacă, de exemplu, trebuie să obțineți o structură din configurații precum 1C: UT 10, 1C: Management întreprindere producătoare 1.3, 1C: Automatizare cuprinzătoare 1.1, 1C: Zup 2.5 și așa mai departe.

În plus, pentru a încărca și descărca date în 1C folosind regulile noastre, va trebui să procesați „Schimb universal de date în format XML” V8Exchan83.epf pentru configurații pe formulare gestionate, cum ar fi 1C: Trade Management 11.*, 1C BP 3, 1C: ERP 2. * și similare. Și, în consecință, V8Exchan83.epf - pentru configurații pe formulare obișnuite.

4. Încărcarea structurii de metadate a configurației 1C: Trade Management 11.3 și 1C: Enterprise Accounting 3.0.*

Să începem prin a descărca structura metadatelor din configurația 1C: Enterprise Accounting 3.
Să deschidem procesarea MD83Exp.epf

În forma de procesare există setări suplimentare, unde putem activa sau dezactiva opțiunea de descărcare a registrelor și mișcărilor în 1C. Există, de asemenea, posibilitatea de a alege unde va avea loc încărcarea: pe serverul 1C sau „pe client”. Specificați numele fișierului în care va fi încărcată structura de date. În mod similar, descarcăm structura de metadate a configurației Trade Management 11.

Acum trebuie să încărcați configurația în baza de date de conversie. Acest punct poate fi atins atât din lista de configurații, cât și din lista de conversii. Să pornim doar de pe desktop:

În caseta de dialog, încărcați structura BP:

Și în mod similar - structura de management al comerțului.

Odată ce descărcarea este finalizată, va apărea o casetă de dialog în care puteți specifica un nume care este convenabil pentru dvs.

6. Crearea regulilor de conversie în 1C pe exemplu concret sarcini.

Apoi, mergeți la „Setarea regulilor de obiect”, unde creăm o nouă setare.
În caseta de dialog pentru crearea conversiei, selectați configurația „sursă” și configurația „destinație” (pe care le-ați încărcat anterior) și faceți clic pe OK.

Deoarece în acest articol am plănuit să arăt creația „de la zero” și „fără gunoi”, vă reamintesc că nu creăm nimic automat. Fara prototipuri.

Nu vom face nimic în această casetă de dialog, doar faceți clic pe „Închidere”.

Să creăm reguli pentru încărcarea nu a unui document într-unul, ci a unui tip în altul, de exemplu, documentul Vânzări de bunuri și servicii din UT 11 cu cărțile de referință necesare în documentul Recepție de bunuri și servicii în BP 3.

Deci, creăm un nou PKO (regula pentru conversia obiectelor în 1C)

Selectați sursa Vânzări de bunuri și servicii și primirea de bunuri și servicii de destinație și faceți clic pe OK.
Va apărea o casetă de dialog în care refuzăm din nou crearea automată PKS (Reguli de conversie a proprietăților). În continuare, le vom selecta doar pe cele necesare.

Dar la propunerea de a crea DVP (reguli de încărcare a datelor), răspundem „Da”.

Sunt create PVD-uri, care se vor reflecta în procesarea schimbului universal XML pentru selecție:

Vor fi create și reguli de conversie a datelor cu reguli de conversie a proprietăților goale.

Mai mult, se poate observa că implicit software-ul este oferit pentru a fi căutat prin identificatorul de obiect intern. Acest lucru este indicat de lupa de lângă PCO. Vom face propria noastră căutare și o vom face după numărul și data documentului la începutul zilei.

Eliminam căutarea de către UIO:

Acum să începem să comparăm proprietățile (detaliile) necesare ale obiectului. Pentru a face acest lucru, faceți clic pe „Synchronize Properties” (eticheta „1” pe ecran). Înlăturăm crearea recursivă de reguli („2”). Eliminați toate detaliile marcate ("3"). Și vom alege singuri ce avem nevoie.

De exemplu, selectați ceea ce aveți nevoie:

Vă atrag atenția asupra faptului că vom transforma PKS-ul contrapărții în organizație și organizația în contraparte și vom compara, de asemenea, unele detalii care nu se potrivesc după nume, de exemplu, „Moneda” și „Document Valută".

Unde vedem că nu există încă reguli de conversie.

Să începem să trecem prin detalii și să le descriem. Mai întâi, am configurat o căutare a documentelor așa cum am scris mai devreme, încărcăm și căutăm un document la începutul datei și modificăm numerotarea. Vom înlocui primele trei caractere cu prefixul nostru „UTB”. Și deoarece numerotarea în BP și UT ​​este de 11 caractere fiecare, facem un număr compus: prefixul nostru și 8 caractere din sursă. Un exemplu în captura de ecran de mai jos.

Încărcăm întotdeauna documente descărcate și fără mișcare. Presupunem că documentele vor fi procesate în receptor după verificarea de către utilizator.

Pentru a face acest lucru, setând PKS ca neefectuat, 0 sau 1, îl folosim ca boolean.

Folosind moneda ca exemplu, creăm o regulă de conversie a obiectelor pentru PKS. În același timp, credem că există monede în ambele baze de date și ar trebui sincronizate prin cod. Prin urmare, nu vom crea toate PKS în PQS valutar, ci vom adăuga doar un cod de căutare. Aceste. Refuzam oferta de a crea un PKS pentru obiect.

Regula de conversie creată a fost înlocuită în PQR-ul documentului pentru PKS. Și regula implicită în sine este oferită de un identificator unic. O reparăm, căutăm codul și setăm proprietatea pentru a nu crea un obiect nou.

Ca rezultat, obținem următoarea opțiune:

Apoi, prin analogie, creăm PKO și PKS pentru detaliile rămase. Mai mult, căutăm o organizație după contraparte și invers după TIN. Cam așa arată cu detalii minime (puteți adăuga dacă este necesar).

Pentru acordurile de contraparte PKO, căutăm după contrapartea PKS, nume și proprietar.

Să vedem cum să specificăm valoarea necesară în tipul de enumerare în PKS. De exemplu, atributul „Tip de operație”. Aici puteți utiliza diverse condiții și valori de înlocuire. De exemplu, avem nevoie ca „tipul operațiunii” să fie întotdeauna descărcat „Marfa”, în acest caz este suficient să scrieți valoarea necesară în linia „frunte”.

Mai jos este prezentat modul de instalare fără dificultate și în majoritatea cazurilor PCS pentru Multiplicitatea decontării reciproce, Rata de decontare reciprocă, Cont contabil.

Pentru PKO Nomenklatura, vom părăsi căutarea după identificatorul unic intern. Dar permiteți-mi să vă atrag atenția asupra modului în care vă puteți redefini grupul. De exemplu, suntem de acord ca un articol nou să fie descărcat din configurația 1C: Trade Management 11, dar este necesar ca articolul să fie colectat în anumit grup„Grupul nostru”.

Pentru a implementa această sarcină, creăm un alt PKO. Să-l numim „NomenclatureParent”, pe care îl vom indica în PCS-ul părintelui în regula de conversie.

Am configurat două căutări: după nume, unde indicăm strict numele grupului nostru, iar proprietatea necesară a atributului „Acesta este un grup” este setată la adevărat.

Deoarece am decis că toate articolele noastre se încadrează în grupul nostru, nu este nevoie să descarcăm grupuri din UT 11 la descărcare. Pentru a face acest lucru, în software-ul Nomenclatură din handlerul de evenimente „Înainte de descărcare”, vom seta un filtru care. nu trebuie să descarce grupuri „Eșec = Sursă Acesta este un grup;”.

În DRP (reguli de încărcare a datelor) pentru vânzările de produse și servicii, vom adăuga un filtru, astfel încât documentele marcate pentru ștergere să nu fie încărcate. Pentru a face acest lucru, în VDP în handlerele de evenimente „Înainte de descărcare”, vom scrie filtrul „Eșec = Object.DeletionMark;”.


Să salvăm regulile dezvoltate într-un fișier.


7. Pentru a rezuma: Încărcarea și încărcarea datelor utilizând regulile de schimb de date dezvoltate.

Deschideți în 1C: Managementul comerțului 11 procesarea „Schimb universal de date în format XML” V8Exchan83.epf.

Descărcarea a fost finalizată, acum folosim aceeași procesare pentru a încărca în 1C: Enterprise Accounting 3.


Încărcare finalizată. Să verificăm cum s-a încărcat. Deci, documentul este încărcat, așa cum ne-am dorit - organizația noastră este încărcată în contraparte, iar contrapartea în organizație. Conturile de contabilitate sunt toate descărcate și instalate. Am primit numărul documentului cu prefixul nostru și la începutul zilei. Toate detaliile care au fost furnizate au fost completate.

Verificăm încărcarea articolelor. Vedem că totul a ieșit așa cum ne-am plănuit.


Am creat și completat detaliile așa cum ne-am propus. Există multe subtilități în conversie și câteva lucruri simple, dar necesare, care ajută la scrierea corectă a conversiei. Și acest lucru vă permite să minimizați erorile, să nu stricați datele existente și să scăpați de gunoiul inutil. Acesta este unul dintre cele mai multe exemple simple. De asemenea, puteți converti un obiect în mai multe sau, dimpotrivă, mai multe în unul.

Acum există conversia datelor 3, rezolvă alte probleme. Prin urmare, este necesară și conversia 2. Mult succes tuturor la învățare și stăpânire.

Bineînțeles, dacă ești programator și aceasta este munca ta principală, poți încerca să scrii singur conversia. Dar dacă nu, atunci ar trebui să apreciezi timpul tău în domeniul tău de activitate și această sarcină cereți profesioniștilor să o facă.

Migrarea datelor între diferite configurații nu este o sarcină trivială. Ca întotdeauna, există mai multe soluții, dar nu toate sunt optime. Să încercăm să înțelegem nuanțele transferului de date și să alegem o strategie universală pentru rezolvarea unor astfel de probleme.

Problema migrării datelor (vorbim doar despre produsele companiei 1C) de la o soluție la alta nu a apărut ieri. Compania 1C înțelege perfect cu ce dificultăți se confruntă dezvoltatorii atunci când creează migrații, așa că încearcă în toate modurile posibile să ajute cu instrumente.

În timpul dezvoltării platformei, compania a introdus o serie de instrumente universale, precum și tehnologii care simplifică transferul de date. Sunt încorporate în tot soluții standard iar problema migraţiilor între configuraţii identice a fost în general rezolvată. Victoria este confirmată încă o dată de integrarea strânsă a soluțiilor standard.

Odată cu migrarea între soluții non-standard, situația este ceva mai complicată. O selecție largă de tehnologii le permite dezvoltatorilor să aleagă în mod independent modalitatea optimă de a rezolva o problemă din punctul lor de vedere.

Să ne uităm la unele dintre ele:

  • schimb prin fișiere text;
  • utilizarea planurilor de schimb;
  • etc.

Fiecare dintre ele are propriile sale avantaje și dezavantaje. Pentru a rezuma, principalul dezavantaj va fi verbozitatea sa. Auto-implementare Algoritmii de migrare sunt plini de costuri semnificative de timp, precum și de un proces lung de depanare. Nici nu vreau să vorbesc despre sprijin suplimentar pentru astfel de decizii.

Complexitatea și costul ridicat al asistenței au determinat compania 1C să creeze o soluție universală. Tehnologii care fac posibilă simplificarea cât mai mult posibil a dezvoltării și suportului migrațiilor. Drept urmare, ideea a fost implementată sub forma unei configurații separate – „Conversia datelor”.

Conversia datelor - soluție standard, configurație independentă. Orice utilizator cu un abonament „ITS:Prof” poate descărca acest pachet complet gratuit de pe site-ul de asistență pentru utilizatori sau de pe discul ITS. Instalarea se realizează într-un mod standard - ca toate celelalte soluții standard de la 1C.

Acum puțin despre avantajele soluției. Să începem cu cel mai important lucru - versatilitatea. Soluția nu este adaptată pentru anumite configurații/versiuni ale platformei. Funcționează la fel de bine atât cu configurațiile standard, cât și cu cele personalizate. Dezvoltatorii au o tehnologie universală și o abordare standardizată pentru a crea noi migrații. Versatilitatea soluției vă permite să pregătiți migrări chiar și pentru alte platforme decât 1C:Enterprise.

Al doilea mare plus îl reprezintă ajutorul vizual. Migrațiile simple sunt create fără programare. Da, da, fără o singură linie de cod! Numai pentru asta, merită să petreci timp învățând tehnologia o dată și apoi să folosești abilități neprețuite în mod repetat.

Al treilea avantaj pe care l-aș remarca este absența restricțiilor privind distribuția datelor. Dezvoltatorul însuși alege metoda de livrare a datelor către configurația receptorului. Există două opțiuni disponibile imediat: încărcarea într-un fișier xml și conexiune directă la baza de informații (COM/OLE).

Studiind arhitectura

Știm deja că conversia datelor poate face minuni, dar nu este încă pe deplin clar care sunt avantajele tehnice. Primul lucru pe care trebuie să-l înțelegeți este că orice migrare (conversie) a datelor se bazează pe reguli de schimb. Regulile de schimb sunt un fișier xml obișnuit care descrie structura în care vor fi încărcate datele din securitatea informațiilor. Serviciul de procesare care încarcă/descărcă date analizează regulile de schimb și realizează încărcarea pe baza acestora. În timpul încărcării, are loc procesul invers.

Configurația „CD” este un fel de constructor vizual cu ajutorul căruia dezvoltatorul creează reguli de schimb. Nu știe cum să descarce date. Procesarea suplimentară a serviciilor externe inclusă în pachetul de distribuție CD este responsabilă pentru aceasta. Există mai multe dintre ele (XX în numele fișierului este numărul versiunii platformei):

  • MDXXExp.epf- procesarea vă permite să încărcați o descriere a structurii bazei de informații într-un fișier xml. Descrierea structurii este încărcată în CD pentru o analiză ulterioară și crearea regulilor de schimb.
  • V8ExchanXX.epf- incarca/descarca date din baza de informatii in conformitate cu regulile de schimb. În majoritatea configurațiilor tipice, procesarea este prezentă imediat (consultați elementul de meniu „Service”). Procesarea este universală și nu este legată de anumite configurații/reguli.

Bine, acum, pe baza tuturor celor de mai sus, să definim etapele dezvoltării unei noi conversii:

  1. Definirea sarcinii. Este necesar să înțelegeți clar ce date trebuie transferate (din ce obiecte de configurare) și, cel mai important, unde să le transferați.
  2. Pregătirea descrierilor structurilor de configurare (Source/Sink) pentru încărcarea ulterioară în CD. Problema este rezolvată prin procesarea serviciului MDXXExp.epf.
  3. Încărcarea descrierilor pregătite ale structurilor în securitatea informațiilor.
  4. Crearea regulilor de schimb folosind un instrument vizual CD.
  5. Efectuarea încărcării/descărcării conform regulilor create de conversie a datelor utilizând procesarea V8ExchanXX.epf.
  6. Reguli de schimb de depanare (dacă este necesar).

Cea mai simplă conversie

Pentru demonstrație vom avea nevoie de două configurații implementate. Am decis să merg cu opțiunea: „Trade Management” ediția a 10-a și o mică soluție scrisă acasă. Sarcina va fi transferarea datelor din configurația standard „UT”. Pentru concizie, să numim soluția auto-scrisă „Sink”, iar managementul comerțului „Sursă”. Să începem să rezolvăm problema transferând elemente din directorul „Nomenclatură”.

În primul rând, să aruncăm o privire asupra schemei de conversie a datelor și să recitim lista de acțiuni care trebuie făcute. Apoi lansăm configurația „Sursă” și deschidem procesarea serviciului MD82Exp.epf în ea.

Interfața de procesare nu are o mulțime de setări. Utilizatorul trebuie doar să indice tipurile de obiecte de metadate care nu vor fi incluse în descrierea structurii. În cele mai multe cazuri, aceste setări nu trebuie modificate, deoarece Nu are rost în special în descărcarea mișcărilor folosind registre de acumulare (de exemplu).

Este mai corect să formați mișcarea în timp ce țineți documente în receptor. Toate mișcările vor fi efectuate chiar de document după transfer. Al doilea argument în apărarea setărilor implicite este reducerea dimensiunii fișierului odată cu încărcarea.

Unele documente (în special în configurațiile standard) generează mișcări în mai multe registre. Descărcarea tuturor acestor lucruri va face ca fișierul XML rezultat să fie prea mare. Acest lucru poate complica transportul și încărcarea ulterioară în baza receptorului. Cu cât fișierul de date este mai mare, cu atât veți avea nevoie de mai mult RAM să-l proceseze. În timpul practicii mele, am avut ocazia să întâlnesc fișiere de încărcare indecent de mari. Astfel de fișiere au refuzat complet să fie analizate folosind instrumente standard.

Deci, lăsăm toate setările implicite și încărcăm descrierea configurației într-un fișier. Repetăm ​​o procedură similară pentru a doua bază.

Deschideți CD-ul și selectați în meniul principal „Directoare” -> „Configurații”. Directorul stochează descrieri ale structurilor tuturor configurațiilor care pot fi folosite pentru a crea conversii. Încărcăm descrierea configurației o dată și apoi o putem folosi de mai multe ori pentru a crea diferite conversii.

În fereastra directorului, faceți clic pe butonul „ Adăuga” iar în fereastra care apare, selectați fișierul care descrie configurația. Bifați caseta de selectare „Încărcare într-o nouă configurație” și faceți clic pe butonul „Încărcare”. Efectuăm acțiuni similare cu descrierea structurii celei de-a doua configurații.

Acum sunteți gata să creați reguli de schimb. În meniul principal al CD-ului, selectați „Directoare” -> „Conversii”. Adăuga element nou. În fereastra pentru crearea unei noi conversii, trebuie să specificați: configurația sursă (selectați UT) și configurația destinației (selectați „Receiver”). Apoi, deschideți fila „Avansat” și completați următoarele câmpuri:

  • nume de fișier cu reguli de schimb - regulile de schimb create vor fi salvate sub acest nume. Puteți schimba oricând numele fișierului, dar cel mai bine este să îl setați acum. Acest lucru va economisi timp în viitor. Am numit regulile pentru exemplul demonstrativ: „rules-ut-to-priemnik.xml”.
  • nume - numele conversiei. Numele poate fi absolut orice, m-am limitat la „Demo. UT la receptor.”

Asta este, faceți clic pe „Ok”. Imediat apare o fereastră în fața noastră prin care ne cere să creăm toate regulile automat. Fiind de acord cu o astfel de ofertă tentantă, comandantul va avea comanda de a analiza automat descrierea configurațiilor selectate și de a genera independent reguli de schimb.

Să punctăm „iurile” imediat. Expertul nu va putea genera nimic serios. Cu toate acestea, această posibilitate nu trebuie ignorată. Dacă este necesar să se stabilească un schimb între configurații identice, atunci serviciile unui specialist vor fi foarte utile. Pentru exemplul nostru, modul manual este de preferat.

Să aruncăm o privire mai atentă la fereastra „Setări reguli de schimb”. Interfața poate părea puțin confuză - un număr mare de file pline de comenzi. De fapt, totul nu este atât de dificil, începi să te obișnuiești cu această nebunie după câteva ore de lucru cu aplicația.

În această etapă, ne interesează două file: „Reguli de conversie a obiectelor” și „Reguli de încărcare a datelor”. La început, trebuie să configuram regulile de potrivire, adică comparați obiecte din două configurații. Pe al doilea, determinați posibilele obiecte care vor fi disponibile utilizatorului pentru încărcare.

În a doua jumătate a filei „Reguli de conversie a obiectelor” există un panou suplimentar cu două file: „Conversie proprietăți” și „ Conversia valorilor" Primul va selecta proprietățile (detaliile) obiectului selectat, iar al doilea este necesar pentru lucrul cu valori predefinite (de exemplu, elemente de director predefinite sau elemente de enumerare).

Grozav, acum să creăm reguli de conversie pentru directoare. Puteți efectua această acțiune în două moduri: utilizați Expertul de sincronizare a obiectelor (butonul „”) sau adăugați manual corespondență pentru fiecare obiect.

Pentru a economisi spațiu, vom folosi prima opțiune. În fereastra expertului, debifați grupul „ Documente” (pe noi ne interesează doar directoare) și extindeți grupul ” Directoare" Derulăm cu atenție lista și ne uităm la numele cărților de referință care pot fi comparate.

În cazul meu, există trei astfel de directoare: Nomenclatură, Organizații și Depozite. Există, de asemenea, un director numit Clienți, care servește același scop ca „ Contrapartide"din configurare" UT" Adevărat, maestrul nu le-a putut compara din cauza numelor diferite.

Putem rezolva singuri această problemă. Găsim în fereastră „ Potriviri de obiecte» carte de referință « Clienții„, iar în coloana „Sursă” selectați directorul „Contrapărți”. Apoi bifați caseta din coloana „Tip” și faceți clic pe butonul „Ok”.

Expertul de sincronizare a obiectelor va oferi să creeze automat reguli pentru conversia proprietăților tuturor obiectelor selectate. Proprietățile vor fi comparate după nume și pentru demonstrația noastră acest lucru va fi destul de suficient, suntem de acord. Următoarea întrebare va fi o propunere de a crea reguli de descărcare. Să fim și de acord cu asta.

Baza pentru regulile de schimb este gata. Am selectat obiectele pentru sincronizare, iar regulile pentru conversia proprietăților și regulile de încărcare au fost create automat. Să salvăm regulile de schimb într-un fișier, apoi să deschidem „Sursa” IB (în cazul meu este UT) și să lansăm procesarea serviciului în el V8Exchan82.epf.

În primul rând, în fereastra de procesare, selectați regulile de schimb pe care le-am creat. Răspundem afirmativ la întrebarea regulilor de încărcare. Procesarea va analiza regulile de schimb și va construi un arbore de obiecte cu același nume disponibile pentru încărcare. Pentru acest arbore, putem configura tot felul de selecții sau noduri de schimb, modificând care avem nevoie pentru a selecta datele. Dorim să descarcăm absolut toate datele, deci nu este nevoie să instalăm filtre.

După finalizarea procesului de încărcare a datelor într-un fișier, accesați IB „ Receptor" Deschidem și procesarea în ea V8Exchan82.epf, doar că de această dată mergem la fila „Încărcare date”. Selectați fișierul de date și faceți clic pe butonul „Descărcare”. Gata, datele au fost transferate cu succes.

Probleme din lumea reală

Primul demonstrație ar putea induce în eroare. Totul pare destul de simplu și logic. De fapt, acest lucru nu este în întregime adevărat. ÎN munca adevarata Apar probleme care sunt dificil sau complet imposibil de rezolvat folosind numai mijloace vizuale (fără programare).

Pentru a nu fi dezamăgit de tehnologie, am pregătit mai multe probleme din viața reală. Cu siguranță le vei întâlni la serviciu. Nu arată atât de banale și te fac să privești conversia datelor dintr-un unghi nou. Luați în considerare cu atenție exemplele prezentate și nu ezitați să le utilizați ca fragmente atunci când rezolvați probleme reale.

Sarcina nr. 1. Completați detaliile lipsă

Să presupunem că trebuie să transferăm directorul „ Contrapartide" Receptorul are un director similar „Clienți” în acest scop. Este complet potrivit pentru stocarea datelor, dar are recuzită „ Organizare”, care vă permite să separați contrapărțile prin apartenența la organizație. În mod implicit, toate contrapărțile trebuie să aparțină organizației curente (aceasta poate fi obținută din constanta cu același nume).

Există mai multe soluții la problemă. Vom lua în considerare opțiunea de a completa detaliile „ Organizare„chiar în baza de date” Receptor”, adică la momentul încărcării datelor. Organizația actuală este stocată într-o constantă, prin urmare, nu există bariere în obținerea acestei valori. Să deschidem regula de conversie a obiectelor (denumită în continuare PKO) „ Clienții” (dublu clic pe obiect) și în vrăjitorul de configurare a regulilor, accesați secțiunea „Manetari de evenimente”. În lista de manipulatori vom găsi „ După descărcare”.

Să descriem codul pentru obținerea organizației curente și apoi să-l atribuim detaliilor. În momentul în care este declanșat handlerul „După încărcare”, obiectul va fi complet format, dar nu este încă scris în baza de date. Nimeni nu ne interzice să o modificăm la discreția noastră:

Dacă NU Object.ThisGroup, atunci Object.Organization = Constants.CurrentOrganization.Get(); endIf;

Inainte de a completa detaliile " Organizare„Este necesar să se verifice valoarea atributului” Acesta este un grup" Pentru cartea de referință " Clienții„Funcția ierarhică este setată, așa că este necesară verificarea grupului. Completați orice detalii într-un mod similar. Asigurați-vă că citiți ajutorul pentru alte opțiuni de gestionare " După Încărcare" De exemplu, printre ele se numără parametrul „ Refuz" Dacă îi atribuiți valoarea „True”, atunci obiectul nu va fi scris în baza de date. Astfel, devine posibilă limitarea obiectelor care pot fi scrise în momentul încărcării.

Sarcina nr. 2. Detalii pentru registrul de informații

În directorul „ Contrapartide„Configurații UT, detalii disponibile” Cumpărător" Și " Furnizor" Ambele detalii sunt de tipul „ boolean” și sunt folosite pentru a determina tipul de contrapartidă. În IB „ Receptor”, la directorul “ Clienții„Nu există detalii similare, dar există un registru de informații” Tipuri de Clienti" Îndeplinește o funcție similară și poate stoca mai multe atribute pentru un client. Sarcina noastră este să transferăm valorile detaliilor în intrări separate în registrul de informații.

Din păcate, mijloacele vizuale singure nu pot face față nici aici. Să începem cu puțin, să creăm un nou software pentru registrul de informații „ Tipuri de Clienti" Nu cita nimic ca sursă. Evitați crearea automată a regulilor de încărcare.

Următorul pas este să creați regulile de încărcare. Accesați fila corespunzătoare și faceți clic pe „ Adăuga" În fereastra pentru adăugarea regulilor de încărcare, completați:

  • Metoda de eșantionare. Schimbați la „Algoritm arbitrar”;
  • Regula de conversie. Selectați registrul de informații „Tipuri de clienți”;
  • Codul (numele) regulii. Notați-l ca „Încărcarea tipurilor de clienți”;

Acum trebuie să scrieți cod pentru a selecta datele pentru încărcare. Parametrul „ Eșantionarea datelor" Putem plasa o colecție cu un set de date pregătit în ea. Parametrul " Eșantionarea datelor” poate lua sensuri diferite- rezultatul interogării, selecția, colecțiile de valori etc. O inițializam ca un tabel de valori cu două coloane: client și tip client.

Mai jos este codul pentru gestionarea evenimentelor „ Înainte de prelucrare" Inițializează parametrul „ Eșantionarea datelor” urmat de completarea datelor din directorul ” Contrapartide" Aici ar trebui să fiți atenți la completarea rubricii „ Tipul de client" În „UT” atributele noastre sunt de tip „Boolean”, iar destinatarul este o enumerare.

În această etapă, nu le putem converti în tipul necesar (nu este în UT), așa că deocamdată le vom lăsa sub formă de șiruri. Nu trebuie să faceți acest lucru, dar vreau să vă arăt imediat cum să proiectați un tip lipsă din sursă.

DataFetch = New ValueTable(); DataSelection.Columns.Add("Client"); DataSelection.Columns.Add("ClientType"); SelectingDataFromDirectory = Directories.Accounts.Select(); În timp ce SelectingDataFromDirectory.Next() Buclă dacă SelectingDataFromDirectory.ThisGroup Apoi Continuați;

endIf; Dacă Selectarea datelor din Directory.Buyer, atunci NewRow = Data Selection.Add(); NewRow.Client = DataFetchFromDirectory.Link; Tipuri de Clienti” reguli de conversie a proprietății: client și tip de client. Vom lăsa sursa goală, iar în handlerul de evenimente „Înainte de descărcare” vom scrie:

//Pentru proprietatea „Client” Value = Source.Client; //Pentru proprietatea „ClientType” If Source.Client = „Buyer” Then Expression = „Enumerations.ClientTypes.Buyer” ElseIf Source.Client = „Supplier” Then Expression = „Enumerations.ClientTypes.Supplier”; endIf;

În listă, detaliile sunt completate pe baza eșantionului de date selectat. Pur și simplu trecem clientul ca link și scriem tipul de client în parametrul „ Expresie" Datele acestui parametru vor fi interpretate în receptor, iar atunci când este executat, recuzita va fi completată cu valoarea corectă din enumerare.

Asta e, regulile de schimb sunt gata. Exemplul considerat s-a dovedit a fi destul de universal. O abordare similară este adesea folosită la migrarea datelor din configurațiile create pe platforma 7.7. Un exemplu izbitor în acest sens este transferul de detalii periodice.

Sarcina nr. 3. Trucuri cu piese de masă

Adesea, întâlniți sarcini care necesită postarea rândurilor dintr-o secțiune de tabel în mai multe. De exemplu, în configurația inițială, serviciile și bunurile sunt înregistrate într-o parte tabulară, iar în receptor, stocarea acestor entități este separată. Prin mijloace vizuale iar problema nu poate fi rezolvata. Aici este convenabil să luăm ca bază soluția celei de-a doua probleme.

Facem o regulă pentru descărcarea datelor, specificăm un algoritm arbitrar, iar în handlerul „Înainte de descărcare” scriem o solicitare pentru a obține date din partea tabelară.

Pentru a economisi spațiu, nu voi furniza codul (puteți oricând să vă referiți la sursele) solicitării - nu este nimic neobișnuit în ea. Sortăm selecția rezultată și plasăm rezultatele sortate în parametrul deja familiar „ Eșantionarea datelor" Este din nou convenabil să folosiți un tabel de valori ca colecție:

DataFetch = New ValueTable(); //Va fi o altă parte a tabelului aici Data Selection.Columns.Add(„Produse”); //Aici va exista și o parte tabelară Data Selection.Columns.Add(„Servicii”); SelectionData.Columns.Add(„Link”);

Sarcina nr. 4. Transferarea datelor la o operațiune

Dacă o organizație folosește mai multe sisteme de contabilitate, atunci mai devreme sau mai târziu va fi nevoie să migreze datele cu generarea ulterioară a tranzacțiilor.

În configurația „ BP„Există un document universal” Operațiunea” și este ideal pentru a forma mai multe fire. Există o singură problemă - documentul este realizat cu viclenie, iar datele nu pot fi transferate în el atât de ușor.

Veți găsi un exemplu de astfel de conversie în codul sursă al articolului. Cantitatea de cod s-a dovedit a fi destul de mare, așa că nu are rost să o publicăm împreună cu articolul. Permiteți-mi doar să spun că încărcarea din nou folosește un algoritm arbitrar în regulile de încărcare a datelor.

Sarcina nr. 5. Sincronizarea datelor prin mai multe detalii

Ne-am uitat deja la câteva exemple, dar încă nu am vorbit despre sincronizarea obiectelor în timpul migrării. Să ne imaginăm că trebuie să transferăm contrapărți și unele dintre ele sunt probabil în baza de date a receptorilor. Cum să transferați date și să preveniți apariția duplicatelor? În acest sens, CD-ul oferă mai multe modalități de sincronizare a obiectelor transferate.

Primul este prin identificatorul unic. Multe obiecte au un identificator unic care garantează unicitatea într-un tabel. De exemplu, în directorul „ Contrapartide” nu pot exista două elemente cu aceiași identificatori. CD face calcule pentru aceasta și pentru toate PCO create, o căutare după identificator este imediat activată în mod implicit. Când creați PCO, ar fi trebuit să observați imaginea unei lupe lângă numele obiectului.

Sincronizarea folosind un identificator unic este o metodă fiabilă, dar nu este întotdeauna adecvată. La fuzionarea directoarelor „ Contrapartide” (din mai multe sisteme diferite) nu va ajuta prea mult.

În astfel de cazuri, este mai corect să sincronizați obiectele după mai multe criterii. Este mai corect să căutați contrapărți după INN, KPP, Nume sau împărțiți căutarea în mai multe etape.

Conversia datelor nu limitează dezvoltatorul în definirea criteriilor de căutare. Să ne uităm la un exemplu abstract. Să presupunem că trebuie să sincronizăm directoarele „ Contrapartide” din diferite baze de informații. Să pregătim software-ul și în setările regulilor de conversie a obiectelor, bifați „ Continuați căutarea în câmpurile de căutare dacă obiectul receptor nu este găsit prin identificator" Cu această acțiune, am definit imediat două criterii de căutare - printr-un identificator unic și câmpuri personalizate.

Avem dreptul să alegem singuri câmpurile. Bifând TIN, KPP și Nume, vom indica imediat mai multe criterii de căutare. Confortabil? Chiar, dar din nou, acest lucru nu este suficient. Dacă vrem să schimbăm criteriile de căutare? De exemplu, mai întâi căutăm combinația TIN+KPP, iar dacă nu găsim nimic, atunci începem să ne încercăm norocul cu numele.

Un astfel de algoritm este destul de capabil de a fi implementat. În gestionarea evenimentelor „ Câmpuri de căutare” putem specifica până la 10 criterii de căutare și pentru fiecare dintre ele definim propria compoziție a câmpurilor de căutare:

Dacă SearchOptionNumber = 1, atunci SearchPropertyNameString = „TIN, KPP”; OtherwiseIfSearchOptionNumber = 2 ThenSearchPropertyNameString = „Nume”; endIf;

Există întotdeauna mai multe soluții

Orice sarcină are mai multe soluții, iar transferul de date între diferite configurații nu face excepție. Fiecare dezvoltator are dreptul de a-și alege propria cale de soluție, dar dacă trebuie să dezvolți constant migrații complexe de date, atunci recomand cu tărie să acordați atenție „”. S-ar putea să trebuiască să investești resurse (timp) în formare la început, dar acestea vor plăti mai mult decât primul proiect mai mult sau mai puțin serios.

În opinia mea, compania 1C ignoră în mod nedrept subiectul utilizării conversiei datelor. Pe toată durata existenței tehnologiei, a fost publicată o singură carte despre ea: „1C: Enterprise 8. Conversia datelor: schimb între soluții de aplicație”. Cartea este destul de veche (2008), dar este totuși indicat să vă familiarizați cu ea.

Cunoașterea platformelor este încă necesară

„ este un instrument universal, dar dacă intenționați să îl utilizați pentru a crea migrații de date din configurații dezvoltate pentru platforma 1C: Enterprise 7.7, atunci va trebui să petreceți timp familiarizându-vă cu limbajul încorporat. Sintaxa și ideologia limbii sunt foarte diferite, așa că va trebui să petreceți timp învățând. În rest principiul rămâne același.




Top