Администрирование · 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 не существует — там уникальность определяется набором измерений.
Сообщить(СсылкаНаОбъект.УникальныйИдентификатор());Как узнать 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 служит эталоном идентичности.
Как проверить результат
Корректность полученного GUID проверяется обратным поиском: создайте УникальныйИдентификатор из строки, получите ссылку и убедитесь, что она указывает именно на тот объект — сверьте код, наименование и дату. Если объект найден и реквизиты совпадают, идентификатор верный.
При передаче GUID в другую систему дополнительно проверьте формат строки: 36 символов, дефисы на правильных позициях, только шестнадцатеричные цифры. Некоторые внешние системы хранят GUID в обратном порядке байт — если объект в принимающей базе «не находится», хотя существует, уточните у разработчика интеграции, не требуется ли преобразование порядка.
Как проверить результат
Найден тот же объект, код и наименование совпадают
Объект не найден или найден другой — GUID неверный
36 символов, дефисы на позициях 9, 14, 19, 24
Другая длина или лишние символы — строка повреждена
Объект находится по GUID после обмена
Не находится — проверьте порядок байт или факт выгрузки объекта
Частые вопросы
Можно ли посмотреть GUID без конфигуратора и обработок?
Напрямую в интерфейсе — нет. Косвенный способ: вызвать ошибку обмена или удаления, в сообщении которой платформа укажет GUID, либо посмотреть идентификатор в навигационной ссылке объекта через «Получить ссылку» с последующим преобразованием. Практичнее попросить администратора установить обработку вывода GUID в дополнительные отчёты.
Меняется ли GUID при изменении объекта?
Нет. GUID присваивается один раз при создании ссылки и не меняется при редактировании реквизитов, переносе в другую папку, пометке на удаление или снятии пометки. Новый GUID объект получит только при пересоздании — например, при ручном создании копии в другой базе.
Что означает ошибка «Объект не найден (a1b2c3d4-...)»?
Это «битая» ссылка: в базе осталась ссылка на объект, который был физически удалён (например, при обмене или удалении без контроля ссылочной целостности). Строка в скобках — GUID удалённого объекта. По нему можно найти объект в резервной копии или базе-источнике и восстановить.
Есть ли GUID у записей регистров?
Нет. Уникальный идентификатор существует только у ссылочных типов: справочников, документов, планов счетов, планов видов характеристик, задач, бизнес-процессов. Записи регистров идентифицируются набором измерений и, для регистров сведений с периодичностью, периодом.
Как получить GUID сразу для списка объектов?
Напишите цикл по выборке запроса с вызовом УникальныйИдентификатор() для каждой ссылки и выводом в табличный документ или файл. Готовые консоли кода и инструменты разработчика позволяют сделать это без создания отдельной обработки.
Почему GUID из 1С не находится во внешней системе?
Частые причины: внешняя система хранит идентификатор в другом регистре или с обратным порядком байт, объект ещё не выгружался, либо в принимающей базе он создан заново с новым GUID. Сверьте строку посимвольно и уточните формат хранения у разработчика интеграции.
Что важно запомнить
GUID объекта в 1С получают только программно — методом Ссылка.УникальныйИдентификатор() в консоли кода, отладчике или обработке. Для обратного поиска используют ПолучитьСсылку с обязательной проверкой существования объекта. Идентификатор не меняется в течение жизни объекта и служит основой сопоставления при обменах.