CLOPOTUL

Sunt cei care citesc aceasta stire inaintea ta.
Abonați-vă pentru a primi cele mai recente articole.
E-mail
Nume
Nume de familie
Cum ți-ar plăcea să citești Clopoțelul
Fără spam

Configurație specializată „1C: Conversie de date 2.0”

Lansarea celei de-a opta versiuni a platformei 1C:Enterprise a devenit un pas semnificativ în dezvoltarea sistemelor de automatizare. La proiectarea platformei 1C:Enterprise 8 s-a ținut cont de vasta experiență de utilizare a soluțiilor bazate pe platforma 1C:Enterprise 7.7: limbajul încorporat al platformei și configurațiile tipice au fost serios reproiectate, structura stocării și accesului la date. a fost schimbat, au fost create noi soluții industriale care realizează avantajele noii platforme. Utilizarea constructelor de limbaj anterioare în noua platformă a devenit inadecvată.

Pentru a facilita rezolvarea acestei probleme (transfer de date de la versiunea 7.7 la versiunea 8), 1C a lansat o configurație specializată „Data Conversion 2.0”. A fost creat pentru a ajuta specialiștii în rezolvarea diverselor probleme de transfer de date. 1C a lansat reguli gata făcute pentru transferul de date din configurații de același tip, de exemplu, de la 1C: Contabilitate 7.7 la 1C: Contabilitate 8, dar utilizatorii de configurații standard nestandard sau modificate atunci când trec la platforma 1C: Enterprise 8 va trebui să creați singur datele regulilor de transfer.

Cu toată varietatea de metode private pentru rezolvarea problemelor de transfer de date, gama de probleme de rezolvat rămâne practic neschimbată:

Sincronizarea informațiilor de referință (crearea de noi, actualizarea elemente existente directoare, ștergerea, salvarea sau modificarea ierarhiei, ramificarea datelor, transferarea istoricului modificării valorilor detaliilor periodice);

Sincronizarea documentelor și operațiunilor (crearea, modificarea documentelor sau transformarea unui tip de document în altul, fuzionare sau reproducere);

Crearea unor condiţii iniţiale suficiente pentru menţinerea registrelor contabile activitate economică(transferul mărfurilor rămase etc.).

Structurile de stocare a datelor în 1C: Întreprinderea diferitelor versiuni și/sau configurații sunt diferite, astfel încât transferul de date nu înseamnă doar copierea fișierelor sau tabele, ci conversia acestora. Pentru ca transformarea să fie lipsită de ambiguitate și corectă, este necesar să se creeze și să se configureze reguli pentru transferul de date. Crearea și configurarea regulilor de transfer de date între diferite baze de informații este posibilă dacă este cunoscută structura stocării datelor în bazele de date sursă și destinație. Descrierea structurii metadatelor de configurare ar trebui să fie unificată. Configurația Data Conversion 2.0 este utilizată pentru a crea și configura reguli de transfer de date pe baza descrierilor structurii metadatelor de configurare a sursei și a destinației.

Procesul de transfer de date între bazele de informații constă în următorii pași:

  • 1. Crearea fișierelor de descriere a metadatelor.
  • 2. Crearea de Configurații în „Conversie Date”.
  • 3. Crearea conversiei în sine.
  • 4. Crearea consecventă a regulilor de conversie a datelor.
  • 5. Crearea consecventă a regulilor de încărcare a datelor.
  • 6. Procedura efectivă de descărcare și încărcare a datelor de la o configurație la alta.

pentru că utilizarea acestei configurații specializate este una dintre cele mai eficiente pe acest moment modalități de rezolvare a problemelor de acest gen, și în plus, o sursă de experiență personală foarte utilă în scopuri educaționale, apoi să dezvolte un mecanism de schimb de date între IS „Server: Rent Calculation” și „1C: Enterprise Accounting” pentru SRL” LLC" o metodă bazată pe utilizarea configurației "Conversia datelor 2.0".

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

Sarcina principală a instrumentului este de a scrie reguli de schimb î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 ea puteți rezolva nu numai problema transferului de informații de la o bază de date la alta, ci și, de exemplu, conversia informațiilor într-o bază de date.

Configurația este foarte convenabilă de utilizat atunci când .

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

Pentru a învăța cum să lucrați cu configurația, rezolvarea problemelor practice este cea mai potrivită. Încercați să veniți cu sarcini pentru dvs., de exemplu: transferați orice informație dintr-o bază de date în alta, transformați un document de implementare într-un document de chitanță, „conduceți” solduri curente pe contabilitateîn documentul „introducerea soldurilor” și alte sarcini.

Va fi foarte util să înțelegeți regulile „tipice” ale schimbului 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, luați î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 videoclipul pentru un exemplu:

Materiale, manuale pentru studiul 1C Data Conversion 2.0

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

0. În primul rând, sfătuiesc cursul video gratuit al lui Ilya Leontiev, acesta este disponibil la 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 a fost închis), specializat doar în conversia datelor. Acolo puteți descărca un număr mare de materiale de conversie.

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

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 (este vorba doar despre produsele companiei 1C) de la o soluție la alta nu a apărut ieri. Compania 1C este foarte conștientă de dificultățile cu care se confruntă dezvoltatorii atunci când creează migrații, așa că face tot posibilul 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.

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

Să luăm în considerare câteva dintre ele:

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

Fiecare dintre ele are argumentele sale pro și contra. Pentru a rezuma, principalul dezavantaj va fi verbozitatea. Implementarea independentă a algoritmilor de migrare este plină de costuri semnificative de timp, precum și de un proces lung de depanare. Nici măcar nu vreau să vorbesc despre sprijinul suplimentar al unor astfel de decizii.

Complexitatea și costul ridicat de întreținere au determinat compania 1C să creeze o soluție universală. Tehnologie care vă permite să simplificați cât mai mult posibil dezvoltarea și suportul migrațiilor. Drept urmare, ideea a fost implementată sub forma unei configurații separate - „Conversia datelor”.

Conversia datelor - soluție standard, auto-configurare. 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 - versatilitatea. Soluția nu este adaptată anumitor configurații/versiuni ale platformei. Funcționează la fel de bine atât cu configurațiile standard, cât și cu cele scrise singur. Dezvoltatorii obțin o tehnologie universală și o abordare standardizată pentru crearea de 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 plus îndrăzneț este ajutoarele vizuale. Migrațiile simple sunt create fără programare. Da, da, fără o singură linie de cod! Numai pentru aceasta, merită să petreceți timpul învățând tehnologia o dată, apoi să folosiți în mod repetat abilitățile neprețuite.

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. Două opțiuni sunt disponibile imediat: încărcarea într-un fișier xml și conexiune directă la baza de informații (COM/OLE).

Învățarea arhitecturii

Știm deja că conversia datelor poate face minuni, dar nu este încă clar care sunt avantajele tehnice. Primul lucru de învățat este că orice migrare (conversie) a datelor se bazează pe reguli de schimb. Reguli de schimb - un fișier xml obișnuit cu o descriere a structurii în care vor fi încărcate datele din IB. Serviciul de prelucrare care realizează încărcarea/descărcarea datelor analizează regulile de schimb și realizează încărcarea pe baza acestora. În timpul descărcării, are loc procesul invers.

Configurația „KD” este un fel de constructor vizual cu ajutorul căruia dezvoltatorul creează reguli de schimb. Nu știe cum să încarce date. Procesarea suplimentară a serviciilor externe inclusă în kitul 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 analiza ulterioară și crearea regulilor de schimb.
  • V8ExchanXX.epf- incarca/descarca date din infobaza in conformitate cu regulile de schimb. În majoritatea configurațiilor tipice, procesarea este disponibilă 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ă se transfere.
  2. Pregătirea unei descrieri a structurilor de configurare (Sursă/Receiver) pentru încărcarea ulterioară în CD. Sarcina este rezolvată prin procesarea serviciului MDXXExp.epf.
  3. Încărcarea descrierilor pregătite ale structurilor în IS.
  4. Crearea regulilor de schimb folosind mijloace vizuale de CD.
  5. Încărcarea/descărcarea 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, avem nevoie de două configurații implementate. Am decis să mă opresc la opțiunea: „Trade Management” ediția a 10-a și o mică soluție auto-scrisă. Sarcina va fi transferarea datelor din configurația tipică UT. Pentru concizie, vom numi soluția auto-scrisă „Receptor”, iar managementul comerțului „Sursă”. Să începem să rezolvăm problema transferând elementele directorului „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 serviciul de procesare MD82Exp.epf în ea.

Interfața de procesare nu strălucește cu o mulțime de setări. Utilizatorul trebuie doar să specifice tipurile de obiecte de metadate care nu vor intra î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 din registrele de acumulare (de exemplu).

Este mai corect să se formeze mișcarea în timpul deținerii documentelor î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 încărcat.

Unele documente (mai ales în configurațiile tipice) formează mișcări în registre multiple. Descărcarea toată această economie va face fișierul XML rezultat prea mare. Acest lucru poate face dificilă transportul și încărcarea ulterioară în baza receptorului. Cu cât fișierul de date este mai mare, cu atât este necesară mai multă memorie RAM pentru a-l procesa. În timpul practicii mele, s-a întâmplat să întâlnesc fișiere de încărcare indecent de mari. Astfel de fișiere au refuzat complet să fie analizate prin mijloace standard.

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

Deschideți CD-ul și selectați din 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 în mod repetat pentru a crea diferite conversii.

În fereastra directorului, apăsați butonul „ Adăuga” iar în fereastra care apare, selectați un fișier cu o descriere a configurației. Bifați caseta „Încărcați în configurație nouă” și faceți clic pe butonul „Efectuați încărcarea”. Efectuăm acțiuni similare cu descrierea structurii celei de-a doua configurații.

Acum totul este gata pentru a crea regulile de schimb. În meniul principal al CD-ului, selectați „Referințe” -> „Conversii”. Adăugarea unui nou element. În fereastra pentru crearea unei noi conversii, trebuie să specificați: configurația sursei (selectați UT) și configurația receptorului (selectați „Receiver”). Apoi, deschideți fila „Avansat” și completați următoarele câmpuri:

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

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

Să punctăm imediat „și”. Maestrul nu va putea genera nimic serios. Cu toate acestea, această posibilitate nu trebuie ignorată. Dacă trebuie să stabiliți un schimb între configurații identice, atunci serviciile unui vrăjitor vă vor fi de mare ajutor. Pentru exemplul nostru, modul manual este de preferat.

Să aruncăm o privire mai atentă la fereastra „Setări pentru regulile de schimb”. Interfața poate părea puțin confuză - un număr mare de file pline cu comenzi. De fapt, totul nu este atât de greu, î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”. Pe primul, trebuie să stabilim reguli de potrivire, adică. comparați obiecte din două configurații. Pe al doilea, determinați posibilele obiecte care vor fi disponibile utilizatorului pentru descă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 valorii". Primul va selecta proprietățile (cerințe) obiectului selectat, iar al doilea este necesar pentru lucrul cu valori predefinite (de exemplu, elemente de dicționar 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 vrăjitorul de sincronizare a obiectelor (faceți clic pe „”) sau adăugați potriviri pentru fiecare obiect manual.

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

În cazul meu, există trei astfel de directoare: Nomenclatură, Organizații și Depozite. Există, de asemenea, un director Clients care efectuează aceeași încărcare semantică ca „ Contrapartide” din configurație ” UT". Adevărat, maestrul nu le-a putut compara din cauza numelor lor excelente.

Putem remedia singuri acest defect. Găsiți în fereastră Mapările obiectelor» manual « Clienții”, iar în coloana „Sursă” selectați cartea de referință „Contrapărți”. Apoi bifați caseta din coloana „Tip” și faceți clic pe butonul „Ok”.

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

Baza pentru regulile de schimb este gata. Am ales 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ă începem 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 încărcării regulilor. Procesarea va analiza regulile de schimb și va construi un arbore cu același nume pentru obiectele disponibile pentru descărcare. Pentru acest arbore, putem seta tot felul de filtre sau noduri de schimb, modificând care trebuie să selectăm datele. Dorim să încărcă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 „Încărcare”. Totul, datele au fost transferate cu succes.

Sarcini din lumea reală

Primul demo ar putea induce în eroare. Totul pare destul de simplu și logic. De fapt, acest lucru nu este adevărat. În munca reală, apar sarcini care sunt dificil sau complet imposibil de rezolvat folosind numai mijloace vizuale (fără programare).

Pentru a nu fi dezamăgit de tehnologie, mi-am pregătit câteva sarcini reale. Cu siguranță le vei întâlni la serviciu. Ele nu arată atât de banale și vă fac să priviți 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 numărul 1. Completați detaliile lipsă

Să presupunem că trebuie să transferăm directorul „ Contrapartide". Receptorul are o carte de referință similară „Clienți” pentru aceasta. Este complet potrivit pentru stocarea datelor, dar are recuzită „ Organizare”, permițându-vă 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 (se poate obține din constanta cu același nume).

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

Să descriem codul pentru obținerea organizației curente cu atribuirea ulterioară la atribut. Î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;

Înainte de a completa recuzita " Organizare» este necesar să se verifice valoarea atributului « Acest grup". Pentru ghid" Clienții» steag-ul ierarhic este setat, deci este necesară verificarea unui grup. În mod similar, se realizează completarea oricăror detalii. Asigurați-vă că citiți ajutorul pentru alte opțiuni de gestionare " După Încărcare". De exemplu, printre ele există un parametru " Refuz". Dacă i se atribuie valoarea „True”, atunci obiectul nu va fi scris în baza de date. Astfel, devine posibilă limitarea obiectelor de scris în momentul încărcării.

Sarcina numărul 2. Detalii în registrul de informații

În manual" Contrapartide„Configurație UT, există detalii” Cumpărător" și " Furnizor". Ambele recuzite sunt de tipul „ boolean” și sunt folosite pentru a determina tipul de contrapartidă. În IB " Receptor”, la cartea de referință “ 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 etichete pentru un singur client. Sarcina noastră este să transferăm valorile detaliilor în înregistrări separate ale registrului de informații.

Din păcate, mijloacele vizuale singure nu pot face față nici aici. Să începem cu mici, creați un nou PCO pentru registrul de informații " Tipuri de Clienti". Nu enumera nimic ca sursă. Refuzați crearea automată a regulilor de încărcare.

Următorul pas este crearea regulilor 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. Îl scriem ca „Încărcare specie client”;

Acum trebuie să scrieți codul pentru selectarea datelor pentru încărcare. Aici este parametrul „ Eșantionarea datelor". În ea, putem plasa o colecție cu un set de date pregătit. Parametrul " Eșantionarea datelor” poate accepta diverse sensuri- 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 de gestionare a evenimentelor „ Înainte de prelucrare". Inițializează parametrul „ Eșantionarea datelor” urmat de completarea datelor din directorul ” Contrapartide". Aici merită să acordați atenție completării coloanei „ Tipul de client". În „UT”, avem caracteristici de tip „Boolean”, iar în destinatar, o enumerare.

În această etapă, nu le putem aduce la tipul dorit (nu este în UT), așa că deocamdată o 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 = NewValueTable(); Data Selection.Columns.Add("Client"); Data Selection.Columns.Add("ClientType"); Selectarea datelor din director = Directories.Contractors.Select(); În timp ce se preia DataFromCatalog.Next() Buclă dacă FetchingDataFromCatalog.ThisGroup, apoi continua; EndIf; Dacă DataFetchFromCatalog.Buyer, atunci NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Cumparator"; EndIf; Dacă DataFetchFromCatalog.Provider, atunci NewString = DataFetch.Add(); NewString.Client = SamplingDataFromCatalog.Reference; NewString.ClientType = "Furnizor"; EndIf; EndCycle;

Salvați regula de încărcare a datelor și reveniți la „ Reguli de conversie a obiectelor". Să adăugăm pentru registrul de informații „ Tipuri de Clienti” reguli de conversie a proprietății: client și tip de client. Lăsăm sursa goală, iar în handlerul de evenimente „Înainte de descărcare” scriem:

//Pentru proprietatea „Client” Value = Source.Client; //Pentru proprietatea „CustomerType” If Source.Customer = "Buyer" Then Expression = "Enumerations.CustomerTypes.Buyer" ElseIf Source.Customer = "Supplier" Then Expression = "Enumerations.CustomerTypes.Supplier"; EndIf;

În listare, detaliile sunt completate pe baza selecției de date efectuate. Trecem clientul pur și simplu ca link și scriem tipul de client în parametrul " Expresie". Datele acestui parametru vor fi interpretate în receptor, iar la executare, atributul va fi completat cu valoarea corectă din enumerare.

Gata, regulile de schimb sunt gata. Exemplul considerat s-a dovedit a fi destul de universal. O abordare similară este adesea folosită atunci când se transferă date din configurații create pe platforma 7.7. Un exemplu izbitor în acest sens este transferul de detalii periodice.

Sarcina numărul 3. Trucuri tabulare

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

Facem o regulă de încărcare a datelor, specificăm un algoritm arbitrar și scriem o interogare în handlerul „Înainte de încărcare” pentru a obține date din secțiunea tabelară.

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

DataFetch = NewValueTable(); //Aici va mai exista o secțiune tabelară Data Selection.Columns.Add("Produse"); //Aici va exista și o secțiune tabelară Data Selection.Columns.Add("Services"); Selectarea datelor din.Columns.Add(„Link”);

Sarcina numărul 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 de migrarea datelor cu formarea ulterioară de postări.

În configurația " BP„Există un document universal” Operațiune” și este ideal pentru a forma mai multe fire. Iată doar o problemă - documentul este realizat cu viclenie și nu este atât de ușor să transferați date în el.

Un exemplu de astfel de conversie poate fi găsit în codul sursă al articolului. Cantitatea de cod s-a dovedit a fi destul de mare, așa că nu are rost să-l publici pentru articol. Permiteți-mi să spun doar că încărcarea folosește din nou un algoritm arbitrar în regulile de încărcare a datelor.

Sarcina numărul 5. Sincronizarea datelor pe mai multe atribute

Am acoperit deja câteva exemple, dar până acum 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 duplicarea? Î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 manualul „ Contrapartide” nu poate avea două elemente cu același ID. CD-ul face un calcul pentru acest lucru, iar pentru toate PSP-urile create, căutarea după identificator este imediat activată implicit. În timpul creării PSP-ului, ar fi trebuit să observați pictograma lupă de lângă numele obiectului.

Sincronizarea printr-un identificator unic este o metodă fiabilă, dar este departe de a fi întotdeauna adecvată. La fuzionarea directoarelor „ Contrapartide” (din mai multe sisteme diferite) este de puțin ajutor.

Î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ă TIN, 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ă luăm în considerare un exemplu abstract. Să presupunem că trebuie să sincronizăm directoarele „ Contrapartide” din diferite baze de informații. Să pregătim un PCP și în setările regulilor de conversie a unui obiect, bifați caseta „ Continuați căutarea în câmpurile de căutare dacă obiectul receptor nu este găsit prin ID". Cu această acțiune, am definit imediat două criterii de căutare - printr-un identificator unic și câmpuri arbitrare.

Avem dreptul să alegem singuri câmpurile. După ce am notat TIN, KPP, Nume, vom indica imediat mai multe criterii de căutare. Confortabil? Chiar, dar din nou, acest lucru nu este suficient. Și dacă vrem să schimbăm criteriile de căutare? De exemplu, mai întâi căutăm o grămadă de TIN + KPP, iar dacă nu găsim nimic, atunci începem să ne încercăm norocul cu numele.

Este foarte posibil să se implementeze un astfel de algoritm. În handler de evenimente 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”; ElseIfSearchVariantNumber = 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 insistență să fii atent la configurația „”. Lăsați-vă la început să investiți resurse (timp) în formare, dar acestea vor plăti mai mult decât primul proiect mai mult sau mai puțin serios.

În opinia mea, compania 1C ocolește în mod nemeritat 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 de dorit să vă familiarizați cu ea.

Cunoașterea platformei 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 cunoaște limbajul încorporat. Sintaxa și ideologia limbii sunt foarte diferite, așa că trebuie să petreceți timp învățând. Restul principiului rămâne același.

Mecanismul de gestionare a evenimentelor este una dintre tehnologiile cheie pentru conversia datelor folosind „Data Conversion 2.0”. Utilizarea competentă și abil a acestui mecanism permite dezvoltatorului să rezolve rapid aproape orice sarcină de conversie a datelor. Cu ajutorul tehnologiei procesorului, selecția datelor, conversia datelor sunt ușor de implementat tipuri diferite, selecții complexe de date, setări de conversie și multe alte sarcini.

Luați în considerare principiile de bază ale acestei tehnologii. În punctele cheie ale algoritmilor de descărcare și încărcare a datelor în procesarea de schimb universal, este posibil să se execute codul de program preluat din regulile de schimb de date, și nu „cablat” î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.

În total, există mai mult de douăzeci de locuri diferite în algoritmii de schimb de date unde poate fi executat cod de la terți. În consecință, configurația prevede crearea diferitelor tipuri de handlere de evenimente.

Codul de gestionare a evenimentelor este „atașat” regulilor 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 curățare 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 gestionare a evenimentelor și a variabilelor disponibile poate fi găsită în informațiile despre manipulatori din 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 de funcționare a platformei 1C:Enterprise 7.7, pregătirea regulilor de schimb de date folosind handlere de evenimente pentru bazele de informații implementate 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ă este necesar să se utilizeze handlere de evenimente pentru platforma V7.7, este necesar să se înlocuiască textul de procesare de încărcare sau descărcare a datelor cu textele de procesare pe care le produce configurația „Data Conversion 2.0”.

Dacă trebuie să transferați date de la V7.7 la V8, atunci:

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

Când dezvoltați soluții de schimb 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. Această regulă are o excepție - dacă nu utilizați handlere de evenimente, atunci puteți utiliza procesarea standard.

Cu sinceritate, Vladimir Milkin(profesor și dezvoltator).

CLOPOTUL

Sunt cei care citesc aceasta stire inaintea ta.
Abonați-vă pentru a primi cele mai recente articole.
E-mail
Nume
Nume de familie
Cum ți-ar plăcea să citești Clopoțelul
Fără spam