Администрирование · 12 мин
Идентификатор в 1С: где посмотреть и как использовать
Где посмотреть идентификатор в 1С: GUID справочника и документа через конфигуратор, запрос и встроенный язык, поиск объекта по GUID, типичные ошибки.
Идентификатор в 1С — это уникальная метка объекта базы данных, по которой платформа отличает один элемент справочника или документ от другого, даже если их наименования и номера совпадают. Чаще всего под идентификатором понимают GUID (глобальный уникальный идентификатор) ссылки — строку вида «a1b2c3d4-…», которая хранится в базе и используется при обмене данными, интеграциях и поиске «потерянных» объектов.
Знать, где посмотреть идентификатор, нужно в нескольких типовых ситуациях: при настройке обмена между базами, при поиске битой ссылки, при сопоставлении объектов с внешней системой (сайт, CRM, складская программа), а также при разборе ошибок вида «Объект не найден». В зависимости от задачи GUID смотрят через конфигуратор, запрос, встроенный язык или специализированные обработки.
Важно различать несколько видов идентификаторов: GUID ссылки, внутренний идентификатор объекта метаданных, идентификатор пользователя информационной базы и идентификатор формы. Ниже разобраны все варианты с конкретными способами их получения.
Что такое идентификатор в 1С и какие они бывают
В платформе 1С:Предприятие существует несколько разных «идентификаторов», и путаница между ними — частая причина ошибок. Основные виды:
- GUID ссылки — уникальный идентификатор конкретного объекта данных (элемента справочника, документа, записи). Именно он нужен при обменах и интеграциях.
- Идентификатор объекта метаданных — служебный GUID конфигурационного объекта (справочника, документа, отчёта). Используется платформой и при работе с расширениями.
- Идентификатор пользователя — GUID учётной записи в списке пользователей информационной базы.
- Уникальный идентификатор формы — временный идентификатор, действующий в рамках сеанса работы формы.
В подавляющем большинстве практических задач под «идентификатором» понимается GUID ссылки. Он не меняется при переименовании объекта, изменении кода или номера, поэтому именно по нему системы надёжно сопоставляют данные между собой. Удаление объекта и создание нового с тем же названием даст уже другой GUID — это важно учитывать при восстановлении данных.
Где посмотреть GUID объекта через запрос или консоль
Самый универсальный способ получить идентификатор — выполнить запрос или фрагмент кода во встроенном языке. Для этого подходят консоль запросов, консоль кода или любая внешняя обработка. Права разработчика или администратора обычно требуются, хотя в некоторых конфигурациях консоль доступна и опытным пользователям.
Чтобы получить GUID известной ссылки, используется метод встроенного языка:
Сообщить(СсылкаНаОбъект.УникальныйИдентификатор());
Здесь «СсылкаНаОбъект» — это переменная, содержащая ссылку на элемент справочника или документ. Результат — строка из 36 символов, которую можно скопировать и передать во внешнюю систему.
Обратная задача — найти объект по известному GUID — решается методом ПолучитьСсылку:
ГУИД = Новый УникальныйИдентификатор("3f2504e0-4f89-11d3-9a0c-0305e82c3301");
Ссылка = Справочники.Номенклатура.ПолучитьСсылку(ГУИД);
Если Ссылка.ПолучитьОбъект() = Неопределено Тогда
Сообщить("Объект не найден");
КонецЕсли;
// GUID известной ссылки
ГУИДСтрокой = Строка(МояСсылка.УникальныйИдентификатор());
// Поиск объекта по GUID
ГУИД = Новый УникальныйИдентификатор("3f2504e0-...");
Ссылка = Справочники.Контрагенты.ПолучитьСсылку(ГУИД);Как узнать идентификатор в пользовательском режиме
В режиме «1С:Предприятие» GUID объекта напрямую в формах не отображается — платформа сознательно скрывает служебные данные от пользователей. Однако есть обходные пути, не требующие программирования.
Первый вариант — типовые механизмы конфигурации. В некоторых решениях (например, при настройке синхронизации данных) идентификаторы объектов показываются в служебных регистрах соответствия: там можно увидеть, какой GUID в этой базе соответствует объекту другой базы. Путь зависит от конфигурации, обычно это разделы «Администрирование» → «Синхронизация данных» → «Результаты обмена» или регистр «Соответствия объектов информационных баз».
Второй вариант — универсальные обработки. Широко распространены консоли запросов и инструменты разработчика, которые позволяют выбрать объект мышкой и сразу увидеть его GUID. Это самый быстрый способ для разовой задачи: открыть обработку, указать ссылку, скопировать идентификатор.
- 1Откройте консоль кода или универсальную обработку работы со ссылками
- 2Выберите нужный объект (элемент справочника или документ) в поле ссылки
- 3Выполните выражение Ссылка.УникальныйИдентификатор()
- 4Скопируйте полученную строку GUID для использования в обмене или поиске
Где посмотреть идентификатор пользователя базы
Идентификатор пользователя информационной базы нужен при настройке прав, разборе журнала регистрации и переносе настроек. Посмотреть его можно в конфигураторе: меню «Администрирование» → «Пользователи», затем открыть нужного пользователя — поле «Идентификатор» отображается в свойствах учётной записи в виде GUID.
Программно идентификатор текущего пользователя получают так:
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
Сообщить(ТекущийПользователь.УникальныйИдентификатор);
Обратите внимание: идентификатор пользователя базы и GUID элемента справочника «Пользователи» (если он есть в конфигурации) — это разные значения. Первый относится к учётной записи аутентификации, второй — к данным прикладного решения. При интеграциях их часто путают, что приводит к ошибкам сопоставления.
Как найти объект по идентификатору и разобрать битую ссылку
Типовая ситуация: в журнале ошибок или в сообщении обмена фигурирует GUID, и нужно понять, какой это объект. Если известен тип объекта (справочник «Номенклатура», документ «Реализация» и т.д.), задача решается методом ПолучитьСсылку, как показано выше.
Если тип неизвестен, придётся перебирать менеджеры объектов: последовательно вызывать ПолучитьСсылку для справочников и документов и проверять, существует ли объект. Существуют готовые обработки «Поиск объекта по GUID», которые делают это автоматически.
Отдельный случай — битая ссылка. В полях объектов она отображается как «Объект не найден» с идентификатором в угловых скобках. Из этого представления GUID можно извлечь и попытаться восстановить объект: создать новый элемент с тем же идентификатором через УстановитьСсылкуНового. Это приём аварийного восстановления, применять его стоит только с пониманием последствий.
Идентификаторы при обмене и интеграциях
При настройке синхронизации между базами 1С или с внешними системами GUID — основной ключ сопоставления. Посмотреть, какие идентификаторы участвуют в обмене, можно в служебных местах типовых конфигураций: в регистрах соответствия объектов, в данных сообщений обмена (XML-пакетах), в настройках правил конвертации.
В планах обмена платформа хранит ссылки на зарегистрированные к выгрузке объекты — сами объекты, а не их GUID, но при формировании сообщения идентификаторы сериализуются в XML. Открыв файл сообщения обмена в текстовом редакторе, можно увидеть идентификаторы объектов в атрибутах узлов.
Для интеграций через HTTP и веб-сервисы GUID обычно передаётся строкой. Практическая рекомендация: храните во внешней системе именно GUID, а не код или наименование — коды могут дублироваться и меняться, наименования редактируются пользователями, а GUID стабилен на всём жизненном цикле объекта.
Типичные ошибки при работе с идентификаторами
Первая ошибка — поиск GUID в пользовательском интерфейсе. В формах объектов идентификатора нет по замыслу платформы; тратить время на его поиск в карточке элемента бессмысленно — нужна обработка или код.
Вторая ошибка — сравнение GUID как строк с разным регистром или форматом. Встречаются представления с фигурными скобками, без дефисов, в перевёрнутом порядке байт (так GUID хранится в СУБД). Перед сравнением приводите идентификаторы к одному виду через тип УникальныйИдентификатор.
Третья ошибка — предположение, что GUID одинакового объекта совпадает в разных базах без настроенного обмена. Если элементы создавались независимо в двух базах, их идентификаторы различны, даже если код и наименование совпадают. Сопоставление в этом случае строится по правилам поиска обмена (по коду, ИНН, наименованию), а GUID фиксируется в регистре соответствия.
Проверка результата и ограничения
Корректность полученного идентификатора легко проверить обратной операцией: получите ссылку по GUID и убедитесь, что это тот же объект — сравните наименование, код или дату документа. Если ПолучитьСсылку возвращает ссылку на несуществующий объект (ПолучитьОбъект даёт Неопределено), значит, объект с таким GUID удалён или никогда не существовал в этой базе.
Ограничения, о которых стоит помнить: метод УникальныйИдентификатор доступен только для ссылочных объектов (у записей регистров сведений его нет — их идентифицирует набор измерений); в файловой базе и клиент-серверной внутреннее хранение GUID отличается представлением, но на уровне встроенного языка это незаметно; у объектов, созданных копированием, GUID всегда новый.
Как проверить результат
ПолучитьСсылку возвращает объект, реквизиты совпадают с ожидаемыми
ПолучитьОбъект() возвращает Неопределено — объект удалён или GUID из другой базы
36 символов с дефисами, без фигурных скобок и лишних пробелов
Скобки, перевёрнутые байты, длина отличается — строка из СУБД без преобразования
В регистре соответствия есть пара идентификаторов для двух баз
Соответствия нет — объекты будут искаться по правилам или задвоятся
Что важно запомнить
Идентификатор объекта (GUID) смотрят через встроенный язык: Ссылка.УникальныйИдентификатор(), а объект по GUID находят методом ПолучитьСсылку. В пользовательском интерфейсе GUID не отображается — нужны консоль или обработка. Для интеграций используйте только GUID, а не код и наименование, и перед аварийными операциями со ссылками делайте копию базы.
Частые вопросы
Можно ли посмотреть GUID документа без прав программиста?
Напрямую в форме — нет. Если в конфигурации доступна консоль запросов или внешние обработки, достаточно права на их запуск. В противном случае попросите администратора выполнить простой код с методом УникальныйИдентификатор() для нужного объекта.
Меняется ли GUID при переносе объекта в другую базу выгрузкой-загрузкой?
Если перенос выполнен типовой обработкой «Выгрузка и загрузка данных XML», GUID сохраняется — объект загружается с исходным идентификатором. При создании объекта заново в другой базе GUID будет новым.
Что означает «Объект не найден» с набором символов в скобках?
Это битая ссылка: поле хранит GUID объекта, который удалён из базы. Идентификатор из скобок можно извлечь и проверить, существует ли объект, либо очистить поле, если ссылка больше не нужна.
Почему GUID из запроса к базе SQL не совпадает со строкой в 1С?
На уровне СУБД идентификатор хранится в бинарном виде с перевёрнутым порядком байт. Прямые запросы к СУБД требуют преобразования формата, иначе сопоставление не сработает. Предпочтительнее получать GUID средствами платформы.
Есть ли идентификатор у записей регистра сведений?
Отдельного GUID у записи регистра сведений нет. Запись однозначно определяется набором значений измерений (и периодом для периодических регистров). Для сопоставления используют именно эту комбинацию ключей.
Можно ли задать объекту свой GUID вручную?
Да, для нового объекта: через ПолучитьСсылку(Новый УникальныйИдентификатор(...)) и УстановитьСсылкуНового. Это применяется при синхронизации, чтобы идентификаторы совпадали в разных базах. Изменить GUID уже существующего объекта нельзя.