Cum se configurează smartphone-uri și PC-uri. Portal de informare

Conversia datelor de configurare 1s 8.3. Continuați să lucrați cu asistentul

Probabil ca fiecare specialist 1C a intampinat nevoia de a transfera date de la o baza de informatii la alta. În cazul în care configurațiile sunt diferite, trebuie să scrieți reguli de conversie a datelor. Aceste reguli sunt create în configurația 1C „Conversie de date”.

De asemenea, datele pot fi transferate folosind . Multe configurații 1C 8.3 au funcționalitate standard pentru configurarea sincronizării datelor între diferite configurații și integrare perfectă cu 1C Document Flow.

Dar atunci când datele trebuie să fie transferate între configurații absolut identice, vă puteți simplifica sarcina și puteți utiliza procesarea standard pentru încărcare și descărcare prin XML. Vă rugăm să rețineți că această metodă, precum conversia datelor, compară obiectele între ele printr-un identificator unic (GUID) și nu după nume.

Puteți descărca această procesare pe discul ITS sau folosind link-urile:

Este universal și potrivit pentru orice configurație.

Să luăm în considerare un exemplu de descărcare a directorului „Nomenclatură” dintr-o bază de informații 1C 8.3 Contabilitate 3.0 în alta. O condiție prealabilă va fi selecția de către părinte (grup) „Prelucrarea lemnului”.

Încărcarea datelor din 1C în XML

Accesați baza de informații din care vor fi descărcate datele (sursă). Asigurați-vă că le verificați, ținând cont de toate condițiile posibile pentru a evita consecințele nedorite.

Procesarea de încărcare și descărcare a datelor XML deschise (Ctrl+O).

Suntem interesați de fila „Încărcare”. Mai întâi de toate, specificați numele fișierului în care vor fi încărcate datele și calea pentru salvare. În acest caz, datele sunt încărcate „Într-un fișier de pe server”.

În antetul de procesare puteți configura perioada pentru care se va efectua selecția. De asemenea, pentru registrele periodice, puteți specifica metoda de aplicare a selecției pe perioadă. Dacă este necesar să încărcați mișcări împreună cu documente, este setat steag-ul corespunzător. În acest caz, supraîncărcăm directorul, deci nu este nevoie să configurați nimic în antet.

Să trecem la selectarea datelor pentru încărcare. În partea tabelară a formularului de procesare, bifați casetele de selectare pentru obiectele de configurare pe care trebuie să le transferați.

Coloana „Descărcați dacă este necesar” înseamnă dacă este necesară supraîncărcarea acestui obiect dacă este referit de atributul directorului pe care îl supraîncărcăm. De exemplu, poziția articolului pe care îl încărcați are o unitate de măsură care nu se află în baza de date țintă. Dacă steagul din coloana „Încărcare dacă este necesar” este bifat vizavi de cartea de referință cu unitățile de măsură, va fi creată o nouă poziție. În caz contrar, valoarea atributului va fi „<Объект не найден>" și identificatorul său unic.

Într-un caz simplu, fără selecții, setarea de supraîncărcare a articolului va arăta astfel.

În acest exemplu, trebuie să selectați numai elementele care se află în folderul „Prelucrarea lemnului”.

Procesarea similară pentru 8.2 vă permite să setați selecții pentru fiecare obiect de configurare într-o formă convenabilă. În 8.3, din păcate, nu există o astfel de funcționalitate. O modalitate de ieșire în această situație ar fi să selectați elementele necesare în fila „Obiecte suplimentare pentru descărcare”.

Puteți adăuga obiecte aici fie manual (butonul „Adăugați”), fie la cerere („Adăugați la cerere...”). Dacă există un număr mare de ele, a doua opțiune este de preferat.

În acest caz, cererea va fi după cum urmează. Completați parametrii, completați solicitarea după verificarea datelor și faceți clic pe butonul „Selectare rezultat”.

După ce ați specificat toate obiectele și elementele suplimentare necesare pentru încărcare, faceți clic pe butonul „Încărcați date”. Acestea vor ajunge într-un fișier XML, numele și calea cărora le-ați specificat mai devreme. Rezultatele acestei operațiuni vor fi afișate în mesaje.

În acest exemplu, a fost necesar să se descarce doar 3 poziții, dar cinci au fost descărcate. Acest lucru se datorează faptului că un steag a fost setat vizavi de directorul „Nomenclatură” în coloana „Încărcare dacă este necesar”. Odată cu posturile necesare, părinții lor erau supraîncărcați.

Se încarcă un director din XML

După descărcarea cu succes a datelor din configurația sursă într-un fișier XML, deschideți baza de date de destinație. Structura obiectelor și detaliile lor trebuie să se potrivească între ele. În acest caz, transferul se realizează între două configurații standard 1C: Contabilitate 3.0.

Deschideți procesarea în baza de date a receptorului. Această prelucrare este utilizată atât pentru încărcare, cât și pentru încărcarea datelor. Accesați fila „Descărcare” și specificați calea către fișierul XML în care datele au fost descărcate anterior. După aceea, faceți clic pe butonul „Descărcați date”.

Rezultatul descărcării va fi afișat în mesaje. În cazul nostru, totul a mers bine.

Cartea de referință „Nomenclatură” din baza de date destinatară nu a fost completată. Acum are cinci elemente: trei poziții de nomenclatură și două grupuri.

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. Ele sunt încorporate în toate soluțiile standard și problema migrărilor între configurații identice a fost în general rezolvată. Victoria este confirmată încă o dată de integrarea strânsă a soluțiilor standard.

Cu migrațiile între soluții non-standard, situația este ceva mai complicată. O selecție largă de tehnologii 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. Implementarea independentă a algoritmilor de migrare este plină 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 susținerii 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 cu încărcare.

Unele documente (în special în configurațiile standard) generează mișcări în mai multe registre. Descărcarea tuturor acestor lucruri va face fișierul XML rezultat 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 va fi necesară mai multă memorie RAM pentru a-l procesa. Î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ți un 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 „i-urile” 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 încă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 demo ar putea induce în eroare. Totul pare destul de simplu și logic. De fapt, acest lucru nu este în întregime adevărat. În munca reală, 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” (dați dublu clic pe obiect) și în vrăjitorul de configurare a regulilor, mergeți la 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 atribuirea acestuia la detalii. Î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 toate detaliile în același mod. 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 „Descărcarea tipurilor de client”;

Acum trebuie să scrieți cod pentru a selecta datele pentru încărcare. Parametrul „ Eșantionarea datelor" Putem plasa în ea o colecție cu un set de date pregătit. Parametrul " Eșantionarea datelor” poate prelua diverse valori - rezultat al interogării, selecție, colecții 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 „ Tip 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 NewRow.ClientType = "Client";

endIf;

Dacă DataFetchFromDirectory.Supplier, atunci NewRow = DataFetch.Add(); NewRow.Client = DataFetchFromDirectory.Link; NewString.ClientType = "Furnizor";

endIf; EndCycle;

Să salvăm regula de încărcare a datelor și să revenim la fila „

Reguli de conversie a obiectelor

" Să adăugăm pentru registrul de informații „

Pentru a economisi spațiu, nu voi furniza codul (vă puteți referi oricând 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 PKO și în setările regulilor de conversie a obiectelor, bifați „ Continuați căutarea câmpurilor 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 aceasta: „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 migrări de date din configurații dezvoltate pentru platforma 1C:Enterprise 7.7, atunci va trebui să petreceți timp pentru a vă familiariza 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.

Imprimare (Ctrl+P)

Conversia datelor, ediția 3.0

Lecția 1. Pregătirea pentru a lucra cu KD3.0

Conversia datelor, ediția 3.0(mai departe KD3.0) – este una dintre componentele tehnologiei de schimb de date prin format EnterpriseData. KD3.0 nu este un înlocuitor pentru configurație Conversia datelor, ediția 2.0(mai departe KD2.0). Acesta este un nou standard care este foarte diferit de KD 2.0. Scopul principal KD3.0 – aceasta este crearea unui cod de program pentru un modul de manager de schimb, constând din proceduri și funcții care implementează logica de încărcare a datelor prezentate în format EnterpriseData, precum și logica pentru încărcarea datelor în format.

Fig 1 Modulul general de gestionare a schimburilor

KD3.0 poate fi descărcat de pe https://users.v8.1c.ru/

Revizia 3.0.5.3, destinată utilizării cu versiunea de sistem
1C:Enterprise 8.3 nu este mai mică decât 8.3.10, iar ediția 3.0.4.3 este destinată utilizării cu versiunea de sistem 1C:Enterprise 8.3 nu este mai mică decât 8.3.8.

Livrarea KD3.0 conține următoarele procesări externe

  • Prelucrare MD83Exp.epf„Încărcarea unei descrieri a structurii de metadate a configurației 8.3” – este destinată încărcării unei descriere a structurii de metadate a oricărei configurații implementate pe platforma 1C:Enterprise 8.3.
  • Prelucrare Se încarcă regulile de sincronizare.epf„Încărcarea regulilor de sincronizare printr-un format universal” utilizat la pregătirea fișierelor cu reguli de conversie destinate încărcării ulterioare în configurația „Conversie datelor”, ediția 3.0.
  • Fișierul „Configuration Description.htm” conține o scurtă descriere
    funcționalitatea de configurare de bază
    „Conversia datelor”, ediția 3.0.

Informații suplimentare despre configurația „Conversia datelor”, versiunea 3.0
vezi http://its.1c.ru/db/metod8dev#content:5846:hdoc

1. Pregătirea pentru stabilirea regulilor

Pentru a încărca structura de format, trebuie mai întâi să deschideți baza de date de configurare în modul configurator și să descărcați pachetele XDTO din configurație în fișiere *.xsd.

Este necesar să descărcați toate pachetele care sunt asociate cu formatul. Numele fișierelor nu au o importanță fundamentală. De asemenea, trebuie să încărcați pachetul ExchangeMessage XDTO

După încărcarea formatului XDTO în CD 3.0, directoarele „Format Objects”, „Format Properties”, „Format Values” sunt completate.

ÎN carte de referință „Format obiecte”încărcare:

  • Obiecte cu tipul „ObjectTypeXDTO”, care reflectă tipuri de date de referință (documente, directoare)
  • Obiecte de tip „XDTOValueType” care conțin o enumerare. Acestea reflectă date predefinite (de exemplu, enumerări)

ÎN carte de referință „Proprietăți de format”încărcare:

  • Proprietățile obiectelor „ObjectTypeXDTO”. În același timp, obiectele în sine sunt cele care au fost încărcate în „Obiecte de format”
  • Obiecte cu tipul „ObjectTypeXDTO” și proprietățile lor care reflectă părțile tabelare și detaliile părților tabulare

Proprietățile obiectelor „XDTOValueType”, care sunt elemente ale datelor predefinite, sunt încărcate în cartea de referință „Format Values”. În același timp, obiectele în sine sunt cele care au fost încărcate în „Obiecte de format”

1. 2. Procesarea „Se încarcă structura de configurare”

Această procesare încarcă structura metadatelor de configurare în baza de informații Conversia datelor ed.3.

Pentru a descărca informații despre structura bazei de informații, se utilizează procesarea MD83Exp.epf, inclus în kitul de livrare pentru configurația KD3.0

Pentru baza de informații a cărei structură trebuie descărcată, efectuați următorii pași:

  1. Deschideți baza de informații în modul Enterprise.
  2. Deschideți procesarea externă MD83Exp.epf(Meniu Fișier - Deschidere).
  3. Specificați numele fișierului în care să salvați structura bazei de informații.
  4. Verificați setările din formularul de procesare (toate steaguri trebuie șterse).
  5. Apăsați butonul Descărca.

După descărcarea structurii de configurare, directoarele sunt completate

  • Obiecte metadate
  • Proprietățile obiectului
  • Valorile obiectelor.

Director Obiecte metadate conține informații despre obiectele metadate de configurare. Tipul de obiecte este înregistrat în atributul corespunzător. În funcție de valoarea atributului Type, sunt completate detaliile care descriu proprietățile obiectului de metadate. Detaliile obiectelor metadate sunt descrise în directorul subordonat Proprietățile obiectului. Valorile obiectelor (valorile de enumerare și numele elementelor predefinite) sunt descrise într-un director subordonat Valorile obiectelor.

Înainte de a încărca regulile de sincronizare printr-un format universal, formatul de date trebuie să fie încărcat din fișiere (folosind procesarea(vezi clauza 1.1), iar configurația pentru care sunt configurate regulile de sincronizare trebuie să fie, de asemenea, încărcată. Configurația este încărcată folosind procesare ( vezi punctul 1.2) . De asemenea, rețineți că element de director care urmează să fie creat Conversii . Pentru a converti, trebuie să specificați configurația și una sau mai multe versiuni de format pentru care este destinată conversia.

1.3.1 Pregătirea fișierelor pentru regulile de încărcare

Fișierele sunt pregătite în baza de informații pentru care schimbul se va efectua într-un format universal (de exemplu, Contabilitatea întreprinderii ed.3.0).

Pentru a pregăti fișierele cu reguli, trebuie să intrați în baza de informații în modul Enterprise și să începeți procesarea Încărcarea regulilor de sincronizare printr-un format universal, care este inclus în livrarea configurației Conversia datelor ed.3.

Pentru a pregăti un fișier cu un modul manager, trebuie să intrați în baza de informații în modul Configurator și să salvați modulul general Manager de schimb prin format universal la un fișier text. Puteți specifica orice nume de fișier.

Toate fișierele pregătite trebuie să fie localizate în același director.

1.3.2 Încărcarea regulilor de sincronizare

Efectuat în baza de informații Conversia datelor ed.3 prin prelucrare Încărcarea regulilor de sincronizare din fișiere.

În formularul de procesare, indicați:

  • Directorul de schimb în care se află fișierele pregătite anterior
  • Conversie
  • Compoziția datelor descărcate
    • sau specificați opțiunea „toate”.
    • sau selectați încărcare selectivă și configurați lista de reguli care ar trebui să fie încărcate
  • Fișier cu modulul de gestionare a schimburilor (nu este necesar dacă se efectuează încărcare selectivă și handlere nu sunt încărcate)
1.3.3 Caracteristici de încărcare într-o bază de date negoală
  • Dacă regula încărcată există și aparține unei singure conversii (cea curentă), regula va fi modificată. În acest caz, nu se realizează analiza diferențelor dintre regulile existente și cele încărcate;
  • Dacă regula încărcată există și aparține mai multor elemente ale directorului Conversii, inclusiv conversia curentă, o nouă regulă va fi creată și legată de conversia curentă. Regula „veche” va rămâne neschimbată și va rămâne legată de alte conversii.
  • Grupurile de reguli nu sunt încărcate. Dar dacă regula a fost atribuită unui anumit grup, atunci când este reîncărcată în această regulă, aceste informații vor fi salvate.
Există o versiune actualizată DB 1C Trade Management (denumită în continuare UT) ediția 10.2 pe platforma 8.1.
Și există o bază de date standard de contabilitate 1C pe platforma 8.3.

Sarcină:

Stabiliți schimbul de date între bazele de date.

Soluţie:

Instalat 1C Data Conversion, ediția 2.1.
Încărcat.
Lansez „Asistentul de pornire” (Fig. 1).

1. În continuare.
2. Selectați „Creați reguli noi de schimb de date (de la zero)”. Următorul.
3. În al treilea pas, programul vă cere să specificați configurațiile sursă și destinație.
Creez o configurație sursă (1C UT):
- deoarece am 1C UT pe platforma 8.1, iau procesarea externă MD81Exp.epf de pe discul ITS ( îl poți descărca).
- Deschid 1C UT. Fișier --> Deschidere --> MD81Exp.epf .

Precizez fișierul în care vor fi încărcate informații despre structura metadatelor. Trebuie să fie în format XML.

Dau clic pe butonul „Încărcare”.

La fel fac si cu baza receptorului. Cu 1C Contabilitate 8.3. Numai pentru asta folosesc procesarea externă MD83Exp.epf ( îl poți descărca).

Mă întorc la 1C Data Conversion.

Ne-am oprit la pasul 3. Faceți clic pe butonul „Nou” și specific fișierul de structură de metadate generat. Această structură va fi încărcată în directorul de configurare.

4. În al patrulea pas, selectați opțiunea „Creați automat toate regulile de schimb de date posibile”.

Acum s-a deschis o nouă fereastră în fața noastră. Au fost create reguli de conversie a obiectelor. Trebuie să creați reguli pentru descărcarea datelor. Pentru a face acest lucru, accesați a doua filă „Reguli de încărcare a datelor” și faceți clic pe butonul „Creați reguli de încărcare”.

Pentru a configura schimbul de date între diverse configurații (inclusiv autoscrise) în 1C, există un mecanism foarte flexibil pentru configurarea transferului de informații - configurația 1C „Conversia datelor” (CD). Să ne uităm la modul în care funcționează acest mecanism și să încercăm să stabilim reguli de schimb între două configurații tipice:

  • Enterprise Accounting (versiunea demo), ediția 3.0.30;
  • Managementul salariului și al personalului (versiunea demo), ediția 3.0.25.

Instrumentul de configurare pentru stabilirea regulilor de schimb va fi versiunea Data Conversion 2.1.82. Lucrările se vor executa pe platforma 8.3.9.

Este important de reținut că Data Conversion vă permite să organizați schimbul nu numai între bazele de date ale versiunii 8 a programului, ci și între versiunile 7 și 8 ale platformei 1C.

Asistent de pornire

După instalarea configurației „Conversia datelor” și lansarea acesteia, prima fereastră care se deschide este Asistentul de pornire (Fig. 1).

O puteți apela din nou din meniul Operațiuni->Procesare sau din Ajutor, unde această procesare este evidențiată ca o comandă separată.

Deoarece nu intenționăm să folosim reguli de transfer standard, dar vom crea propriile noastre, în următoarea fereastră vom selecta elementul corespunzător din listă (Fig. 2).

Fig.2

Pe lângă crearea de noi reguli de schimb, putem:


În acest moment, ar trebui să luăm o mică pauză de la crearea regulilor de schimb și să vorbim despre fișierele de structură de configurare.

Fișiere cu structură de metadate

Pachetul de configurare „Conversion” include mai multe procesoare externe care vă permit să descărcați structura metadatelor într-un fișier xml.

Regula importanta! Procesarea de descărcare a structurii pentru diferite baze de date trebuie să aparțină aceleiași versiuni de CD.

Pentru diferite versiuni ale platformei, 1C a implementat diferite procese de descărcare a structurii:

  • MD77Exp.ert – vă permite să salvați structura de configurare cu șapte baze de date într-un fișier;
  • MD82EXP.epf – exportă structura bazelor de date care rulează pe platformele versiunea 8.0-8.2;
  • MD83EXP.epf – proiectat pentru platforma 8.3.

Deoarece în condițiile sarcinii noastre este necesar să organizăm un schimb între bazele de date care rulează pe versiunea 8.3, vom folosi a treia procesare (Fig. 4).

Fig.4

Aici trebuie să specificăm fișierul în care va fi încărcată structura și putem configura un set de tabele auxiliare care vor participa la schimb.

După ce fișierele de configurare de destinație și sursă au fost descărcate, informațiile de la acestea trebuie să fie încărcate în Data Conversion.

Pentru a face acest lucru:


Pentru a doua bază repetăm ​​aceiași pași.

Să revenim la asistentul nostru.

Continuați să lucrați cu asistentul

După ce am adăugat cele două baze de date ale noastre în director, arată ca (Fig. 6).

Să continuăm să lucrăm cu asistentul

În fereastra următoare (Fig. 7) trebuie să selectăm baza receptorului și baza sursei.

Fig.7

Și acum ajungem la o fereastră în care ni se va cere să stabilim pe ce legi și corespondențe se va baza schimbul nostru (Fig. 8).

Fig.8

Programul poate în mod independent, folosind algoritmii încorporați în el, să creeze schimburi de date. Selectând al doilea comutator, putem selecta din regulile create automat pe cele care sunt cele mai potrivite pentru rezolvarea problemei noastre. Dacă dorim să stabilim independent ce și cum să transferăm și prin ce detalii să comparăm datele, trebuie să setăm comutatorul pe a treia poziție.

Deoarece vrem să ne creăm propriile reguli, vom lua a treia cale.

Crearea unei reguli pentru schimbul între directoare

Setați comutatorul la al treilea element din listă și faceți clic pe butonul „Run”.

Ne aflăm în vrăjitorul de setări pentru elementul de director „Reguli de conversie a obiectelor” (Fig. 9)

Fig.9

În baza de date sursă, trebuie să selectăm un obiect ale cărui date vor fi sincronizate.

În baza de date a receptorului există un tabel în care vor merge aceste date.

La următoarea etapă trebuie să decidem asupra parametrilor de încărcare:

  • Ce detalii vor fi folosite pentru a căuta o potrivire;
  • Ce să faci cu elementele existente;
  • Dacă să creeze elemente lipsă;
  • Cum să faci față link-urilor;
  • Ce reguli să folosiți pentru numerotarea elementelor noi.

Și încărcați parametri.

Dacă decidem să efectuăm potrivirea automată a datelor, vom sări peste acest pas.

La final, trebuie să încărcăm pe disc regulile create (Fig. 10).

Fig.10

Schimb de date

Vom efectua schimburi suplimentare de date folosind procesarea V8Exchan83.epf (Fig. 11), inclusă și în pachetul de livrare. Utilizarea schimbului de date standard, care face parte din configurație sau procesare autoscrisă, atunci când se utilizează regulile create în CD, poate duce la apariția unei situații excepționale.

Fig.11

Și încă o dată: este extrem de important ca versiunea fișierului de încărcare, configurația și procesarea schimbului să se potrivească și să fie preluate din aceeași livrare, doar că în acest caz te vei proteja cât mai mult de tot felul de probleme.

În orice caz, dacă verificarea corectitudinii transferului de date arată prezența unor situații de conflict și erori, procesarea transferului vă permite să ștergeți aceste date din baza de date.

Cele mai bune articole pe această temă