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

Разработка и Конфигурация · 12 мин

Где посмотреть GUID в 1С: способы узнать уникальный идентификатор объекта

Где посмотреть GUID объекта в 1С: через запрос, код, внешние обработки и SQL. Способы получения уникального идентификатора ссылки для разных ролей.

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

Проблема в том, что GUID не отображается в стандартном интерфейсе 1С: ни в форме элемента, ни в списке, ни в свойствах объекта его не видно. Поэтому у пользователей и разработчиков регулярно возникает вопрос, где его посмотреть. Способ зависит от вашей роли: есть ли у вас доступ к конфигуратору, к консоли запросов или только к пользовательскому режиму.

Ниже разобраны рабочие методы: через встроенный язык, консоль запросов, универсальные обработки, SQL и поиск по известному GUID. Для каждого указаны условия применения и ограничения.

Что такое GUID в 1С и зачем он нужен

GUID в 1С — это 36-символьная строка вида b2b3c4d5-1234-5678-9abc-def012345678, которую платформа генерирует автоматически при создании ссылочного объекта. Внутри базы данных идентификатор хранится в служебном поле таблицы и служит первичным ключом связи между таблицами.

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

Важно понимать разницу: код, номер и наименование — это изменяемые реквизиты, а GUID — внутренний идентификатор. Перенумерация документов или смена кодов справочника GUID не затрагивает.

Как посмотреть GUID через встроенный язык

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

Типовой фрагмент кода выглядит так: получаете ссылку на объект (из параметра, запроса или функции НайтиПоКоду), затем выводите идентификатор через Сообщить или возвращаете его строкой.

1c
СсылкаНаОбъект = Справочники.Номенклатура.НайтиПоКоду("000001234");
Если Не СсылкаНаОбъект.Пустая() Тогда
    ГУИДСтрокой = Строка(СсылкаНаОбъект.УникальныйИдентификатор());
    Сообщить(ГУИДСтрокой);
КонецЕсли;

Обратное преобразование тоже возможно: конструктор Новый УникальныйИдентификатор("строка") создаёт значение из строки, а метод ПолучитьСсылку(Идентификатор) у менеджера справочника или документа возвращает ссылку по известному GUID. Это основной приём при поиске объекта по идентификатору из внешней системы.

Ограничение способа: выполнение произвольного кода требует прав администратора или разработчика и в клиент-серверном режиме часто заблокировано настройками безопасности. В файловой базе под полными правами метод работает без ограничений.

Как узнать GUID через консоль запросов

Консоль запросов — стандартный инструмент разработчика, который есть в составе типовых конфигураций (часто в разделе «Администрирование» или как внешняя обработка). В языке запросов 1С есть функция УникальныйИдентификатор(), которая применяется к полю «Ссылка» и возвращает GUID прямо в результате запроса.

Запрос для просмотра идентификаторов списка элементов справочника выглядит так:

1c-query
ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    Номенклатура.Наименование КАК Наименование,
    УникальныйИдентификатор(Номенклатура.Ссылка) КАК ГУИД
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Код = &Код

Такой подход удобен, когда нужно выгрузить GUID сразу для группы объектов: например, подготовить таблицу соответствия «код — наименование — GUID» для настройки обмена. Результат можно скопировать в Excel или сохранить в файл.

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

Просмотр GUID внешними обработками без программирования

Для пользователей без навыков кода существуют готовые внешние обработки (файлы с расширением .epf), которые показывают GUID выбранного объекта и выполняют обратный поиск ссылки по идентификатору. Такие обработки распространяются на профильных ресурсах и входят в состав инструментов разработчика.

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

Порядок действий с обработкой
  1. 1
    Откройте обработку просмотра GUID через меню Файл — Открыть
  2. 2
    Укажите ссылку на нужный объект в поле выбора
  3. 3
    Скопируйте показанный GUID в буфер обмена
  4. 4
    Для обратного поиска вставьте GUID в соответствующее поле и выполните поиск ссылки
  5. 5
    Проверьте, что найденный объект — именно тот, который ожидался

Где посмотреть GUID на уровне СУБД

В клиент-серверном варианте GUID хранится в таблицах SQL Server или PostgreSQL в поле _IDRRef (для ссылочных таблиц). Однако напрямую значение из SQL нельзя просто скопировать в 1С: платформа хранит идентификатор в бинарном виде с переставленными байтами, и строковое представление в SQL отличается от того, что показывает 1С.

Для преобразования используют специальные функции конвертации (их публикуют в профильных статьях; существуют варианты на T-SQL и на встроенном языке 1С). Алгоритм меняет порядок байтов в группах GUID по определённому правилу. Если вы не уверены в корректности функции, надёжнее получить GUID штатными средствами платформы — через запрос или код.

Прямые запросы к СУБД допустимы только на чтение. Любая ручная правка данных в таблицах SQL нарушает условия поддержки и почти гарантированно приводит к рассогласованию данных, которое проявится не сразу, а в самый неподходящий момент.

Как найти объект по известному GUID

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

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

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

Маршрут решения

Как выбрать способ

Нужен GUID одного объекта и есть права разработчикаИспользуйте код Ссылка.УникальныйИдентификатор() через внешнюю обработку
Нужны GUID для списка объектовВыполните запрос с функцией УникальныйИдентификатор() в консоли запросов
Нет навыков кода и доступа к конфигураторуОткройте готовую обработку просмотра GUID из доверенного источника
GUID известен из ошибки обмена, нужно найти объектИспользуйте обработку поиска по GUID или ПолучитьСсылку с проверкой существования
База клиент-серверная и нужен массовый анализЧитайте _IDRRef на уровне SQL с функцией конвертации байтов, только на чтение

Типичные ошибки при работе с GUID

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

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

Третья ошибка — копирование GUID из SQL-таблицы без конвертации и передача его во внешнюю систему. Интеграция «не видит» объект, и поиск причины занимает часы, хотя дело всего лишь в порядке байтов.

Типичные ошибки
01
Искать GUID в форме объекта — идентификатор не отображается в интерфейсе, это не реквизит
02
Сопоставлять объекты разных баз по коду или наименованию — после перенумерации обмен создаст дубли
03
Использовать значение _IDRRef из SQL без конвертации байтов — внешняя система не найдёт объект
04
Создавать объект вручную в приёмнике вместо переноса с сохранением GUID — ссылочная целостность нарушится
05
Запускать непроверенные обработки в рабочей базе — код выполняется с правами пользователя и может повредить данные

Проверка результата и ограничения

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

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

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

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

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

36 символов в формате 8-4-4-4-12 с дефисами

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

Другая длина, отсутствие дефисов, нечитаемые символы

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

ПолучитьСсылку возвращает исходный объект

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

Ссылка пустая или указывает на другой объект

Совпадение GUID в двух базах
Норма

Идентификаторы объекта в источнике и приёмнике равны

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

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

Наличие объекта в базе
Норма

Объект открывается и редактируется

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

Ссылка есть, но объект не найден — это битая ссылка после удаления

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

Частые вопросы о GUID в 1С

Можно ли изменить GUID существующего объекта?

Штатными средствами — нет, идентификатор неизменен. Технически существуют обработки, пересоздающие объект с новым GUID с переносом ссылок, но это рискованная операция, которую выполняют только на копии базы и при крайней необходимости.

Что означает «Объект не найден» с GUID в тексте ошибки?

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

Сохранится ли GUID при выгрузке и загрузке через XML?

Да, при штатной выгрузке и загрузке данных (в том числе через универсальный обмен XML) идентификаторы сохраняются, если объект загружается как новый. Если в приёмнике уже есть объект с другим GUID, система создаст дубль, если не настроен поиск по реквизитам.

Где посмотреть GUID документа, а не справочника?

Теми же способами: у ссылки документа есть метод УникальныйИдентификатор(), а в запросе работает та же функция УникальныйИдентификатор(Ссылка). Различий между справочниками, документами, планами счетов и другими ссылочными типами здесь нет.

Одинаковы ли GUID в файловой и клиент-серверной базе после переноса?

Да, при корректном переносе (загрузка выгрузки .dt или обмен) идентификаторы сохраняются. GUID меняется только если объект создаётся заново в новой базе вручную или обработкой без переноса идентификатора.

Можно ли получить GUID без прав администратора?

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

Итог

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

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