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

В зависимости от версии платформы (1С 8.2 или 1С 8.3) и типа объекта (справочник, документ, регистр) способы просмотра UID могут отличаться. Мы рассмотрим универсальные методы через конфигуратор, отладчик, внешние обработки и даже программный код. А ещё объясним, почему иногда UID может отсутствовать или меняться при переносе данных.

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

UID (Unique Identifier) — это глобально уникальный идентификатор, который 1С:Предприятие присваивает объектам метаданных и данным. В отличие от стандартных реквизитов (например, Ссылка или Код), UID:

  • 🔹 Не изменяется при переносе объекта между базами (если не используется механизм "замена ссылок").
  • 🔹 Генерируется автоматически при создании объекта и остаётся постоянным на протяжении его жизненного цикла.
  • 🔹 Используется для синхронизации в распределённых информационных базах (РИБ) и при обмене через XML, JSON или веб-сервисы.
  • 🔹 Не виден пользователю в стандартных формах, но доступен через программный интерфейс.

UID особенно важен в сценариях, где требуется однозначная привязка данных между системами. Например, при интеграции с сайтом на Bitrix или 1С-Битрикс, где товары, заказы и контрагенты должны совпадать в обеих системах. Без UID при обмене данными можно столкнуться с дублированием или потерей связей между объектами.

Однако не все объекты в имеют UID по умолчанию. Например, в старых конфигурациях (до 1С 8.3.6) UID мог не присваиваться автоматически, и его приходилось генерировать вручную. Сегодня большинство современных решений (например, 1С:ERP, 1С:УТ 11, 1С:Бухгалтерия 3.0) поддерживают UID "из коробки", но проверять его наличие всё равно полезно.

📊 Для чего вам нужен UID в 1С?
Для обмена данными между базами
Для интеграции с внешними системами
Для отладки и разработки
Для восстановления связей после сбоя
Другое

Способ 1: Просмотр UID через конфигуратор в режиме отладки

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

  1. Откройте базу в режиме Конфигуратор (для этого при запуске удерживайте клавишу Shift).
  2. Перейдите в меню Сервис → Отладка → Начать отладку (или нажмите F5).
  3. В открывшемся окне 1С:Предприятие найдите нужный объект (например, документ РеализацияТоваровУслуг) и откройте его.
  4. Вернитесь в Конфигуратор и в окне отладки найдите переменную с вашим объектом (обычно это Объект или имя формы).
  5. Раскройте свойства объекта и найдите поле УникальныйИдентификатор или UID.

Если поле отсутствует, это может означать:

  • 🔸 Объект не поддерживает UID (например, некоторые виртуальные таблицы).
  • 🔸 Вы смотрите не тот уровень вложенности (UID может быть внутри свойства Ссылка).
  • 🔸 В вашей конфигурации отключена поддержка UID (актуально для старых версий).

☑️ Подготовка к просмотру UID через отладку

Выполнено: 0 / 5

Пример того, как может выглядеть UID в отладчике:

Объект.Ссылка.УникальныйИдентификатор = "a1b2c3d4-5678-90ef-1234-567890abcdef"
⚠️ Внимание: В некоторых конфигурациях (например, 1С:ЗУП 2.5) UID может храниться не в свойстве УникальныйИдентификатор, а в служебном реквизите RefUID или GlobalUID. Если не нашли поле — проверьте все свойства объекта через точку.

Способ 2: Использование внешней обработки для массового просмотра UID

Если вам нужно получить UID для большого количества объектов (например, для всех элементов справочника Номенклатура), удобнее использовать внешнюю обработку. Одна из самых популярных — обработка "Просмотр UID объектов", которую можно скачать с портала Инфостарт или 1С-Сообщество.

Как работать с такой обработкой:

  1. Скачайте обработку (например, ПросмотрUID.epf) и сохраните на компьютер.
  2. В 1С:Предприятие перейдите в Файл → Открыть и выберите скачанный файл.
  3. В открывшемся окне укажите тип объекта (справочник, документ) и настройте фильтр (например, по дате или наименованию).
  4. Нажмите Выполнить — обработка выведет таблицу с объектами и их UID.

Преимущества этого метода:

  • 📌 Можно экспортировать UID в Excel или CSV для дальнейшей работы.
  • 📌 Поддерживает пакетную обработку тысяч объектов.
  • 📌 Часто содержит дополнительные функции (например, поиск дублей UID).
Обработка Поддерживаемые объекты Экспорт Особенности
Просмотр UID объектов (Инфостарт) Справочники, документы, регистры Excel, CSV, TXT Поиск дублей, фильтрация по дате
UID Manager (1С-Сообщество) Все объекты метаданных Excel, JSON Генерация новых UID, замена в пакетном режиме
Анализ связей по UID Документы с ссылками Excel Визуализация связей между объектами

Если вы не хотите скачивать обработку, можно написать простой запрос прямо в :

ВЫБРАТЬ

Ссылка КАК Объект,

УникальныйИдентификатор КАК UID

ИЗ

Справочник.Номенклатура КАК Номенклатура

⚠️ Внимание: В некоторых конфигурациях (например, 1С:БП 2.0) поле УникальныйИдентификатор может быть скрыто в виртуальных таблицах. В этом случае используйте прямой доступ через объект:
Для Каждого Элемент Из Справочник.Номенклатура Цикл

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

КонецЦикла;

Способ 3: Получение UID через программный код (1C:Enterprise)

Для разработчиков и опытных пользователей самый гибкий способ — получение UID через встроенный язык . Это позволяет автоматизировать процесс, например, при выгрузке данных в JSON или XML.

Примеры кода для разных объектов:

UID справочника

Спр = Справочники.Контрагенты.НайтиПоНаименованию("ООО Ромашка");

Если Не Спр.Пустая() Тогда

UID = Спр.УникальныйИдентификатор;

Сообщить("UID контрагента: " + UID);

КонецЕсли;

UID документа

Док = Документы.ПоступлениеТоваровУслуг.НайтиПоНомеру("000000001", Дата(2023,10,15));

Если Не Док.Пустая() Тогда

UID = Док.УникальныйИдентификатор;

Сообщить("UID документа: " + UID);

КонецЕсли;

UID регистра сведений

Запись = РегистрыСведений.ЦеныНоменклатуры.ПолучитьПоследнююЗапись();

Если Не Запись.Пустая() Тогда

UID = Запись.УникальныйИдентификатор;

Сообщить("UID записи: " + UID);

КонецЕсли;

Если при выполнении кода вы получаете ошибку "Недопустимое значение параметра (УникальныйИдентификатор)", это означает, что:

  • 🔴 Объект не поддерживает UID (проверьте версию конфигурации).
  • 🔴 Вы обращаетесь к несуществующему объекту (используйте Пустая() для проверки).
  • 🔴 В вашей базе отключена функциональность UID (актуально для конфигураций до 1С 8.3.5).
💡

Если вам нужно получить UID для объекта, который ещё не сохранён в базе (например, новый документ), сначала запишите его методом Записать() — только после этого система сгенерирует UID.

Способ 4: Просмотр UID в файлах выгрузки (XML, JSON)

UID часто используется при обмене данными между базами или внешними системами. Если у вас есть файл выгрузки (например, export.xml или data.json), можно найти UID прямо в нём.

Где искать UID в разных форматах:

  • 📄 XML (обмен через Универсальный формат): ищите атрибут UID или тег <УникальныйИдентификатор> внутри объекта.
    <Документ Объект="ПоступлениеТоваровУслуг" UID="a1b2c3d4-5678-90ef-1234-567890abcdef">
    

    ...

    </Документ>

  • 📄 JSON (REST API): UID обычно передаётся в поле "ref_uid" или "global_uid".
    {
    

    "document": {

    "ref": "ПоступлениеТоваровУслуг/000000001",

    "ref_uid": "a1b2c3d4-5678-90ef-1234-567890abcdef",

    "date": "2023-10-15"

    }

    }

  • 📄 CSV/Excel: UID может быть в отдельном столбце с заголовком UID или GlobalID.

Если вы не нашли UID в файле выгрузки, проверьте:

  • 🔍 Настройки обмена: возможно, UID отключён в правилах конвертации.
  • 🔍 Версию формата: в старых версиях Универсального формата обмена (до 2.0) UID мог не экспортироваться.
  • 🔍 Права доступа: некоторые обработки выгрузки скрывают UID для безопасности.
⚠️ Внимание: При импорте данных по UID система может автоматически заменять ссылки, если найдёт совпадение. Это полезно для синхронизации, но опасно, если UID дублируются или сгенерированы неправильно. Всегда проверяйте уникальность идентификаторов перед массовым импортом.

Способ 5: Просмотр UID в базе данных (прямой доступ к SQL)

Для опытных пользователей и администраторов есть способ получить UID прямо из SQL-базы, если работает в клиент-серверном варианте (например, на Microsoft SQL Server или PostgreSQL). Этот метод требует знаний SQL и прав доступа к серверу.

Примеры запросов для разных СУБД:

Microsoft SQL Server

SELECT

t._IDRRef AS [Ссылка],

t._UID AS [UID]

FROM

_1SCatalog_Номенклатура AS t

WHERE

t._Description LIKE '%Ноутбук%';

PostgreSQL

SELECT

"_IDRRef" AS "Ссылка",

"_UID" AS "UID"

FROM

"_1SCatalog_Контрагенты"

WHERE

"_Description" ILIKE '%ООО Ромашка%';

Обратите внимание на особенности:

  • 🗃️ В таблицы имеют префикс _1S и суффикс с типом объекта (например, _Catalog_ для справочников, _Document_ для документов).
  • 🗃️ Поле UID обычно называется _UID или _GlobalUID.
  • 🗃️ Для документов может потребоваться join с таблицей _1SDocuments.
⚠️ Внимание: Прямой доступ к базе данных может нарушить её целостность. Не изменяйте данные через SQL без резервной копии! Для безопасных операций используйте встроенные механизмы или специализированные утилиты (например, 1С:Администрирование сервера).
Как узнать структуру таблиц 1С в SQL?

Используйте запрос к системным таблицам, например:

SELECT * FROM INFORMATION_SCHEMA.TABLES

WHERE TABLE_NAME LIKE '_1S%'

Это выведет список всех таблиц 1С в базе данных. Для просмотра структуры конкретной таблицы используйте:

SELECT COLUMN_NAME, DATA_TYPE

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME = '_1SCatalog_Номенклатура'

Частые проблемы с UID и как их решить

При работе с UID в можно столкнуться с типичными ошибками. Рассмотрим самые распространённые и способы их устранения.

Проблема Возможная причина Решение
UID отсутствует у объекта Старая версия конфигурации или отключённая поддержка UID Обновите конфигурацию или вручную сгенерируйте UID через код
UID дублируется Ошибка при переносе данных или ручном редактировании Используйте обработку для поиска и замены дублей
UID меняется при обмене Настроены правила замены ссылок в плане обмена Проверьте настройки обмена в Администрирование → Обмен данными
Ошибка "Недопустимый UID" Некорректный формат идентификатора (не соответствует GUID) Генерируйте UID через функцию Новый УникальныйИдентификатор()

Если вам нужно сгенерировать UID для объекта, который его не имеет, используйте код:

Объект = Справочники.Номенклатура.СоздатьЭлемент();

Объект.Наименование = "Новый товар";

Объект.УникальныйИдентификатор = Новый УникальныйИдентификатор(); // Генерация UID

Объект.Записать();

Для массовой генерации UID можно написать обработку:

Выборка = Справочники.Контрагенты.Выбрать();

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

Если Пустая(Выборка.УникальныйИдентификатор) Тогда

Объект = Выборка.ПолучитьОбъект();

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

Объект.Записать();

КонецЕсли;

КонецЦикла;

💡

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

FAQ: Частые вопросы о UID в 1С

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

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

Почему у некоторых объектов нет UID?

Это может быть связано с:

  • 🔹 Устаревшей версией конфигурации (до 1С 8.3.5 UID не генерировался автоматически).
  • 🔹 Отключённой функциональностью в настройках обмена.
  • 🔹 Особенностями объекта (например, виртуальные таблицы или временные объекты).

Чтобы добавить UID, обновите конфигурацию или используйте код для массовой генерации.

Как найти объект по UID?

Используйте метод НайтиПоUID() (доступен в последних версиях платформы):

UID = Новый УникальныйИдентификатор("a1b2c3d4-5678-90ef-1234-567890abcdef");

Объект = Справочники.Номенклатура.НайтиПоUID(UID);

Если метод недоступен, выполните запрос:

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ УникальныйИдентификатор = &UID";

Запрос.УстановитьПараметр("UID", UID);

Результат = Запрос.Выполнить();

UID и GUID — это одно и то же?

В контексте термины часто используются как синонимы, но технически:

  • 🔹 GUID (Globally Unique Identifier) — стандартный формат уникальных идентификаторов (например, a1b2c3d4-5678-90ef-1234-567890abcdef).
  • 🔹 UID в — это реализация GUID, но может иметь специфические особенности (например, хранение в бинарном формате).

В коде для генерации UID используется функция Новый УникальныйИдентификатор(), которая возвращает значение в формате GUID.

Как экспортировать UID для всех объектов базы?

Для массового экспорта используйте обработку типа "Выгрузка данных с UID" (доступна на Инфостарт). Альтернативно можно написать универсальный код:

// Пример для справочника "Номенклатура"

Результат = Новый Структура("Данные");

Выборка = Справочники.Номенклатура.Выбрать();

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

Данные = Новый Структура;

Данные.Вставить("Ссылка", Выборка.Ссылка);

Данные.Вставить("UID", Выборка.УникальныйИдентификатор);

Результат.Данные.Добавить(Данные);

КонецЦикла;

// Сохранение в JSON

ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.УстановитьСтроку();

ЗаписьJSON.Записать(Результат);

ТекстJSON = ЗаписьJSON.Закрыть();

ТекстJSON.СохранитьКак("C:\export_uid.json");