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

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

Идентификатор в 1С: что это такое и как с ним работать

Что такое идентификатор в 1С: GUID, внутренние идентификаторы объектов и метаданных. Как найти GUID элемента, зачем он нужен и типичные ошибки при работе.

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

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

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

Что такое GUID и почему он главный идентификатор объекта

GUID (Globally Unique Identifier) — это 128-битное значение, которое платформа 1С генерирует автоматически при создании ссылочного объекта: элемента справочника, документа, элемента плана счетов, задачи и так далее. В текстовом виде GUID выглядит как строка из 36 символов, например: 8b3e4c5a-12f0-4d7e-9a1b-2c3d4e5f6a7b.

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

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

Какие ещё идентификаторы встречаются в 1С

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

  • Идентификатор объекта метаданных — уникальная метка самого объекта конфигурации (справочника «Номенклатура», документа «РеализацияТоваровУслуг» и т.п.). Используется платформой при обновлении конфигурации и в механизмах вроде «Универсального обмена данными».
  • Идентификатор пользователя информационной базы — GUID, присвоенный конкретному пользователю в списке пользователей. По нему система различает учётные записи, даже если имена совпадают.
  • Идентификаторы в формате COM/Веб-сервисов — при интеграциях GUID объекта часто передаётся во внешние системы как ключ связи.
  • Идентификаторы элементов форм и команд — внутренние имена, используемые при разработке интерфейса; к данным они отношения не имеют.

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

Как найти GUID конкретного объекта

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

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

Как узнать GUID через консоль кода или обработку
  1. 1
    Откройте консоль кода (в типовых конфигурациях на управляемых формах часто доступна как внешняя обработка) или любую обработку с выполнением произвольного кода.
  2. 2
    Получите ссылку на нужный объект, например через запрос или поиск по коду/наименованию.
  3. 3
    Выполните выражение: Строка(Ссылка.УникальныйИдентификатор()) — результатом будет GUID в привычном формате.
  4. 4
    Сверьте результат: строка должна содержать 36 символов, включая 4 дефиса.

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

bsl
// Получить GUID объекта
ГУИД = Строка(НоменклатураСсылка.УникальныйИдентификатор());

// Получить ссылку по GUID
НовыйГУИД = Новый УникальныйИдентификатор("8b3e4c5a-12f0-4d7e-9a1b-2c3d4e5f6a7b");
Ссылка = Справочники.Номенклатура.ПолучитьСсылку(НовыйГУИД);

Зачем идентификаторы нужны на практике

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

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

Третья ситуация — диагностика «битых ссылок». Когда объект удалён, а ссылки на него остались, в полях документов отображается запись вида «Объект не найден (8b3e4c5a:…)». По этому идентификатору администратор может определить, на какой именно объект ссылались записи, и восстановить данные или корректно очистить ссылки.

В поле виден текст «Объект не найден» с кодомБитая ссылка

Объект с этим GUID удалён; нужно решать, восстанавливать объект или очищать ссылки

При обмене появляются дубли элементовНе совпадают GUID или правила сопоставления

Проверить, как настроен поиск объектов: по GUID, по коду или по комбинации полей

Внешняя система не находит товарПередан неверный или устаревший идентификатор

Сверить GUID в 1С и во внешней системе, проверить, не был ли объект пересоздан

Ограничения и риски при работе с идентификаторами

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

Отдельный риск — ручная правка данных непосредственно в СУБД (например, в таблицах SQL Server). Прямые изменения в таблицах базы данных нарушают условия поддержки и могут привести к рассогласованию служебных структур платформы. Все операции с идентификаторами следует выполнять средствами встроенного языка 1С.

Ещё одно ограничение: GUID привязан к конкретному объекту, а не к его содержимому. Если элемент справочника удалить и создать заново с тем же названием и кодом, идентификатор будет уже другим, и все внешние связи по старому GUID потеряются.

Типичные ошибки и как их избежать

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

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

Как проверить, что всё настроено правильно

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

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

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

Повторная выгрузка того же объекта
Норма

Объект обновляется, дубликат не создаётся

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

В базе-приёмнике появляется второй элемент с тем же названием

GUID в обеих системах
Норма

Идентификаторы совпадают посимвольно с учётом формата

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

GUID отличаются, отсутствуют дефисы или обрезаны

Ссылки на объект в документах
Норма

Документы открываются, поля заполнены

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

В полях отображается «Объект не найден»

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

Частые вопросы об идентификаторах в 1С

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

Штатными средствами интерфейса — нет. Программно можно лишь создать новый объект с заранее заданным идентификатором через ПолучитьСсылку, но сам идентификатор существующей ссылки не изменяется. На практике «смена GUID» означает создание нового объекта и перенос ссылок на него.

Чем GUID отличается от кода справочника?

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

Что означает надпись «Объект не найден» с длинным кодом?

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

Сохраняется ли GUID при выгрузке и загрузке базы через dt?

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

Как узнать GUID без доступа к конфигуратору?

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

Итог

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

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