Conversia datelor pe pași

De obicei, pentru transferul datelor de la o configurație la alta a fost utilizată fie o prelucrare externă externă de la "1C" (directoare de descărcare / descărcare), fie de la furnizori terți, sau fiecare programator a inventat propria sa schemă de transfer de date.







În acest caz, s-ar putea folosi diferite abordări: de la prelucrarea inițială a datelor pentru a asigura unicitatea codurilor sau a denumirilor către algoritmi de sincronizare complexi, de la utilizarea fișierelor text la utilizarea mecanismelor OLE.

Cu toate acestea, gama de probleme care trebuie rezolvate a rămas practic la fel:
  • Furnizarea de a crea noi sau actualiza elementele existente directoare bazate pe ierarhie și subordonare, precum și un transfer valabil de istoricul modificărilor în detalii periodice.
  • Asigurarea "fuziunii" sau "bifurcării" directoarelor pe anumite motive cu păstrarea ierarhiei și subordonării.
  • În unele cazuri, trebuia, dimpotrivă, să se modifice ierarhia și / sau subordonarea.
  • Asigurarea creării (actualizării) documentelor și / sau transformarea documentelor de același tip în documente de alt tip (tipuri).
  • Transferul soldurilor și / sau totalurilor la o anumită dată.
  • Oricine se confruntă într-un fel cu dorința clientului de a transfera date de la o configurație la alta, a avut cumva să rezolve astfel de probleme.

    "Conversia datelor" # 150; Aceasta este o configurație dezvoltată de 1C în mod specific pentru a rezolva problemele de transfer de date de la o configurație la alta. În conformitate cu "1C", acest mecanism este conceput pentru a unifica procesul de transfer de date în configurații arbitrare, precum și pentru a unifica formatul fișierelor datelor transmise.

    Cum să începeți

    Cea mai mare problemă cu care am avut de înfruntat este de fapt începutul lucrării. Nu este foarte clar cum să începem lucrările de formare a regulilor. Iată câteva sfaturi practice:
    1. Dacă utilizați o configurație tipică și o să încărcați / încărcați la un alt standard # 150; apoi uitați-vă în lista de conversii, poate veți găsi ceea ce aveți nevoie.
  • Dacă aveți de gând să lucrați cu configurații complet auto-scrise, nu puteți căuta nimic, va trebui să faceți totul cu mâinile.
  • Dacă lucrați cu configurații tipice modificate pentru client, atunci trebuie să vă concentrați asupra celor mai apropiate configurații tipice.
  • În principiu, toate acestea sunt foarte logice, este necesar doar să gândim în avans și să alegem cel mai puțin timp consumator # 150; astfel încât să nu puteți face același lucru de mai multe ori.

    Să presupunem că avem cel mai interesant caz: nu este disponibilă nici o "apropiere" față de configurațiile tipice. Deci, noi creăm în elementele „Files“, care descriu locația fișierelor, configurațiile receptor și surse de date, precum și amplasarea regulilor de transfer de fișiere, și, dacă este necesar, fișierul de procesare de descărcare (de exemplu, „realizarea unei părți a deversării de prelucrare universale“, în ceea ce privește 1C ). Apropo, este întotdeauna de dorit să se indice această procesare # 150; în cazuri extreme, va fi gol.

    Apoi, facem configurațiile noastre în directorul "Configurări". În același director, putem încărca obiecte de configurare # 150; și anume creați în "Configuration Object" elemente de director care descriu obiecte de metadate din configurațiile noastre. În acest caz, în cazul în care obiectele de configurare au fost făcute înainte, acestea vor fi înlocuite, iar diferențele, dacă există, vor fi specificate în coloana „Descrierea modificărilor“ directorul „obiecte de configurare“ (această coloană este de dorit să se facă imediat vizibil prin apăsarea „Coloane "pe formularul directorului).

    Această caracteristică face posibilă utilizarea configurațiilor tipice, a obiectelor și a regulilor de transfer pentru lucrul cu configurații modificate. Prin modificarea referinței la configurația tipică din referința "Fișiere" la configurația tipică modificată și încărcarea obiectelor de configurare, vom obține o listă de modificări. În acest caz, rămâne să corectăm regulile de transfer de date în conformitate cu aceste modificări.

    Este interzisă editarea directorului "Obiecte de configurare". E greu de argumentat, dar în unele cazuri (schimbarea lungimii elementelor de recuzită) repornirea tuturor obiectelor poate distruge note importante despre modificările din configurație. Este cu atât mai ciudat să vedem o astfel de limitare în configurație, care este orientată, în primul rând, către programatori și nu către utilizatori.

    Apoi rămâne să adăugăm un element care descrie munca noastră în directorul "Conversie". Acest director specifică configurația sursei, configurația receptorului, fișierul regulat, executând o parte a descărcării pentru o anumită conversie.

    După toate cele de mai sus, puteți continua dezvoltarea reală a regulilor.

    Regulile transferului de date

    Deci, datele de la configurația sursei la configurația receptorului sunt conforme cu anumite reguli. Nu este nimic nou în asta. Luați în considerare mecanismele de formare a acestor reguli.

    Regulile sunt împărțite în două tipuri: regulile obiectului și regulile de cerințe. Din punct de vedere structural, aceste reguli sunt similare în multe feluri, însă înțelesul este diferit.

    Regulile obiectelor descriu tranziția datelor în ceea ce privește obiectele de metadate din configurațiile 1C. Din lista lor, se poate determina, în general, ce obiecte de metadate sursă sunt transferate către obiectele metadate ale receptorului. Regula obiectului are aproximativ următoarea formă: elementele din directorul "Nomenclatură" merg la elementele din directorul "Bunuri".

    Astfel, de la început, trebuie să determinăm că configurația receptorului corespunde cu unul sau alt obiect de configurare sursă. Este foarte posibil ca obiectul sursă să poată fi împărțit în mai multe obiecte de recepție, sau mai multe obiecte sursă pot fi combinate într-un obiect receptor. Implementarea concretă a transferului este descrisă prin reguli de rechizite, aceste reguli vor fi discutate mai jos.







    Parametrii pentru utilizarea regulilor obiectului

    În cazul în care regula este aplicată selecției, aceasta înseamnă că toate instanțele obiectului sursă vor fi procesate în conformitate cu această regulă. În caz contrar, numai acele instanțe ale obiectului sursă care sunt menționate de instanțe ale altor obiecte sursă prelucrate vor fi procesate (descărcate). Aplicarea regulii prin referință poate accelera foarte mult procesul de încărcare / descărcare, precum și eliminarea receptorului de instanțele inutile ale anumitor obiecte.

    Impunerea condițiilor pentru regulile obiectului

    Pentru a aplica o regulă obiect, puteți impune, dacă doriți, o condiție. O condiție este fie un set de constrângeri formalizate prin utilizarea constructorului de condiții, fie executarea unei funcții definite de utilizator. În cazul în care rezultatul verificării condiției este "TRUE", regula va fi executată, altfel regula va fi ignorată. Dacă condiția este descrisă de utilizator folosind funcția, atunci trebuie să returneze o unitate dacă este necesară procesarea de către regulă.

    Obțineți funcția de preluare a obiectului

    Dacă nu avem suficient instrumentele de mai sus pentru a organiza încărcarea instanțelor de obiecte sursă, este posibil să descriem condițiile de descărcare printr-o funcție arbitrară, numită funcția de selecție a obiectelor. Eu însumi nu am folosit niciodată această funcție, așa că nu-i pot descrie lucrarea.

    În cele din urmă, vreau să remarcăm că aplicarea transformării obiectelor și funcțiilor eșantionului are sens în acele cazuri în care sarcina semantică subiect-obiecte a receptorului și a sursei este semnificativ diferită. În caz contrar, de regulă, există suficienți parametri pentru folosirea regulilor și impunerea condițiilor privind regulile, precum și a regulilor scrise corect pentru transferul de rechizite. Acestea vor fi discutate mai departe.

    Regulile de rechizite sunt o descriere a regulilor pentru transferul de rechizite ale obiectului sursă la rechizitele obiectului (obiectele) receptorului. În consecință, regulile de rechizite nu pot fi luate în considerare separat de regulile obiectelor. Dacă regulile obiectului descriu ce se întâmplă acolo, regulile de rechiziții descriu modul în care obiectul sursă se duce la obiectul receptorului. Să luăm în considerare aceste oportunități oferite de "Conversia datelor" pentru compilarea regulilor de conversie a rechizitelor.

    În regula de procesare a recuzelor puteți specifica direct transformarea efectuată pe popi sau obiectul la care aparțin această recuzită. Aceasta înseamnă că valoarea la pornire va receptor elemente de recuzită poate să nu corespundă valorii sursei recuzită și pot fi obținute pornind de la orice alte detalii ale obiectului sursă. Cea mai comună conversie din memoria mea # 150; codul sursă-cod este completat cu lungimea codului receptor-receptor.

    În același loc, puteți specifica pur și simplu valoarea receptorului necesar dacă tipul acestuia nu este agregat.

    În plus, este posibilă descrierea arbitrară a valorilor receptorului necesar pentru valorile sursei de recuzită folosind o funcție în limba încorporată. Ca parametri, valoarea sursei de recuzită este transferată funcției, dar ceea ce va reveni ca valoare a recuzitorului receptorului, aceasta este afacerea dvs.

    Impunerea condițiilor pentru regulile de rechizite

    În mod asemănător cu regulile obiectelor, pot fi impuse și reguli de rechizite, numai în acest caz condițiile pot fi de două tipuri fundamental diferite, iar utilizarea lor diferă de condițiile obiectelor.

    Primul tip # 150; aceasta este condiția pentru obiectul sursă. Această condiție este descrisă ca și în cazul obiectelor și manipulează toate elementele esențiale ale obiectului sursă precum și o serie de alte funcții, cum ar fi EtoGruppa (), părintele (părinții), Holder (), etc.

    Al doilea tip # 150; aceasta este condiția pentru sursa necesară. Această condiție operează cu conceptele sursei de recuzită. În cazul în care tipul de recuzită-sursă este agregat, atunci avem acces la obiectele de acest tip.

    Regula de conversie este folosită în regulile de rechizite în cazul în care tipul de props-sursă este agregat. În acest caz, recuzele conțin un obiect de metadate agregat de un anumit tip # 150; și, ca o consecință, regula noastră de transformare trebuie să fie descrisă de noi.

    Metodele de descărcare descriu exact metodele de descărcare ;-). Eliberați sau nu. Fie că descărcăm istoricul rechizitelor periodice, fie că descărcăm valoarea reală. Pentru documente, treceți prin partea de masă sau nu.

    Mai ales util este modul "Căutare". Dacă îl utilizați, procesarea de boot încearcă să găsească o copie a obiectului-receptor pe setul de valori descărcate detaliile sale (cele pentru care au modul de pornire) și, în caz de eșec creează o nouă instanță. Aceasta oferă terenul pentru sincronizarea obiectelor nu numai prin cod sau nume, ci și printr-un set arbitrar de rechizite, inclusiv. și tip agregat. Nu am folosit o serie de alte metode de descărcare, dar pentru sarcini de transfer de date. "Căutare" este potrivită în 90% din cazuri.

    Tot ceea ce am determinat cumva prin funcțiile noastre # 150; condiții pentru obiecte și / sau rechizite, reguli de eșantionare pentru ambele # 150; se numește scenariu. Când creați scripturi, rețineți că acestea sunt executate în baza de date sursă și nu știu nimic despre receptorul de bază. În astfel de scripturi puteți plasa unele acțiuni necesare înainte de descărcarea de deasupra bazei de date sursă. Toate scripturile formează în final nucleul "descărcării executante", adică acea parte a "descărcării", care asigură selecția și transformarea obiectelor și a obiectelor.

    Dacă există scripturi, adică executarea descărcării, dacă ați reușit să o faceți fără ele, atunci nu aveți nevoie de această procesare.

    Normele de schimb valutar prevăd caracteristici precum transferul marcajului de ștergere, statutul documentelor (desfășurate / nu efectuate).

    Toate acestea sunt descrise în detaliu în descrierea directorului "Parametri de schimb", și nu voi mai rezista acestui lucru. Lasă-mă să vă atrag atenția asupra faptului că documentele din receptor va avea loc pe algoritmul, mai degrabă decât algoritmul de bază de date sursă, deci nu un mod de a documentului și postările sale de transfer pentru o anumită regulă.

    Regula de convertire a valorii este compilarea unui tabel de corespondență între valorile obiectului sursă și valorile obiectului receptorului. Aplicația cea mai comună # 150; convertește valorile enumerărilor. Acesta este cel mai primitiv mod de descriere a regulii. În plus, un tabel similar este utilizat pentru transferul soldurilor și tranzacțiilor contabile. Pentru conturi, există o indicație nu numai a corespondenței valorilor, ci și introducerea unor reguli pentru transferul subcontinentului.

    Transferul soldurilor și tranzacțiilor contabile

    Pentru a transfera tranzacțiile trebuie să fie de trei lucruri: regulile de conversie a operațiunilor cum ar fi conversia documentelor regula de metadate tip de obiect „operațiune“, precum și valoarea de conversie pentru planul de conturi cu regulile de conversie subkonto formate pentru fiecare rând din tabelul de conversie a planului de conturi.

    Regulile pentru conversia subcontracturilor sunt regulile uzuale pentru conversia obiectelor. Pentru fiecare linie a diagramei de valori de masă conturi de conversie specificate set de norme privind transferul subkonto. De obicei, timpul de formare a regulilor de transfer subkonto regulă de conversie obiecte practic deja formate, astfel încât procesul este redus la instrucțiuni subkonto-sursă-receptor și obiect regula subkonto pentru conversie.

    Transferul totalurilor contabile pentru o anumită dată se efectuează prin înregistrare; în sursa pentru fiecare cont conversiile descrise în tabelul de valori pentru planul de conturi, soldul format prin subkonto finală desfășurată. În operațiunile de bază-recepție la intrarea balanțelor inițiale se formează în conformitate cu regulile pentru conversia conturilor, sub-obiectelor și obiectelor.

    Acest mecanism vă permite să efectuați aproape orice operațiune privind rezultatele conturilor specifice: Puteți „fuziona“ cele două conturi într-una singură, puteți „traduce“ valoarea unei anumite surse de valoare subkonto în receptoarele subconturi (așa cum a fost făcut în timpul tranziției la noul plan de conturi), puteți "răspândirea" contului de mai multe, etc.

    De regulă, există mai multe reguli pentru conversia unui plan de conturi: unul pentru procesarea acelor conturi care nu necesită conversii complexe și altele pentru procesarea mai complexă. Regulile de conversie a schemei de conturi pot, ca de obicei, să impună condiții, iar pentru diferite condiții, să specifice diferite reguli de procesare.

    Cea mai completă înțelegere a posibilităților de transfer de solduri și de modificare a planului de conturi reprezintă regulile pentru trecerea de la vechiul grafic de conturi la noul plan de conturi. În aceste reguli, practic sunt prezentate toate tehnicile necesare în practică.







    Articole similare

    Trimiteți-le prietenilor: