Decodificarea unei reprezentări a link-ului rupt

Un pic despre UUID și GUID și despre relațiile lor.
Când ne întâlnim cu link-ul rupt în Enterprise 8, uneori devine necesar să creăm un obiect cu identificatorul său. Cu toate acestea, șirul de identificare și textul bitului de legătură din întreprindere sunt diferite, însă este ușor să recuperați unul care cunoaște celălalt.







Când ne întâlnim cu link-ul rupt în Enterprise 8, uneori devine necesar să creăm un obiect cu identificatorul său. Cu toate acestea, șirul de identificare și textul bitului de legătură din întreprindere sunt diferite, însă este ușor să recuperați unul care cunoaște celălalt.

Să definim notația:

UUID-ul este o subcrasă pe care o vedem în modul enterprise în reprezentarea de referință a biților

Obiectul nu a fost găsit (N: UUID);

unde N este numărul tabelului din tabelul din baza de date, de exemplu, _ReferenceN este tabelul directorului din baza de date.

Pentru un document, acest tabel va avea numele _Document N. Puteți vedea numele acestor tabele dacă există o versiune client-server a bazei de date de informații 1C: Enterprise (a se vedea figura).

GUID este șirul pe care îl folosim pentru a crea obiectul Identifier unic:

Iată două funcții simple care se pot compune ușor conform figurii propuse:

Funcția Export UUIDToGUID (UUID)

Drepturile de returnare (UUID 8.) + "-" + Medie (UUID 21. 4.) + "-" + Medie (UUID 17. 4.) + "-" + Leo (UUID 4.) + "-" + Medie (UUID 5. 12.);

Funcție GUIDToUUID (GUID) Export

Rentabilitatea medie (GUID 20. 4.) + Drepturi (GUID. 12) Medie + (GUID 15. 4.) Medie + (GUID 10. 4.) + Leo (GUID 8).

În funcție de semnificația numărului N din linia bitului de referință, Obiectul nu este găsit (N: UUID), acest număr poate fi considerat un identificator de tip.

Pentru a determina tipul, puteți completa în prealabil, de exemplu, o potrivire (Număr N - TypeObject). Și N determină din reprezentarea bitului de referință.

Aici sunt funcțiile modulului de procesare pentru determinarea tipului (doar o funcție de export pentru decodarea bitului de referință):

// Reprezentarea link-ului de referință: Obiectul nu a fost găsit (TypeID: UUID)
// identificator de tip






// UUID este identificatorul global
Funcția structurii reprezentării referinței de biți (reprezentând referința biților)

// Căutați poziția skoboki
Pos1 = Găsiți (link-uri ViewBit) "(");
Pos2 = Găsiți (Linkuri ViewBit. ":");

Dacă ns> 0 și ns2> 0 și ns2> ns1, atunci
TypeID = Mediu (Reprezentarea referinței de biți, Pos1 + 1. Pos2 - Pos1 - 1);
UUID = Mediu (Reprezentarea referinței de biți, Pos2 + 1,32);
altfel
TypeID = "";
UUID = Prezentarea bibliografiei;
Sfârșit Dacă;

Returnați o nouă structură ("TypeID, UUID"; ID-ul tipului .UUID);

Terminați funcția
// Returnează un meci: Identificator de tip (șir) - Șir de definire de tip
Identificarea tipurilor de funcții ()

Conformitate = Notificare nouă;

Gama de măști de entități de referință ale managerilor = New Array;
O serie de colecții de agenți de referință ai managerilor. Adăugați (Directoare);
O serie de colecții de agenți de referință ai managerilor. Adăugați (Documente);
O serie de colecții de agenți de referință ai managerilor. Adăugați (Planuri de tipuri de caracteristici);
O serie de colecții de agenți de referință ai managerilor. Adăugați (planuri de cont);
O serie de colecții de agenți de referință ai managerilor. Adăugați (Procese de afaceri);
O serie de colecții de agenți de referință ai managerilor. Adăugați (Sarcini);
O serie de colecții de agenți de referință ai managerilor. Adăugați (planuri pentru Exchange);

Terminați funcția
// Returnează structura: "TypeID, UUID, Type, GUID"
Funcția Decriptare a reprezentării referinței biți (Reprezentarea referinței de biți) Export

Dacă mConnection de identificatori de tipuri = Undefined apoi
mConnection of IdentifiersTypes = Conformitatea identificatorilor tipurilor ();
Sfârșit Dacă;

Structura prezentării = Structura reprezentării referinței de biți (transmiterea referinței de biți);

StringType = mConnection of IdentifiersTypes [Structura imaginii. TypeID];
Dacă StringType = Undefined Apoi
StringType = "Undefined";
Sfârșit Dacă;

Întoarcere Structura Noua ( "TypeID, UUID, tip, GUID" StrukturaPredstavleniya TypeID StrukturaPredstavleniya UUID StrokaTipa UUIDToGUID (StrukturaPredstavleniya UUID) .......);

13. nalivai (nalivai-chai) 11/27/11 10:20 PM În prezent în firul

Poate confunda linkul rupt cu "identificatorul unic", care într-adevăr nu spune nimic despre tip, este componenta obiectului care o face unică în baza de date.

Odată cu restaurarea de link-uri rupte, desigur, trebuie să fie extrem de atent, ca orice operațiuni de baze de date non-tradiționale nu sunt stabilite în logica programului (configurare). Ca să nu mai vorbim de faptul că legăturile rupte pe care doriți să le restaurați este posibil să fi apărut ca urmare a manipulării neglijente a bazei de date, sau lacune în materie de schimb de date.

O bună opțiune este de a restabili legăturile întrerupte din baza de date de rezervă.

Nu am propus să folosiți un generator de numere aleatorii pentru a completa detaliile când restaurați un obiect.

15. Andrey Andreevich (nalivai-chai) 595 11/29/11 09:38 Acum acum in thread

Așa este: în funcție de conținutul câmpului cu bitul de referință, nu de tipul câmpului.







Trimiteți-le prietenilor: