Conversia schimbului de date între soluțiile aplicației. Sarcini din lumea reală

Conversia datelor 2.0 și 2.1 - configurație tehnologică a companiei 1C, implementată pe versiunea platformei de la 8.1 la 8.3.

Sarcina principală a instrumentului este de a scrie reguli de schimb între solutii aplicate 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 acesteia 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 când.

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 învăța cum să lucrezi cu configurația, cea mai bună soluție este sarcini practice... Î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 vânzare într-un document de chitanță, „conduceți” soldurile curente prin contabilitateîn documentul „intrare de solduri” și alte sarcini.

Va fi foarte util să înțelegeți regulile de schimb „tipice” 1C 8.3, acolo puteți găsi adesea exemple interesante implementarea sarcinilor.

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

Instrucțiuni de conversie video

Elementele de bază ale configurării schimbului de date în 1C utilizând configurația „1C Data Conversion” pentru un exemplu, vedeți videoclipul:

Materiale, manuale pentru studiul 1C Data Conversion 2.0

Nu există prea multe materiale și documentație în rețea, am încercat să colectez cele mai importante și mai interesante materiale:

0.În primul rând, sfătuiesc cursul video gratuit al lui Ilya Leontyev, acesta este disponibil la legătură.

1. Vă sfătuiesc să utilizați ajutorul încorporat în configurare în primul rând. 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 în conversia datelor. Acolo puteți descărca un număr mare de materiale de conversie.

3. Separat, aș dori să subliniez manualul - (de Olga Kuznetsova).

Cărți, broșuri, articole

1C: Întreprindere 8. Conversie de date: schimb de date între soluțiile aplicate (cu o aplicație pe CD-ROM) (articolul 4601546049094)

„1C: Enterprise” este un sistem universal pentru automatizarea activităților întreprinderii și poate fi folosit pentru a rezolva diverse sarcini de gestiune și contabilitate. În prezent, pe platforma 1C: Enterprise au fost dezvoltate un număr mare de soluții standard și specializate, care pot funcționa în strânsă integrare cu alte soluții, atât pe această platformă, cât și cu software producători terți.

Capacitatea de a organiza schimbul între diferite sisteme de informații este de mare importanță pentru o muncă eficientă. Platforma 1C: Enterprise oferă o varietate de instrumente pentru schimbul de date și integrarea soluțiilor aplicate.

Cartea descrie în detaliu schimbul de date în format XML, care este astăzi un mijloc general acceptat de prezentare a datelor. Sunt descrise procedurile de elaborare a regulilor, a căror aplicare va asigura transferul de informații de la unul Sistem informatic la altul, inclusiv schimbul de date între configurațiile tipice 1C: Enterprise.

Cartea este însoțită de un CD care conține baze de informații demonstrative cu exemple de reguli de schimb și configurația „1C: Enterprise. Data Conversion”.

Atenţie! În prima ediție a fost permisă o defecțiune tehnică la sfârșitul cărții. Paginile corectate pot fi

În prezent, rămășițele căsătoriei sunt retrase de la vânzare și a fost lansată o ediție revizuită.
Ne cerem scuze pentru orice inconvenient cauzat și suntem gata să înlocuim gratuit copiile defecte.


Întrebări despre literatura editurii „1C-Publishing” pot fi trimise la [email protected].

Cumpără:

Contactați un partener 1C care deservește organizația dvs. și plasați o comandă informându-l despre codul atribuit cărții (prezentat în tabelul de mai jos). Puteți cumpăra și cartea de la alții parteneri ai companiei „1C”.

  • în magazinul online „1C-Interest” (livrarea cărților prin curier, „Russian Post”, DHL, EMS)
  • în librăriile din orașul tău

Vezi si:

Costul cărții

Cod Nume Recomandat preț cu amănuntul, frecare. * Dealer Partener permanent Distribuitor
4601546049094 1C: Întreprindere 8. Conversie de date: schimb de date între soluțiile aplicate (cu o aplicație pe CD-ROM) (articolul 4601546049094) 240 150 135 120

Structura cărții

Introducere

Capitolul 1. Principii generale de stabilire a regulilor

Capitolul 2. Utilizarea regulilor

Capitolul 3. Crearea automată a regulilor

Capitolul 4. Structura regulilor

Capitolul 5. Studiu detaliat al regulilor

Capitolul 6. Manipulatori de evenimente

  • Opțiuni
  • Operatorii de conversie
  • Manageri de reguli de încărcare a datelor
  • Manipulatori de reguli de conversie a obiectelor
  • Manageri de reguli de conversie a grupului de proprietăți
  • Manipulatorii regulilor de conversie a proprietăților

Capitolul 7. Câmpuri de căutare

Capitolul 8. Reguli de curățare a datelor

Capitolul 9. Algoritmi și interogări

Capitolul 10. Exemple tipice de reguli. Soluție

  • Conversia enumerarilor
  • Conversia directoarelor
  • Convertirea documentelor
  • Conversia registrelor de informații
  • Conversia planului de conturi
  • Convertirea unei diagrame cu tipuri de proprietăți
  • Convertirea unei diagrame cu tipuri de calcule
  • Conversia constantelor 1C: Enterprise 7.7
  • Conversia tranzacțiilor contabile 1C: Întreprindere 7.7

Capitolul 11. Optimizarea regulilor

  • Reguli de încărcare a datelor
  • Reguli de conversie a obiectelor
  • Procesare generică de schimb de date XML

1. Introducere.

2. Ce ai nevoie: Configurare 1C: Conversie de date 2. * și procesare din pachet. Pentru Exemplul de sarcini, să luăm configurațiile 1C: Trade Management 11 și 1C: BP 3. *.

Deci, pentru a dezvolta reguli pentru încărcarea datelor în 1C, veți avea nevoie de o configurație 1C: Conversia obiectelor 2, precum și procesarea incluse în pachet.

De exemplu, am implementat deja baza 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 pentru schimbul de UT/ACC).

3. Vom avea nevoie de Procesare pentru descărcarea structurii și schimbul de metadate.

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

De fapt, în directorul de configurare dezambalat pentru configurații activate formulare gestionate suntem interesați să manipulă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 complexă 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 altele asemenea. Și, în consecință, V8Exchan83.epf - pentru configurații pe formulare obișnuite.

4. Încărcarea structurii metadatelor de configurare 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ă setari aditionale, unde putem activa sau dezactiva opțiunea de descărcare a registrelor și mișcărilor în 1C. Există și o alegere unde va avea loc descărcarea: pe serverul 1C sau „pe client”. Indicăm numele fișierului în care va fi descărcată structura de date. În același mod, descarcăm structura metadatelor de configurare Trade Management 11.

Acum trebuie să încărcați configurația în baza de date de conversie. Puteți ajunge în acest punct atât din lista de configurații, cât și din lista de conversii. Să încărcăm de pe desktop:

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

Și în mod similar - structura Biroului Comercial.

Când descărcarea este completă, va apărea o casetă de dialog în care puteți specifica un nume convenabil pentru dvs.

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

Apoi, mergeți la „Setarea regulilor obiectului”, unde creăm o nouă setare.
În caseta de dialog pentru crearea unei conversii, selectați configurația „sursă” și configurația „receptor” (care au fost încărcate 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 descărcarea nu a unui document într-unul, ci a unui tip în altul, de exemplu, un document de Implementare Bunuri/Servicii din UT 11 cu cărțile de referință necesare la documentul Recepție Bunuri/Servicii în BP 3.

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

Selectați sursa vânzării de bunuri/servicii și destinatarul primirii de bunuri/servicii și faceți clic pe OK.
În același timp, va apărea o casetă de dialog, în care din nou refuzăm să creăm automat un PCC (Property Conversion Rules). În continuare, le vom selecta doar pe cele necesare.

Dar la propunerea de a crea un PVD (reguli de descă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 goale de conversie a proprietăților.

Mai mult, se poate observa că POC-ul implicit este propus să caute după identificatorul intern al obiectului. Acest lucru este indicat de o lupă lângă PKO. Vom face căutarea noastră, și o vom face conform numărului și datei documentului de la începutul zilei.

Eliminam căutarea de către UIO:

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

De exemplu, selectăm necesarul:

Vă atrag atenția asupra faptului că vom face PCS-ul contrapărții la organizație și organizația către contrapartidă și vom compara și câteva detalii care nu se potrivesc după nume, de exemplu, „Moneda” și „Moneda”. a documentului”.

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

Să începem să trecem prin detalii și să descriem. Mai întâi, am configurat căutarea documentului așa cum am scris mai devreme, facem descărcarea și căutarea documentului la începutul datei și vom schimba numerotarea. Vom înlocui primele trei caractere cu propriul nostru prefix „UTB”. Și întrucât în ​​BP și UT ​​numerotarea este de 11 caractere fiecare, facem un număr compus: prefixul nostru și 8 caractere din sursă. Un exemplu este prezentat mai jos.

Descărcarea documentelor se face întotdeauna fără a fi postate și fără mișcare. Presupunem că documentele vor fi păstrate în receptor după verificarea de către utilizator.

Pentru a face acest lucru, PCN este setat ca nerealizat, 0 sau 1, îl folosim ca boolean.

Folosind moneda ca exemplu, creați o regulă de conversie a obiectelor pentru PCS. În același timp, credem că monedele sunt disponibile în ambele baze și ar trebui să fie sincronizate prin cod. Prin urmare, în monedele PKO, nu vom crea toate PCS-urile, ci doar adăugam Codul pentru căutare. Acestea. refuzăm propunerea de a crea un PCS pentru obiect.

Regula de conversie creată a fost înlocuită în PQS al documentului pentru PKS. Și regula în sine este oferită implicit de identificator unic... O reparăm, facem o căutare după cod și setăm proprietatea pentru a nu crea un obiect nou.

Ca rezultat, obținem opțiunea:

În plus, prin analogie, creăm pentru restul cerințelor PKO și PKS. Mai mult, am stabilit căutarea unei organizații după contraparte și invers după TIN. Cam așa arată cu detalii minime (puteți adăuga dacă este necesar).

Pentru contractele PKO ale contrapărților, facem o căutare după contrapartea PKS, nume și proprietar.

Să vedem cum să specificăm valoarea dorită în tipul de enumerare în PCN. De exemplu, atributul „TypeOperation”. Aici puteți utiliza diferite condiții și valori de înlocuire. De exemplu, avem nevoie ca „tipul operațiunii” să fie mereu descărcat „Produse”, în acest caz este suficient să scriem valoarea dorită într-o linie „pe frunte”.

Mai jos este prezentat modul de setare fără complicații și în cele mai multe cazuri PKS pentru Frecvența de decontare reciprocă, Rata de decontare reciprocă, Conturi contabile.

Pentru Nomenclatura PKO, vom părăsi căutarea după identificatorul unic intern. Dar voi fi atent la modul în care vă puteți redefini grupul. De exemplu, suntem de acord că va fi descărcat noua nomenclatură din configurația 1C: Trade Management 11, dar este necesar ca nomenclatorul să fie colectat într-un anumit grup „OurGroup”.

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

Am stabilit două căutări: după nume, unde numele este indicat în mod rigid pentru grupul nostru și proprietatea obligatorie a atributului „ThisGroup” este adevărată.

Deoarece am luat decizia că avem tot nomenclatorul care se încadrează în grupul nostru, nu este nevoie să descarcăm grupurile din UT 11 la descărcare. Pentru a face acest lucru, în Nomenclatorul PKO din handlerul de evenimente „Înainte de descărcare”, vom setați un filtru că nu este necesar să descărcați grupurile „Refuz = Sursă. Acest grup;”.

În PVD (reguli de descărcare a datelor) Implementarea GoodsServices, adăugați un filtru pentru ca documentele marcate pentru ștergere să nu fie descărcate. Pentru a face acest lucru, în handlerele de evenimente „Înainte de descărcare” din PTP, vom scrie filtrul „Refuz = Obiect. Şterge marcaj;”.


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


7. Pentru a rezuma: Încărcați și descărcați date utilizând regulile de schimb de date dezvoltate.

Deschidem în 1C: Trade Management 11 procesare „Schimb universal de date în format XML” V8Exchan83.epf.

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


Descărcarea este completă. Verificăm ce a fost încărcat. Deci, documentul este încărcat, așa cum am căutat - 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 pe care le-ați înregistrat sunt completate.

Verificarea încărcării articolului. Vedem că totul a ieșit așa cum ne-am plănuit.


Am creat și completat cerințele 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 invers, 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ă-ți prețuiești timpul în domeniul tău de activitate și aceasta sarcina cereți profesioniștilor să execute.

Migrarea datelor între diferite configurații nu este o sarcină banală. Ca întotdeauna, există mai multe moduri de rezolvare, 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 în special despre produsele 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 în timpul creării migrațiilor, 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 tipice 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 migrațiile între soluții non-standard, situația este ceva mai complicată. O alegere largă tehnologia permite dezvoltatorilor să aleagă în mod independent cea mai bună modalitate de a rezolva problema din punctul lor de vedere.

Să aruncăm o privire 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. Auto-implementarea 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 1C să creeze o soluție universală. Tehnologie care facilitează cât mai ușor dezvoltarea și întreținerea migrațiilor. Drept urmare, ideea a fost realizată sub forma unei configurații separate - „Conversia datelor”.

Conversia datelor este o soluție tipică, auto-configurarea. 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 tipice de la 1C.

Acum puțin despre plusurile 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 tipice, cât și cu cele scrise singur. Dezvoltatorii au acces la tehnologie universalăși o abordare standardizată a creării 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 mare plus este vizual. Migrațiile simple sunt create fără programare. Da, da, fără o singură linie de cod! Doar de dragul acestui lucru, merită să petreceți timp o dată pentru a studia tehnologia și apoi să folosiți abilitățile neprețuite de mai multe ori.

Al treilea avantaj pe care l-aș sublinia 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 în fișierul xml și conexiune directă la infobase (COM / OLE).

Studiem arhitectura

Știm deja că conversia datelor poate face minuni, dar nu este încă pe deplin clar care sunt avantajele tehnice. Primul lucru de învățat este că orice migrare (conversie) a datelor se bazează pe regulile de schimb. Reguli de schimb - un fișier xml obișnuit cu o descriere a structurii în care vor fi încărcate datele de la IB. Prelucrare serviciu care descarcă/încărcă date, analizează regulile de schimb și, pe baza acestora, efectuează descărcarea. Procesul este inversat în timpul pornirii.

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

  • MDXXExp.epf- procesarea permite descărcarea descrierii 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- descarca/incarca date din infobaza 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 nicio configurație / reguli specifice.

Bine, acum, pe baza 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 unei descrieri a structurilor de configurare (Sursă/Receptor) pentru încărcarea ulterioară în CD. Sarcina este rezolvată prin procesarea serviciului MDXXExp.epf.
  3. Încărcarea descrierilor pregătite ale structurilor în IB.
  4. Crearea regulilor de schimb folosind instrumente CD vizuale.
  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, avem nevoie de două configurații implementate. Am decis să rămân cu opțiunea „Trade Management” ediția a 10-a și o mică soluție scrisă de sine. Sarcina va fi transferul datelor din configurația tipică „UT”. Pentru concizie, să numim o soluție auto-scrisă „Destinator” și managementul comerțului „Sursă”. Să începem să rezolvăm problema transferând elementele cărții de referință „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 strălucește cu o mulțime de setări. Utilizatorul trebuie doar să specifice tipurile de obiecte de metadate care nu vor fi incluse în descrierea structurii. În cele mai multe cazuri, aceste setări nu trebuie modificate. nu există un sens deosebit în mișcările de descărcare în registrele de acumulare (de exemplu).

Mișcarea se formează mai corect în timpul păstrării 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 cu încărcare.

Unele documente (în special în configurațiile tipice) generează mișcări în mai multe registre. Eliminarea întregii fermă ar 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 este nevoie de mai multă memorie RAM pentru a-l procesa. În timpul practicii mele, am întâlnit fișiere de încărcare obscen de mari. Astfel de fișiere au refuzat complet să fie analizate prin mijloace standard.

Deci, lăsăm toate setările implicite și exportă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”... Referința conține descrieri ale structurilor tuturor configurațiilor, care vor ajuta să fie utilizate pentru a crea conversii. Încărcăm descrierea configurației o dată și apoi o putem folosi în mod repetat pentru a crea diverse conversii.

În fereastra de referință, apăsați butonul „ Adăuga”Și în fereastra care apare, selectați fișierul cu descrierea configurației. Bifăm caseta de selectare „Încărcare în configurație nouă” și facem clic pe butonul „Execută încărcarea”. Facem același lucru cu descrierea structurii celei de-a doua configurații.

Totul este acum gata pentru a crea reguli de schimb. În meniul principal al CD-ului, selectați „Referințe” -> „Conversii”. Adăuga articol nou... Î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 este mai profitabil 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 în receptor”.

Gata, faceți clic pe „Ok”. Imediat, în fața noastră ne apare o fereastră cu o întrebare pentru a crea automat toate regulile. Acceptarea unei astfel de oferte tentante va oferi vrăjitorului o comandă pentru a analiza automat descrierea configurațiilor selectate și pentru a genera independent reguli de schimb.

Să punctăm imediat „și”. Maestrul nu va putea genera nimic serios. Cu toate acestea, această caracteristică nu trebuie redusă. Dacă este necesar să se stabilească un schimb între configurații identice, atunci serviciile maestrului vor fi foarte utile. 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 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.

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

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

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

Pentru a economisi spațiu, să folosim prima opțiune. În fereastra expertului, debifați casetele din „ Documentele„(Ne interesează doar cărțile de referință) și deschidem grupul” Referințe”. 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, o carte de referință Clienți, care îndeplinește aceeași încărcătură semantică ca „ Antreprenori„Din configurație” NS”. Adevărat, maestrul nu le-a putut egala din cauza numelor lor excelente.

Putem repara singuri acest defect. Găsim în fereastră " Potrivirea obiectelor"Carte de referinta" Clienții", Și în coloana" Sursă "selectați directorul" Contractori ". Apoi bifați caseta din coloana „Tip” și apăsați butonul „Ok”.

Expertul de sincronizare a obiectelor va oferi să creeze automat reguli pentru conversia proprietăților tuturor obiectelor selectate. Proprietățile vor fi mapate după nume și acest lucru va fi suficient pentru demonstrația noastră, suntem de acord. Următoarea întrebare va fi propunerea de a crea reguli de descărcare. Să fim și 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 descă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 pozitiv la întrebarea încărcării regulilor. Procesarea va analiza regulile de schimb și va construi un arbore de obiecte cu același nume disponibile pentru descărcare. Pentru acest arbore, putem seta tot felul de selecții sau noduri de schimb, în ​​funcție de modificările cărora trebuie să selectăm date. 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, mergeți la IB „ Receptor”. Deschidem și procesarea în ea. V8Exchan82.epf, doar că de această dată accesați fila „Descărcare date”. Selectați fișierul de date și apăsați butonul „Încărcare”. Gata, 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 probleme care sunt greu sau complet imposibil de rezolvat doar prin mijloace vizuale (fără programare).

Pentru a nu fi dezamăgit de tehnologie, am pregătit câteva probleme reale. Trebuie să dai peste ele când lucrezi. Nu arată atât de banal ș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 folosiți ca fragmente atunci când rezolvați probleme reale.

Problema numarul 1. Completam detaliile care lipsesc

Să presupunem că trebuie să transferăm de la UT directorul „ Antreprenori”. Receptorul are un director similar „Clienți” pentru aceasta. Este complet potrivit pentru stocarea datelor, dar are recuzita „ Organizare”, Ceea ce vă permite să separați contractorii în funcție de apartenența lor 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).

Problema are mai multe soluții. Vom lua în considerare opțiunea de a completa cerințele „ 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ă niciun obstacol în obținerea acestei valori. Să deschidem regula de conversie a obiectelor (denumită în continuare PCO) „ Clienții”(Dublu clic pe obiect) și în vrăjitorul de reguli 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 cerință. În momentul activării handler-ului „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.EtoGroup, atunci Object.Organization = Constants.CurrentOrganization.Get (); EndIf;

Înainte de a completa cerințele " Organizare„Este imperativ să verificați valoarea variabilei” Acest grup". Pentru referința „ Clienții»Pavilionul ierarhiei este setat, deci este necesară o verificare pentru un grup. În mod similar, se realizează completarea oricăror detalii. Asigurați-vă că citiți ajutorul pentru alți parametri de gestionare " După descă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ă restricționarea obiectelor pentru înregistrare în momentul încărcării.

Problema numarul 2. Detalii în registrul de informații

În referința „ Antreprenori„Configurație UT, există detalii” Client" și " Furnizor”. Ambele atribute 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 funcții pentru un client. Sarcina noastră este să transferăm valorile atributelor în înregistrări separate ale registrului de informații.

Din păcate, mijloacele vizuale singure nu pot face față acestui lucru. Să începem cu puțin, creați un nou PKO pentru registrul de informații „ Tipuri de Clienti”. Nu specifica nimic ca sursă. Refuzați să creați automat reguli de descărcare.

Următorul pas este formarea regulilor de descărcare. Accesați fila corespunzătoare și apăsați butonul „ Adăuga”. În fereastra pentru adăugarea regulilor de descărcare, completați:

  • Metoda de eșantionare. Schimbați la „Algoritmul liber”;
  • Regula de conversie. Selectăm registrul de informații „Tipuri de clienți”;
  • Codul (numele) regulii. Îl notăm ca „Descărcarea vizualizărilor clientului”;

Acum trebuie să scrieți cod pentru a selecta datele pentru încărcare. Parametrul „ Preluare date”. Putem pune o colecție cu un set de date pregătit în ea. Parametrul " Preluare date„Poate lua diferite valori - rezultatul 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 „ Preluare date„Urmat de completarea cu date din cartea de referință” Antreprenori”. Aici ar trebui să acordați atenție umplerii coloanei „ Tip de client”. În „UT” avem semne de tipul „Boolean”, iar în destinatar - enumerare.

În această etapă, nu le putem aduce la tipul cerut (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 = NewValuesTable (); FetchData.Columns.Add ("Client"); FetchData.Columns.Add ("ClientType"); FetchingDataFromDirectory = Directories.Contractors.Select (); În timp ce FetchingDataFromDirectory.Next () Buclă IfFetchingDataFromDirectory.ThisGroup Apoi Continuați; EndIf; Dacă DataFetchFromDirectory.Customer, atunci NewRow = DataFetch.Add (); NewString.Client = DataFetchFromDirectory.Link; NewString.ClientType = "Cumparator"; EndIf; IfFetchDataFromDirectory.Provider Apoi NewRow = FetchData.Add (); NewString.Client = DataFetchFromDirectory.Link; NewString.ClientType = „Furnizor”; EndIf; Sfârșitul ciclului;

Să salvăm regula de descărcare a datelor și să revenim la „ Reguli de conversie a obiectelor”. Adăugați pentru registrul de informații „ Tipuri de Clienti”Reguli de conversie a proprietății: client și tip de client. Lăsați sursa goală și scrieți în handlerul de evenimente „Înainte de descărcare”:

// Pentru proprietatea „Client” Value = Source.Client; // Pentru proprietatea „ClientType” If Source.Client = "Customer" Then Expression = "Enumerations.ClientTypes.Customer" OtherwiseIf Source.Client = "Supplier" Then Expression = "Enumerations.ClientTypes.Supplier"; EndIf;

În listare, detaliile sunt completate pe baza selecției de date efectuate. Transferăm 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, variabila 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. Această abordare este adesea folosită la migrarea datelor din configurațiile create pe platforma 7.7. Un exemplu izbitor în acest sens este transferul de cerințe periodice.

Problema numarul 3. Trucuri secțiuni tabelare

Destul de des întâlniți sarcini care necesită postarea rândurilor unei secțiuni tabelare în mai multe. De exemplu, în configurația inițială, serviciile și bunurile sunt aranjate într-o singură secțiune tabelară, iar 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ă pentru descărcarea datelor, specificăm un algoritm arbitrar și în handlerul „Înainte de descărcare” scriem o solicitare pentru a obține date din secțiunea tabelară.

Pentru a economisi spațiu, nu voi cita codul (vă puteți referi oricând la codul sursă) al solicitării - nu este nimic neobișnuit în ea. Repetăm ​​selecția rezultată și plasăm rezultatele sortate în parametrul deja familiar „ Preluare date”. De asemenea, este convenabil să utilizați un tabel de valori ca colecție:

DataFetch = NewValuesTable (); // Va mai exista o secțiune tabelară DataFetch.Columns.Add („Produse”); // Va exista și o secțiune tabelară DataFetch.Columns.Add („Servicii”); FetchData.Columns.Add („Link”);

Problema numarul 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 genera mai multe clienți potențiali. Iată doar o singură sarcină - documentul este realizat cu viclenie și nu este atât de ușor să transferați datele în el.

Un exemplu de astfel de conversie poate fi găsit în codul sursă al articolului. Volumul codului s-a dovedit a fi destul de mare, așa că nu are rost să-l publici pentru articol. Voi spune doar că descărcarea folosește din nou un algoritm arbitrar în regulile de descărcare a datelor.

Problema numarul 5. Sincronizarea datelor pentru mai multe cerințe

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 contractori și unii dintre aceștia sunt probabil în baza de date a receptorului. Cum să transferați date și să preveniți duplicarea? În acest sens, CD-ul oferă mai multe modalități de sincronizare a obiectelor portabile.

Primul se bazează pe un identificator unic. Multe obiecte au un identificator unic care garantează unicitatea într-un tabel. De exemplu, în referința „ Antreprenori„Nu pot exista două elemente cu același identificator. CD-ul face un calcul pentru acest lucru, iar pentru toate PQS create, căutarea după identificator este activată implicit deodată. În timpul creării PCO, ar fi trebuit să fi acordat atenție imaginii unei lupe de lângă numele obiectului.

Sincronizarea folosind un identificator unic este o metodă fiabilă, dar este departe de a fi întotdeauna adecvată. Când combinați directoare „ Antreprenori”(Din mai multe sisteme diferite) nu ajută 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ă TIN, KPP, Nume sau împărțiți căutarea în mai multe etape.

Conversia datelor nu restricționează dezvoltatorul în definirea criteriilor de căutare. Să ne uităm la un exemplu abstract. Să presupunem că trebuie să sincronizăm directoarele „ Antreprenori”Din diferite baze de informații. Să pregătim POC și să setăm caseta de selectare „ Continuați căutarea în câmpurile de căutare dacă obiectul țintă nu este găsit de către 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. După ce am notat TIN, KPP, Nume, vom indica imediat câteva 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 link-ul INN + 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 implementare. În handlerul de evenimente „ Câmpuri de căutare”Putem specifica până la 10 criterii de căutare și pentru fiecare dintre ele definim propriul set de câmpuri de căutare:

Dacă SearchVariantNumber = 1, atunci SearchPropertyNameString = „INN, KPP”; ElseIf SearchVariantNumber = 2 Apoi SearchPropertyNameString = „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 „”. Să fie mai întâi necesar să se investească resurse (timp) în formare, dar vor plăti mai mult decât primul proiect mai mult sau mai puțin serios.

În opinia mea, 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. Data Conversion: Exchange between Application Solutions”. Cartea este destul de veche (2008), dar este totuși de dorit să facem cunoștință 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 cunoaște limbajul încorporat. Sintaxa și ideologia limbii sunt foarte diferite, așa că trebuie să petreceți timp studiind. În rest, principiul rămâne același.

"1C: Întreprindere"este un sistem universal de automatizare a activitatilor intreprinderii si poate fi folosit pentru rezolvarea diverselor sarcini de gestiune si contabilitate. In prezent, a fost dezvoltat un numar mare de solutii standard si specializate pe platforma." 1C: Întreprinderi„care poate funcționa în strânsă integrare cu alte soluții, atât pe această platformă, cât și cu software terță parte.

Capacitatea de a organiza schimbul între diferite sisteme de informații este de mare importanță pentru o muncă eficientă. Platforma " 1C: Întreprindere„oferă o varietate de instrumente pentru schimbul de date și integrarea aplicațiilor.

Cartea descrie în detaliu schimbul de date în format XML, care este astăzi un mijloc general acceptat de prezentare a datelor. Sunt descrise procedurile de elaborare a regulilor, a căror aplicare va asigura transferul de informații de la un sistem informațional la altul, inclusiv schimbul de date între configurații tipice " 1C: Întreprinderi".

Cartea este însoțită de un CD care conține baze de informații demonstrative cu exemple de reguli de schimb și de configurare " 1C: Întreprindere. Conversia datelor".

Structura cărții

Introducere

Capitolul 1. Principii generale setările regulilor

Capitolul 2. Folosind reguli

Capitolul 3. Crearea automată a regulilor

Capitolul 4. Structura regulilor

Capitolul 5. Studiu detaliat al regulilor

Capitolul 6. Managerii de evenimente

  • Opțiuni
  • Operatorii de conversie
  • Manageri de reguli de încărcare a datelor
  • Manipulatori de reguli de conversie a obiectelor
  • Manageri de reguli de conversie a grupului de proprietăți
  • Manipulatorii regulilor de conversie a proprietăților

Capitolul 7. Câmpuri de căutare

Capitolul 8. Reguli de curățare a datelor

Capitolul 9. Algoritmi și interogări

Capitolul 10. Exemple tipice de reguli. Soluție

  • Conversia enumerarilor
  • Conversia directoarelor
  • Convertirea documentelor
  • Conversia registrelor de informații
  • Conversia planului de conturi
  • Convertirea unei diagrame cu tipuri de proprietăți
  • Convertirea unei diagrame cu tipuri de calcule
  • Conversia constantelor 1C: Enterprise 7.7
  • Conversia tranzacțiilor contabile 1C: Întreprindere 7.7

Capitolul 11. Reguli de optimizare

  • Reguli de încărcare a datelor
  • Reguli de conversie a obiectelor
  • Procesare generică de schimb de date XML

 

Ar putea fi util să citiți: