Lucrați cu planurile de schimb în 1s

Planul de schimb în 1C este un obiect de configurare a metadatelor care servește la implementarea sincronizării datelor între bazele de informații 1C (și, de asemenea, pentru schimbul cu alte sisteme).







Planurile de schimb conțin un mecanism de înregistrare a modificărilor, astfel încât planurile de schimburi să poată stoca informații despre elementele modificate (documente, directoare etc.) din planul de schimb.

Prin structura sa, planul de schimb este foarte similar cu obiectul metadate "Directoare". Pe lângă planul de referință, planul de schimb conține elemente în care elementele planului de schimb sunt noduri ale bazelor de informații. Planul de schimb poate conține cât mai multe noduri posibil, dar trebuie să aibă cel puțin un nod "rădăcină".

Să analizăm în detaliu structura planului de schimb:

Obiectul planului de schimb de metadate este localizat în ramura "Generală" a configuratorului.

Lucrați cu planurile de schimb în 1s

Lucrați cu planurile de schimb în 1s

Înregistrarea programului de modificări într-un anumit plan nod de schimb

Fragmentul codului pentru înregistrarea programelor modificărilor planului de schimb

NodeCollection = planuri de schimb. prosto_Platform schimb. Găsiți codul ("001"); // căutați nodul planului de schimb prin cod, modificările vor fi înregistrate în acest nod

Daca TypeSource (Source) = Type ("Directory.Nomenclature") Apoi // in parametrul procedurii Sursa este trecut obiectul pe care il vom inregistra

Planuri de schimb. Înregistrează modificările (NodeChange, Source); // înregistrați obiectul

Modificări de înregistrare moale poate fi efectuată într-un obiect modul de procedură „PriZapisi“, sau este posibil să se stabilească un abonament separat pentru evenimentul „PriZapisi“ și înregistrează modificările în abonament (a doua variantă este preferabilă, deoarece nici o altă problemă cu configurația de actualizare).

De asemenea, puteți înregistra un element în planul de comunicare în modul de utilizare, utilizând procesarea "Înregistrați modificările pentru schimbul de date".

Lucrați cu planurile de schimb în 1s

Deschideți procesul "Înregistrați modificările pentru schimbul de date", selectați obiectul pe care doriți să-l înregistrați în arborele de configurare și faceți clic pe butonul "Înregistrați modificările pentru un singur obiect". Puteți, de asemenea, să "Înregistrați modificările tuturor obiectelor selectate" sau "Anulează modificările".







Citirea modificărilor înregistrate de la nodul planului de schimb

După înregistrarea modificărilor, putem citi modificările înregistrate pentru a încărca în continuare modificările într-un fișier XML sau pentru a le transfera într-un alt sistem de informații prin intermediul serviciilor Web.

Fragmentul codului pentru citirea modificărilor înregistrate în nodul planului de schimb

NodeCollection = planuri de schimb. prosto_Platform schimb. Găsiți codul ("001"); // căutați nodul planului de schimb prin cod, din acest nod vom citi schimbările

Denumiți Timestamp = Obțineți numele fișierului de timp ("xml"); // obține numele fișierului temporar

Încercăm operația // read în secțiunea Attempt, în caz de eroare, va fi afișată folosind metoda Report în excepție

WriteReport = Planuri pentru Exchange. Creați un mesaj de înregistrare (); // creați un mesaj de înregistrare, acest lucru este necesar pentru a crea în continuare un eșantion de modificări în planul de schimb

KMLLRescriptReset și = NewXML Entry; // creați o înregistrare XML

HMLZapisVygruzki. Deschideți fișierul (denumiți marcajul de timp "Windows-1251"); // scrie o înregistrare XML într-un fișier

Scrie Mesajele. Schimbați Start (CmdBoxRecord .NodeChange); // începe înregistrarea

Array de Elemente Loadable = Array Nou;

Sampleplan = Schimburi planificate. Selectați Modificări (Scrieți mesaje, Destinatar, Metadate, Referințe, Nomenclatură); // crea o selecție de modificări, vor fi selectate elementele modificate ale directorului. Nomenclatura din nodul de schimb specificat mai sus

Până acum, SlicingPlan. Înainte () Loop // ciclu după eșantion

Încărcare obiect și = Selecție. Primiți (); // obțineți obiectul modificat din eșantion

Dacă TypeZ (LoadBox) = Type ("DirectoryObject.Nomenclature") și NOT LoadBox. Observații Apoi verificați dacă obiectul se potrivește cu condițiile de descărcare

Gamă de elemente încărcabile. Adăugați (încărcați obiectul); // completați matricea de elemente pentru descărcare

Scrie Mesajele. Finalizați înregistrarea (); // finalizați înregistrarea

HMLZapisVygruzki. Închide (); // închideți fișierul în care au fost citite modificările

Raport (descrierea erorilor ()); // în cazul unei citiri nereușite a modificărilor o eroare la text

Ștergeți fișierele (numele fișierului Timed); // ștergeți fișierul temporar în care au fost citite modificările

Desigur, metoda "ExchangeSwap. Select Change") are dreptul să existe și în unele cazuri nu poate fi făcută fără, dar este preferabil să folosiți tabelul virtual "Modificări" pentru a citi schimbările înregistrate de la nodul planului de schimb. Tabela virtuală "Modificări" este creată automat pentru fiecare obiect inclus în planul de schimb.
Chestiunea este că atunci când utilizați metoda "Planuri pentru schimbare. Alegeți Modificați ()", puteți obține blocări excesive în baza de date. Metoda "Planuri de Schimb. Selectați Schimbare ()" ar trebui să citească teoretic numai modificările de la nodul plan, dar de fapt nu este. Dacă deschideți sintaxa ajutorului, vom vedea că, în timpul eșantionării modificărilor în jurnalul de schimbări, se va trimite numărul mesajului de comunicare în care vor fi transmise modificările. Atunci când acest număr de mesaj este introdus și obiectul este înregistrat (și în momentul înregistrării obiectului este blocat). De aceea este mai bine să folosiți tabelul virtual "Modificări", atunci când folosiți acest tabel, nu există blocaje excesive. Următoarea este o interogare de eșantion din tabelul de schimbare al Nomenclaturii:

Fragmentul codului pentru citirea modificărilor înregistrate în nodul planului de schimb







Articole similare

Trimiteți-le prietenilor: