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

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

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

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

UID (точнее — GUID, глобальный уникальный идентификатор) объекта в 1С — это строка вида «8b3b3c3e-…», которую платформа присваивает каждому элементу справочника, документу и другим ссылочным объектам при создании. В отличие от кода или номера, идентификатор никогда не меняется и не повторяется, поэтому именно его используют при обмене данными между базами, интеграции с сайтами и сторонними системами, а также при поиске «битых» ссылок.

Проблема в том, что в пользовательском интерфейсе 1С идентификатор по умолчанию нигде не отображается. Чтобы его увидеть, нужно воспользоваться одним из нескольких способов: встроенными инструментами разработчика, запросом, специальной обработкой или фрагментом кода. Ниже разобраны все рабочие варианты — от самого простого до программного.

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

Что такое UID в 1С и где он хранится

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

Важно понимать разницу между UID и другими реквизитами. Код справочника или номер документа видны пользователю и могут совпадать в разных базах или даже меняться при перенумерации. Идентификатор же уникален глобально: вероятность совпадения двух случайно сгенерированных GUID практически равна нулю. Именно поэтому при синхронизации баз объекты сопоставляются по нему.

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

Как узнать UID через внешнюю обработку

Самый простой способ для пользователя без навыков программирования — воспользоваться одной из распространённых внешних обработок, например «Универсальный подбор и обработка объектов» или аналогичными инструментами с диска ИТС. Такие обработки открываются через меню «Файл → Открыть» и позволяют выбрать любой объект и увидеть его идентификатор в явном виде.

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

Учтите, что запуск внешних обработок может быть запрещён настройками безопасности. В типовых конфигурациях это регулируется ролью «Интерактивное открытие внешних отчетов и обработок». Если команда «Файл → Открыть» недоступна или файл не запускается, обратитесь к администратору базы.

Порядок действий через обработку
  1. 1
    Откройте меню «Файл → Открыть» и выберите файл обработки подбора объектов
  2. 2
    Укажите тип объекта: справочник или документ
  3. 3
    Найдите нужный элемент по коду или наименованию
  4. 4
    Откройте карточку объекта в обработке и скопируйте значение поля «Уникальный идентификатор»
  5. 5
    Проверьте, что скопированная строка содержит 36 символов с дефисами

Как посмотреть UID через консоль запросов

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

Практический приём: выполните запрос вида «ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ Код = &Код», затем в результате найдите нужную строку. Многие консоли запросов при двойном щелчке по ссылке показывают её внутреннее представление, включая GUID. Также можно получить идентификатор напрямую, если консоль поддерживает вывод произвольных выражений.

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

Как получить UID программно в конфигураторе

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

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

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

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

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

Как узнать UID в пользовательском режиме без конфигуратора

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

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

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

Где UID используется на практике

Чаще всего идентификатор нужен при настройке обменов между базами: например, между «Управлением торговлей» и «Бухгалтерией» или при выгрузке каталога на сайт. Системы сопоставляют объекты именно по GUID, поэтому при расхождениях в синхронизации первым делом проверяют, совпадают ли идентификаторы на обеих сторонах.

Вторая типичная ситуация — разбор ошибок «Объект не найден» с указанием идентификатора в тексте сообщения. Зная UID, можно определить, какой объект был удалён, и восстановить его из копии или перенастроить ссылки. Третий сценарий — интеграция по веб-сервисам и HTTP-API, где идентификатор передаётся как ключ объекта.

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

Сравнение способов получения UID

Внешняя обработка

Подходит пользователю без навыков кода; нужны права на открытие внешних файлов

Консоль запросов

Удобна для массового просмотра и поиска по UID; требует понимания запросов

Код в конфигураторе

Самый гибкий способ и единственный для автоматизации; нужны права разработчика

Регистры соответствия

Работают только там, где уже настроен обмен; показывают UID лишь синхронизируемых объектов

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

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

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

Третья ошибка — копирование идентификатора из текстового лога с лишними символами: пробелами, кавычками или частью соседнего текста. Перед использованием убедитесь, что строка содержит ровно 36 символов и соответствует шаблону 8-4-4-4-12, иначе преобразование в тип «УникальныйИдентификатор» завершится ошибкой.

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

Типичные ошибки
01
Передача кода вместо GUID в интеграцию — объект не сопоставляется между системами
02
Поиск объекта по UID после окончательного удаления — результатом будет битая ссылка
03
Копирование идентификатора с лишними символами — ошибка преобразования строки
04
Прямая правка идентификаторов в таблицах СУБД — повреждение базы и потеря поддержки

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

После получения идентификатора убедитесь, что он соответствует формату: 36 символов, четыре дефиса, только цифры и буквы от a до f. Наличие кириллицы, пробелов или длины больше или меньше — признак того, что скопировано не то значение.

Для проверки правильности сопоставления выполните обратное действие: по полученному UID найдите объект в базе через ПолучитьСсылку или обработку поиска. Если открывается именно тот элемент, с которого вы начинали, идентификатор определён верно. Если открывается другой объект или ничего не находится — значение получено из другого источника или устарело.

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

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

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

36 символов, шаблон 8-4-4-4-12, только hex-символы

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

Пробелы, кириллица, другая длина

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

Открывается исходный объект

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

Объект не найден или открывается другой элемент

Сопоставление в обмене
Норма

Объекты связаны в обеих базах

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

Создаются дубли или сообщение «объект не найден»

Итог

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

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

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

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

Штатно — нет. Идентификатор присваивается при создании и не редактируется. Единственный приём — создать новый объект с нужным GUID через ПолучитьСсылку и перенести в него данные, после чего старый объект удалить. Это трудоёмкая операция, выполняемая только с резервной копией.

Где посмотреть UID, если нет доступа к конфигуратору?

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

Почему по известному UID объект не находится?

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

Совпадает ли UID у одинаковых объектов в разных базах?

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

Чем UID отличается от навигационной ссылки?

Навигационная ссылка вида «e1cib/data/Справочник.Номенклатура?ref=…» содержит идентификатор в закодированном виде и предназначена для открытия объекта внутри 1С. UID — это сам идентификатор в чистом виде, который используется в коде, запросах и внешних интеграциях.

Опасно ли запускать внешние обработки для просмотра UID?

Обработки просмотра сами по себе только читают данные, но любой внешний файл потенциально может содержать произвольный код. Запускайте только инструменты из доверенных источников, предварительно — на копии базы, и не открывайте обработки, полученные из непроверенных мест.