Разработка и Конфигурация · 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 через встроенный язык
Если у вас есть доступ к конфигуратору или возможность выполнить произвольный код (например, через внешнюю обработку с кнопкой «Выполнить»), самый прямой способ — метод УникальныйИдентификатор() у ссылки объекта. Он возвращает значение типа «УникальныйИдентификатор», которое легко преобразуется в строку.
Типовой фрагмент кода выглядит так: получаете ссылку на объект (из параметра, запроса или функции НайтиПоКоду), затем выводите идентификатор через Сообщить или возвращаете его строкой.
СсылкаНаОбъект = Справочники.Номенклатура.НайтиПоКоду("000001234");
Если Не СсылкаНаОбъект.Пустая() Тогда
ГУИДСтрокой = Строка(СсылкаНаОбъект.УникальныйИдентификатор());
Сообщить(ГУИДСтрокой);
КонецЕсли;Обратное преобразование тоже возможно: конструктор Новый УникальныйИдентификатор("строка") создаёт значение из строки, а метод ПолучитьСсылку(Идентификатор) у менеджера справочника или документа возвращает ссылку по известному GUID. Это основной приём при поиске объекта по идентификатору из внешней системы.
Ограничение способа: выполнение произвольного кода требует прав администратора или разработчика и в клиент-серверном режиме часто заблокировано настройками безопасности. В файловой базе под полными правами метод работает без ограничений.
Как узнать GUID через консоль запросов
Консоль запросов — стандартный инструмент разработчика, который есть в составе типовых конфигураций (часто в разделе «Администрирование» или как внешняя обработка). В языке запросов 1С есть функция УникальныйИдентификатор(), которая применяется к полю «Ссылка» и возвращает GUID прямо в результате запроса.
Запрос для просмотра идентификаторов списка элементов справочника выглядит так:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка,
Номенклатура.Наименование КАК Наименование,
УникальныйИдентификатор(Номенклатура.Ссылка) КАК ГУИД
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.Код = &КодТакой подход удобен, когда нужно выгрузить GUID сразу для группы объектов: например, подготовить таблицу соответствия «код — наименование — GUID» для настройки обмена. Результат можно скопировать в Excel или сохранить в файл.
Чтобы метод сработал, нужны права на просмотр соответствующего объекта метаданных и доступ к консоли запросов. В тонком клиенте консоль обычно запускается без конфигуратора, что делает способ доступным и для опытных пользователей.
Просмотр GUID внешними обработками без программирования
Для пользователей без навыков кода существуют готовые внешние обработки (файлы с расширением .epf), которые показывают GUID выбранного объекта и выполняют обратный поиск ссылки по идентификатору. Такие обработки распространяются на профильных ресурсах и входят в состав инструментов разработчика.
Порядок работы типовой обработки прост: открываете файл через меню «Файл — Открыть», выбираете объект базы в поле ссылки, и обработка показывает его GUID, а также навигационную ссылку и техническую информацию. Обратная функция позволяет вставить GUID и найти объект, которому он принадлежит, — это самый быстрый способ понять, что скрывается за идентификатором из сообщения об ошибке обмена.
- 1Откройте обработку просмотра GUID через меню Файл — Открыть
- 2Укажите ссылку на нужный объект в поле выбора
- 3Скопируйте показанный GUID в буфер обмена
- 4Для обратного поиска вставьте GUID в соответствующее поле и выполните поиск ссылки
- 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 из SQL-таблицы без конвертации и передача его во внешнюю систему. Интеграция «не видит» объект, и поиск причины занимает часы, хотя дело всего лишь в порядке байтов.
Проверка результата и ограничения
Признак того, что вы получили корректный GUID: строка имеет формат 8-4-4-4-12 шестнадцатеричных символов через дефисы, и обратный поиск по ней через ПолучитьСсылку возвращает именно тот объект, с которого вы начинали. Этот круговой тест — самая надёжная проверка.
Учтите ограничения: у записей регистров сведений и накопления GUID нет, потому что это не ссылочные объекты — идентифицировать их можно только по измерениям и регистратору. У удалённых объектов GUID «осиротевает»: ссылка с таким идентификатором может встречаться в других объектах, но самого элемента уже нет.
Как проверить результат
36 символов в формате 8-4-4-4-12 с дефисами
Другая длина, отсутствие дефисов, нечитаемые символы
ПолучитьСсылку возвращает исходный объект
Ссылка пустая или указывает на другой объект
Идентификаторы объекта в источнике и приёмнике равны
GUID различаются — объекты не сопоставлены, возможны дубли
Объект открывается и редактируется
Ссылка есть, но объект не найден — это битая ссылка после удаления
Перед настройкой нового обмена выгрузите таблицу соответствия «код — GUID» для ключевых справочников обеих баз и сверьте идентификаторы. Это занимает полчаса, но избавляет от недель разбора дублей после первого сеанса синхронизации.
Частые вопросы о GUID в 1С
Можно ли изменить GUID существующего объекта?
Штатными средствами — нет, идентификатор неизменен. Технически существуют обработки, пересоздающие объект с новым GUID с переносом ссылок, но это рискованная операция, которую выполняют только на копии базы и при крайней необходимости.
Что означает «Объект не найден» с GUID в тексте ошибки?
По этому идентификатору в базе есть ссылка, но сам объект удалён или никогда не переносился в эту базу. Найдите места использования битой ссылки и либо восстановите объект из копии с тем же GUID, либо очистите ссылки.
Сохранится ли GUID при выгрузке и загрузке через XML?
Да, при штатной выгрузке и загрузке данных (в том числе через универсальный обмен XML) идентификаторы сохраняются, если объект загружается как новый. Если в приёмнике уже есть объект с другим GUID, система создаст дубль, если не настроен поиск по реквизитам.
Где посмотреть GUID документа, а не справочника?
Теми же способами: у ссылки документа есть метод УникальныйИдентификатор(), а в запросе работает та же функция УникальныйИдентификатор(Ссылка). Различий между справочниками, документами, планами счетов и другими ссылочными типами здесь нет.
Одинаковы ли GUID в файловой и клиент-серверной базе после переноса?
Да, при корректном переносе (загрузка выгрузки .dt или обмен) идентификаторы сохраняются. GUID меняется только если объект создаётся заново в новой базе вручную или обработкой без переноса идентификатора.
Можно ли получить GUID без прав администратора?
Через интерфейс — нет. Но если в конфигурации есть доступные вам отчёты или обработки, выводящие идентификатор, прав администратора не потребуется — достаточно прав на чтение самого объекта. Иначе запросите GUID у разработчика или администратора базы.
Что важно запомнить
GUID не отображается в интерфейсе 1С: его получают через Ссылка.УникальныйИдентификатор(), функцию УникальныйИдентификатор() в запросе или внешние обработки. Для обратного поиска используйте ПолучитьСсылку. Значение из SQL требует конвертации байтов, а сопоставление объектов между базами ведите только по GUID, не по кодам.