Отримання унікального ідентифікатора об'єкта в 1С

Якщо при роботі в 1С вам зустрічалося повідомлення «Об'єкт не знайдено», то прийшов час ознайомитися з поняттям «Унікальний ідентифікатор об'єкта». Розглянемо це поняття і те, як отримати унікальний ідентифікатор об'єкта в 1С.

Гуідо призначений для запобігання конфліктів при програмуванні.

Що це таке

Перш за все, глобальний унікальний ідентифікатор (Гуїдо) - це набір символів. У тексті він представляється записом з шістнадцяткових цифр. Ця група укладена в фігурні дужки, між собою вони поділяються дефісами і всього їх - тридцять дві. Алгоритм, за допомогою якого генерується значення такого коду, був створений фірмою Microsoft (Майкрософт, англ.).

Застосовується ця фішка, перш за все, щоб уникнути конфліктів при програмуванні (в цій публікації нас цікавить саме цей момент). Самим алгоритмом кодування неповторність ключа не гарантується. Однак загальна кількість можливих ключів занадто велике (3, 4028 × 1038) - відповідно ймовірність збігу мізерно мала.

Виглядає це приблизно так:

{30a69443-e271-4c2f-9087-af8598796674}

Таким чином, застосування такої системи покликане розрізняти по GUID (Globally Unique Identifier - Глобальний Унікальний Ідентифікатор) дві (можливо, несумісні) версії одного компонента (елемента).

ЦІКАВО: На початку створення алгоритму генерації по одній з частин коду можна було визначити комп'ютер, на якому створювалися файли (по MAC-адресу). Однак пізніше цю властивість алгоритму було нібито змінено (хоча хто знає ...).

Гуїдо в 1С

Кожен об'єкт (object, англ.) Системи в 1С характеризується посиланням, яка є типом даних. Як і всі елементи загальної системи - зберігається в довіднику. Логічно вона складається з його імені і GUID. Унікальність імені контролюється системою - не можна створити другий довідник з уже наявними ім'ям. Таким чином, object є неповторною сутністю в системі за рахунок винятковості його обох складових.

Операції з ключами

Унікальний ідентифікатор в 1С призначається в момент первинного запису елемента. Уже в процесі самої реєстрації можна бачити ключ, який буде прив'язаний до нього. Можна в цей процес втрутитися і вручну до моменту реєстрації змінити його по своєму бажанню. Дізнатися потрібний Гуїдо можна через створений запит в «Конструкторі запиту» (це стандартний метод для будь-якого елементу):

СправочнікСсилка = Справочнікі.ІмяСправочніка.НайтіПоНаіменованію ( «Найменування»);

GUID = СправочнікСсилка.УнікальнийІдентіфікатор ();

Отримане значення при використанні такого методу буде мати спеціальний тип.

Для перетворення до рядка потрібно вжити: «Рядок (Параметр)».

Отримати новий Гуїдо можна за допомогою такого запиту:

GUID = НовийУнікальнийІдентіфікатор ();

Перетворення в код посилання елемента можна методом УнікальнийІдентіфікатор ():

GUID = Контрагент.УнікальнийІдентіфікатор ();

помилки

Найчастіше помилки, зв'язані з ключами компонент, виникають коли елемент з бази був видалений, а ключ його в системі залишився. При видаленні потрібно перевіряти цілісність бази.

Тепер ви знаєте як в програмі 1С відбувається привласнення ключів для виключення помилок в програмуванні, як дізнатися чи привласнити код елемента, звідки виникають помилки, пов'язані з цією темою. Залишайте свої коментарі.