Если при работе в 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С происходит присвоение ключей для исключения ошибок в программировании, как узнать или присвоить код элемента, откуда возникают ошибки, связанные с этой темой. Оставляйте свои комментарии.
Источник: winzen.ru