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

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

Как расшифровать УДД в 1С и найти документ по идентификатору

Что такое УДД (GUID) в 1С, как расшифровать уникальный идентификатор, найти документ по ссылке и восстановить битые ссылки. Пошаговая инструкция.

УДД в контексте 1С — это уникальный идентификатор документа, то есть GUID (глобально уникальный идентификатор), который платформа присваивает каждому объекту базы: документу, элементу справочника, записи регистра. Он выглядит как строка вида b2a1c3d4-5e6f-7890-abcd-ef1234567890 и неизменен на протяжении всей жизни объекта, даже если меняются номер, дата или реквизиты.

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

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

Что такое УДД и где он встречается

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

С идентификатором пользователь сталкивается в нескольких местах: в сообщениях обмена данными (например, «Документ с идентификатором ... не найден»), в ошибках вида «Объект не найден (54:b2a1...)», в файлах выгрузки XML, в журнале регистрации и в строках подключения при интеграциях через COM, OData или веб-сервисы.

Отдельный случай — представление битой ссылки вида <Объект не найден> (54:8b2c002655d4c5a111e9...). Здесь число до двоеточия — внутренний код типа объекта, а после двоеточия — шестнадцатеричное представление GUID в «перевёрнутом» виде. По этой строке можно определить тип документа и восстановить ссылку.

Как найти документ по GUID через навигационную ссылку

Самый быстрый способ без программирования — сформировать навигационную ссылку и открыть её в тонком клиенте. Формат ссылки: e1cib/data/Документ.РеализацияТоваровУслуг?ref=..., где после ref= указывается идентификатор в специальном шестнадцатеричном виде.

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

Порядок действий
  1. 1
    Скопируйте GUID документа из сообщения обмена или журнала.
  2. 2
    Откройте консоль кода или обработку поиска по GUID (входит во многие инструменты разработчика).
  3. 3
    Получите навигационную ссылку функцией ПолучитьНавигационнуюСсылку() для найденного объекта.
  4. 4
    Вставьте ссылку в диалог «Перейти по ссылке» в толстом или тонком клиенте (меню «Сервис» или Ctrl+F11 в зависимости от версии).
  5. 5
    Проверьте, что открылся именно тот документ: сверьте номер, дату и организацию с ожидаемыми.

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

Поиск объекта по УДД с помощью встроенного языка

Когда есть доступ к конфигуратору или внешней обработке, надёжнее всего найти объект программно. Базовый подход — получить ссылку из строки GUID и проверить, существует ли объект.

bsl
GUID = Новый УникальныйИдентификатор("b2a1c3d4-5e6f-7890-abcd-ef1234567890");
Ссылка = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(GUID);
Если Ссылка.ПолучитьОбъект() = Неопределено Тогда
    Сообщить("Объект не найден — ссылка битая или база другая");
Иначе
    Сообщить("Найден: " + Ссылка);
КонецЕсли;

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

Для базы на SQL Server или PostgreSQL есть альтернатива: запрос напрямую к таблицам СУБД по полю ссылки. Это быстрее при массовом поиске, но требует знания структуры хранения и аккуратности — прямые запросы выполняют только на чтение.

Расшифровка битой ссылки «Объект не найден»

Строка вида (54:8b2c002655d4c5a111e9a0b1c2d3e4) содержит всё необходимое для восстановления. Число до двоеточия — идентификатор типа в конкретной базе, шестнадцатеричная часть — GUID в перевёрнутом представлении. Обработки восстановления битых ссылок преобразуют эту строку обратно в GUID и создают ссылку нужного типа.

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

УДД при обмене данными между базами

В планах обмена и конвертации данных сопоставление объектов идёт именно по GUID. Когда при синхронизации возникает дубль или сообщение «объект не найден», первый шаг — сверить идентификаторы в обеих базах и проверить регистрацию объекта в плане обмена.

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

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

Проверка результата и границы самостоятельной работы

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

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

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

Открытие объекта по навигационной ссылке
Норма

Форма документа открывается, реквизиты заполнены

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

Сообщение «Объект не найден» — GUID из другой базы или объект удалён

Строковое представление ссылки
Норма

Отображается тип, номер и дата документа

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

«<Объект не найден> (код:hex)» — ссылка осталась битой

Обмен данными после сопоставления
Норма

Синхронизация проходит без ошибок сопоставления

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

Дубли объектов или повторные сообщения о ненайденных ссылках

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

Итог

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

УДД — это GUID объекта 1С, он не расшифровывается как текст, а используется для поиска объекта в базе. Найти документ можно через навигационную ссылку, метод ПолучитьСсылку() или обработку поиска по GUID; битую ссылку вида «Объект не найден (код:hex)» можно преобразовать обратно в GUID и определить тип. Все операции восстановления выполняйте на копии базы.

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

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

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

Чем GUID отличается от УИН в платёжных документах?

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

Почему один и тот же документ имеет разные GUID в двух базах?

Значит, объект создавался в каждой базе независимо, а не переносился обменом. При выгрузке через план обмена или конвертацию GUID сохраняется; при ручном вводе — каждый раз генерируется новый.

Как массово найти все битые ссылки в базе?

Используйте типовую обработку «Поиск и удаление дублей» в части анализа ссылок, обработки с ИТС или запрос с проверкой представления ссылки на вхождение строки «Объект не найден». Для больших баз удобнее анализ на уровне СУБД в режиме чтения.

Можно ли вручную задать нужный GUID новому документу?

Да, методом УстановитьСсылкуНового() с заранее созданной ссылкой через ПолучитьСсылку(Новый УникальныйИдентификатор(...)). Так восстанавливают удалённые объекты с сохранением исходного идентификатора, но делать это следует только на копии и с пониманием последствий для обменов.