К статье
Практический материал

Администрирование · 10 мин

Как посмотреть GUID объекта в 1С

Как узнать GUID объекта в 1С: через консоль кода, запрос, стандартные функции и внешние обработки. Пошаговые инструкции, примеры кода и разбор ошибок.

GUID (глобальный уникальный идентификатор) объекта в 1С нужен при обмене данными между базами, отладке интеграций, поиске «битых» ссылок и восстановлении объектов после сбоев. Платформа хранит GUID для каждой ссылки — документа, элемента справочника, плана счетов — в виде строки из 36 символов, например «a1b2c3d4-e5f6-7890-abcd-ef1234567890». В пользовательском интерфейсе этот идентификатор не отображается напрямую, поэтому его получают программно или специальными обработками.

Выбор способа зависит от вашей роли и прав доступа. Разработчику удобнее получить GUID через консоль кода или конфигуратор, бухгалтеру без прав на запуск внешних обработок подойдёт вариант с динамическим списком или просьбой к администратору. Ниже разобраны все рабочие методы с точным кодом и условиями применения.

Что такое GUID объекта и когда он нужен

GUID — это уникальный идентификатор, который платформа 1С присваивает каждой ссылке при создании объекта. Он не меняется при редактировании объекта, переносе в другую группу или изменении реквизитов. Именно по GUID, а не по коду или наименованию, механизмы обмена (планы обмена, конвертация данных, веб-сервисы) сопоставляют объекты в разных базах.

Типичные ситуации, когда требуется узнать GUID: поиск объекта в другой базе после обмена, диагностика ошибок вида «Объект не найден (a1b2c3d4-...)», настройка интеграции с внешними системами, восстановление удалённого объекта из резервной копии. Также GUID нужен при сравнении данных в распределённых базах, где коды и наименования могут совпадать, а объекты — быть разными.

Получение GUID через консоль кода

Самый быстрый способ для пользователя с правами на запуск внешнего кода — консоль кода (обработка «Консоль кода» из поставки ИР, инструменты разработчика или аналог). Достаточно одной строки, где вместо примера подставляется нужная ссылка.

Сообщить(Справочники.Номенклатура.НайтиПоКоду("000000123").УникальныйИдентификатор());

Если ссылка уже известна (например, выбрана в параметре обработки), код ещё короче:

Сообщить(МояСсылка.УникальныйИдентификатор());

Результат появится в окне сообщений в виде строки GUID. Метод УникальныйИдентификатор() доступен для любой ссылки: документа, элемента справочника, плана видов характеристик, задачи. Для записей регистров сведений GUID не существует — там уникальность определяется набором измерений.

bsl
Сообщить(СсылкаНаОбъект.УникальныйИдентификатор());

Как узнать GUID в отладчике конфигуратора

Если база запущена в режиме отладки, GUID можно посмотреть без написания обработок. Установите точку останова в месте, где переменная содержит ссылку на объект, запустите отладку и дождитесь остановки. Затем откройте табло (Ctrl+Alt+W) или окно «Вычислить выражение» (Shift+F9).

В поле выражения введите имя переменной со ссылкой, добавьте точку и метод УникальныйИдентификатор(): например, ТекущийОбъект.Ссылка.УникальныйИдентификатор(). Отладчик вычислит значение и покажет строку GUID, которую можно скопировать в буфер обмена.

Этот способ удобен при диагностике обменов: вы видите GUID конкретного объекта в момент его обработки кодом, не прерывая работу пользователей. Ограничение очевидно — нужен доступ к конфигуратору и возможность запустить отладку, что на рабочих базах часто закрыто политиками безопасности.

Поиск GUID через запрос и динамический список

В консоли запросов GUID напрямую не выводится: язык запросов не имеет функции преобразования ссылки в идентификатор. Однако есть обходной путь — выгрузить ссылку в таблицу значений и уже в коде пройтись по строкам, вызвав УникальныйИдентификатор() для каждой ссылки.

Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Контрагенты ГДЕ Код = &Код");

Запрос.УстановитьПараметр("Код", "00-000123");

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

Сообщить(Выборка.Ссылка.УникальныйИдентификатор());

КонецЦикла;

Некоторые типовые конфигурации и расширения позволяют вывести GUID как дополнительное поле динамического списка через программно добавленную колонку. Это требует доработки, поэтому в чистой типовой базе такой возможности «из коробки» нет — не стоит искать колонку GUID в стандартных настройках списка.

Обратная задача: найти объект по GUID

Чаще всего GUID нужен не сам по себе, а чтобы найти объект в другой базе или разобраться с ошибкой «Объект не найден». Для поиска по известному GUID используется конструктор УникальныйИдентификатор и метод ПолучитьСсылку:

Ид = Новый УникальныйИдентификатор("a1b2c3d4-e5f6-7890-abcd-ef1234567890");

Ссылка = Справочники.Номенклатура.ПолучитьСсылку(Ид);

Если Ссылка.ПолучитьОбъект() = Неопределено Тогда

Сообщить("Объект с таким GUID не найден");

Иначе

Сообщить(Ссылка);

КонецЕсли;

Важный нюанс: метод ПолучитьСсылку создаёт ссылку даже для несуществующего объекта, поэтому проверка существования обязательна — через ПолучитьОбъект() или запрос к таблице. Если объект удалён, ПолучитьОбъект() вернёт Неопределено, а в базе при этом может остаться «битая» ссылка с этим GUID.

Готовые обработки и способы без прав разработчика

Если запуск кода недоступен, существуют обходные варианты. Во многих командах используют внешние обработки «Универсальный поиск GUID» или аналогичные, которые администратор устанавливает в справочник дополнительных отчётов и обработок — тогда кнопка появляется прямо в форме списка, и пользователь видит GUID выбранного объекта без доступа к конфигуратору.

Ещё один приём — использование функции «Вывести список» в форме списка справочника или документов: в табличный документ выводятся служебные поля, но GUID среди них нет, поэтому этот путь не работает, и рассчитывать на него не стоит. Реально рабочие варианты без прав разработчика: обработка из дополнительных отчётов, запрос к администратору или просмотр GUID в сообщениях об ошибках обмена, где платформа сама указывает идентификатор проблемного объекта.

Сравнение вариантов

Консоль кода

Быстро и гибко, нужны права на запуск внешних обработок

Отладчик

Подходит при диагностике в момент выполнения кода, требует конфигуратор

Обработка из допотчётов

Доступна обычным пользователям, но её должен установить администратор

Сообщения об ошибках обмена

GUID виден без действий, но только для проблемных объектов

Типичные ошибки и ограничения

Распространённая ошибка — попытка найти GUID в свойствах объекта через «Ещё — Подробнее» или в форме элемента: платформа не показывает идентификатор в интерфейсе, и время на поиски кнопки тратится впустую. Другая ошибка — путать GUID с навигационной ссылкой: ссылка вида «e1cib/data/Справочник.Номенклатура?ref=...» содержит идентификатор в другом формате, и для получения привычного GUID его нужно преобразовать.

Также учитывайте: при выгрузке и загрузке через планы обмена GUID сохраняется, а при создании объекта копированием в другой базе вручную — генерируется новый. Поэтому сопоставление объектов «по наименованию» при интеграциях ненадёжно, и именно GUID служит эталоном идентичности.

Типичные ошибки
01
Искать GUID в форме объекта — интерфейс его не показывает, нужен код или обработка
02
Считать, что ПолучитьСсылку проверяет существование объекта — ссылка создаётся всегда, проверка делается отдельно
03
Путать GUID с навигационной ссылкой e1cib — форматы разные, требуется преобразование
04
Ожидать GUID у записей регистров сведений — идентификатор есть только у ссылочных объектов

Как проверить результат

Корректность полученного GUID проверяется обратным поиском: создайте УникальныйИдентификатор из строки, получите ссылку и убедитесь, что она указывает именно на тот объект — сверьте код, наименование и дату. Если объект найден и реквизиты совпадают, идентификатор верный.

При передаче GUID в другую систему дополнительно проверьте формат строки: 36 символов, дефисы на правильных позициях, только шестнадцатеричные цифры. Некоторые внешние системы хранят GUID в обратном порядке байт — если объект в принимающей базе «не находится», хотя существует, уточните у разработчика интеграции, не требуется ли преобразование порядка.

Контрольные точки

Как проверить результат

Обратный поиск по GUID
Норма

Найден тот же объект, код и наименование совпадают

Тревожный признак

Объект не найден или найден другой — GUID неверный

Формат строки
Норма

36 символов, дефисы на позициях 9, 14, 19, 24

Тревожный признак

Другая длина или лишние символы — строка повреждена

Поиск в другой базе
Норма

Объект находится по GUID после обмена

Тревожный признак

Не находится — проверьте порядок байт или факт выгрузки объекта

Частые вопросы

Можно ли посмотреть GUID без конфигуратора и обработок?

Напрямую в интерфейсе — нет. Косвенный способ: вызвать ошибку обмена или удаления, в сообщении которой платформа укажет GUID, либо посмотреть идентификатор в навигационной ссылке объекта через «Получить ссылку» с последующим преобразованием. Практичнее попросить администратора установить обработку вывода GUID в дополнительные отчёты.

Меняется ли GUID при изменении объекта?

Нет. GUID присваивается один раз при создании ссылки и не меняется при редактировании реквизитов, переносе в другую папку, пометке на удаление или снятии пометки. Новый GUID объект получит только при пересоздании — например, при ручном создании копии в другой базе.

Что означает ошибка «Объект не найден (a1b2c3d4-...)»?

Это «битая» ссылка: в базе осталась ссылка на объект, который был физически удалён (например, при обмене или удалении без контроля ссылочной целостности). Строка в скобках — GUID удалённого объекта. По нему можно найти объект в резервной копии или базе-источнике и восстановить.

Есть ли GUID у записей регистров?

Нет. Уникальный идентификатор существует только у ссылочных типов: справочников, документов, планов счетов, планов видов характеристик, задач, бизнес-процессов. Записи регистров идентифицируются набором измерений и, для регистров сведений с периодичностью, периодом.

Как получить GUID сразу для списка объектов?

Напишите цикл по выборке запроса с вызовом УникальныйИдентификатор() для каждой ссылки и выводом в табличный документ или файл. Готовые консоли кода и инструменты разработчика позволяют сделать это без создания отдельной обработки.

Почему GUID из 1С не находится во внешней системе?

Частые причины: внешняя система хранит идентификатор в другом регистре или с обратным порядком байт, объект ещё не выгружался, либо в принимающей базе он создан заново с новым GUID. Сверьте строку посимвольно и уточните формат хранения у разработчика интеграции.

Итог

Что важно запомнить

GUID объекта в 1С получают только программно — методом Ссылка.УникальныйИдентификатор() в консоли кода, отладчике или обработке. Для обратного поиска используют ПолучитьСсылку с обязательной проверкой существования объекта. Идентификатор не меняется в течение жизни объекта и служит основой сопоставления при обменах.