Администрирование · 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Скопируйте GUID документа из сообщения обмена или журнала.
- 2Откройте консоль кода или обработку поиска по GUID (входит во многие инструменты разработчика).
- 3Получите навигационную ссылку функцией ПолучитьНавигационнуюСсылку() для найденного объекта.
- 4Вставьте ссылку в диалог «Перейти по ссылке» в толстом или тонком клиенте (меню «Сервис» или Ctrl+F11 в зависимости от версии).
- 5Проверьте, что открылся именно тот документ: сверьте номер, дату и организацию с ожидаемыми.
Если объект существует, откроется его форма. Если платформа сообщает, что объект не найден, значит, документ удалён или GUID относится к другой базе — переходите к разделу про битые ссылки.
Поиск объекта по УДД с помощью встроенного языка
Когда есть доступ к конфигуратору или внешней обработке, надёжнее всего найти объект программно. Базовый подход — получить ссылку из строки GUID и проверить, существует ли объект.
GUID = Новый УникальныйИдентификатор("b2a1c3d4-5e6f-7890-abcd-ef1234567890");
Ссылка = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(GUID);
Если Ссылка.ПолучитьОбъект() = Неопределено Тогда
Сообщить("Объект не найден — ссылка битая или база другая");
Иначе
Сообщить("Найден: " + Ссылка);
КонецЕсли;Сложность в том, что заранее не всегда известен тип документа. Если тип неизвестен, перебирают менеджеры нужных видов документов и справочников, вызывая ПолучитьСсылку(GUID) для каждого и проверяя существование объекта. Готовые обработки «Поиск объекта по GUID» автоматизируют этот перебор по всем ссылочным типам метаданных.
Для базы на SQL Server или PostgreSQL есть альтернатива: запрос напрямую к таблицам СУБД по полю ссылки. Это быстрее при массовом поиске, но требует знания структуры хранения и аккуратности — прямые запросы выполняют только на чтение.
Расшифровка битой ссылки «Объект не найден»
Строка вида (54:8b2c002655d4c5a111e9a0b1c2d3e4) содержит всё необходимое для восстановления. Число до двоеточия — идентификатор типа в конкретной базе, шестнадцатеричная часть — GUID в перевёрнутом представлении. Обработки восстановления битых ссылок преобразуют эту строку обратно в GUID и создают ссылку нужного типа.
Тип по числовому коду определяют через функцию работы со значениями внутреннего представления либо перебором: создают ссылку каждого типа с этим GUID и сравнивают строковое представление битой ссылки с исходным. Совпадение показывает, к какому виду документа относилась запись.
УДД при обмене данными между базами
В планах обмена и конвертации данных сопоставление объектов идёт именно по GUID. Когда при синхронизации возникает дубль или сообщение «объект не найден», первый шаг — сверить идентификаторы в обеих базах и проверить регистрацию объекта в плане обмена.
Типовая причина расхождений — документ создан независимо в двух базах и получил разные GUID, хотя номер и дата совпадают. В этом случае в регистрации соответствий (в типовых синхронизациях — «Соответствия объектов информационных баз») вручную устанавливают связь, после чего обмен начинает трактовать записи как один объект.
Проверка результата и границы самостоятельной работы
После поиска или восстановления объекта убедитесь, что результат корректен: объект открывается в интерфейсе, отчёты по связанным данным сходятся, обмен завершается без ошибок «объект не найден». Для восстановленных ссылок дополнительно проверьте проведение и движения документа.
Как проверить результат
Форма документа открывается, реквизиты заполнены
Сообщение «Объект не найден» — GUID из другой базы или объект удалён
Отображается тип, номер и дата документа
«<Объект не найден> (код:hex)» — ссылка осталась битой
Синхронизация проходит без ошибок сопоставления
Дубли объектов или повторные сообщения о ненайденных ссылках
Самостоятельно безопасно выполнять поиск по GUID, построение навигационных ссылок и анализ битых ссылок на копии базы. К восстановлению удалённых объектов, массовой замене идентификаторов и правке регистров соответствия стоит привлекать специалиста по 1С, предварительно сделав резервную копию — цена ошибки здесь равна потере целостности данных.
Что важно запомнить
УДД — это GUID объекта 1С, он не расшифровывается как текст, а используется для поиска объекта в базе. Найти документ можно через навигационную ссылку, метод ПолучитьСсылку() или обработку поиска по GUID; битую ссылку вида «Объект не найден (код:hex)» можно преобразовать обратно в GUID и определить тип. Все операции восстановления выполняйте на копии базы.
Частые вопросы
Можно ли по GUID узнать номер и дату документа без доступа к базе?
Нет. GUID — случайный идентификатор, он не содержит ни номера, ни даты, ни типа объекта. Эти сведения можно получить только найдя объект в базе по идентификатору.
Чем GUID отличается от УИН в платёжных документах?
УИН — уникальный идентификатор начисления, который формируют бюджетные организации для платежей, к внутренним ссылкам 1С он отношения не имеет. УДД/GUID — технический идентификатор объекта внутри информационной базы.
Почему один и тот же документ имеет разные GUID в двух базах?
Значит, объект создавался в каждой базе независимо, а не переносился обменом. При выгрузке через план обмена или конвертацию GUID сохраняется; при ручном вводе — каждый раз генерируется новый.
Как массово найти все битые ссылки в базе?
Используйте типовую обработку «Поиск и удаление дублей» в части анализа ссылок, обработки с ИТС или запрос с проверкой представления ссылки на вхождение строки «Объект не найден». Для больших баз удобнее анализ на уровне СУБД в режиме чтения.
Можно ли вручную задать нужный GUID новому документу?
Да, методом УстановитьСсылкуНового() с заранее созданной ссылкой через ПолучитьСсылку(Новый УникальныйИдентификатор(...)). Так восстанавливают удалённые объекты с сохранением исходного идентификатора, но делать это следует только на копии и с пониманием последствий для обменов.