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

Справочники и Данные · 12 мин

Что такое ID в 1С и зачем нужен уникальный идентификатор

Что такое ID в 1С, зачем нужен уникальный идентификатор, как узнать GUID элемента справочника или документа и где он используется при обмене данными.

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

Термин «ID» в контексте 1С используется в двух значениях. В узком смысле это GUID (глобальный уникальный идентификатор) — строка вида 8f3b2a1c-4d5e-6f7a-8b9c-0d1e2f3a4b5c, которую платформа генерирует для каждой ссылки на объект. В широком смысле пользователи называют ID любые идентифицирующие поля: код элемента справочника, номер документа, ИНН контрагента. Путаница между этими значениями — частая причина ошибок при обмене данными и интеграциях.

Понимание того, как работает идентификатор, нужно не только программистам. Бухгалтер сталкивается с ID при настройке синхронизации «1С:Бухгалтерии» с «1С:Управление торговлей», менеджер — при выгрузке товаров на сайт, а руководитель — когда в отчёте появляются дубли контрагентов после переноса данных. Дальше разберём, как устроен идентификатор, где его посмотреть и как не сломать связи между объектами.

Что такое уникальный идентификатор и как он устроен

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

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

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

Чем ID отличается от кода, номера и наименования

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

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

ПараметрКод / номерНаименованиеУникальный идентификатор (ID)
Кто формируетПрограмма или пользовательПользовательТолько платформа автоматически
Можно изменитьДа, если не запрещеноДаНет штатными средствами
УникальностьВ пределах вида, возможны сбоиНе гарантируетсяГарантирована всегда
Виден пользователюДаДаНет, только программно
Используется при обменеКак дополнительное поле поискаКак дополнительное поле поискаКак основной ключ сопоставления

Где посмотреть ID объекта в 1С

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

Через встроенный язык

Самый универсальный способ — выполнить небольшой фрагмент кода в консоли кода или через внешнюю обработку. Функция ЗначениеВСтрокуВнутр или метод УникальныйИдентификатор() возвращают GUID любой ссылки:

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

Через консоль запросов

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

Через внешние обработки и интеграции

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

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

Где используется ID: обмены, интеграции и ссылки

Основная сфера применения идентификаторов — обмен данными. Когда «1С:Управление торговлей» выгружает заказы в «1С:Бухгалтерию», а товары — на сайт, все участники обмена договариваются о единых ключах. План обмена при первой синхронизации регистрирует соответствие: «этот GUID в базе-источнике = этот GUID в базе-приёмнике». Дальше обновляются только изменённые объекты, и система точно знает, что именно обновлять.

Вторая область — веб-сервисы и API. При публикации базы через HTTP-сервисы или стандартный OData-интерфейс объект адресуется именно по GUID: внешняя система запрашивает Catalog_Номенклатура(guid'...') и получает конкретный элемент. Если идентификатор в запросе не найден, сервис вернёт ошибку — это штатное поведение, а не сбой.

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

Дубли после синхронизацииСоответствие GUID не зарегистрировано

Проверьте регистрацию соответствий в настройках обмена и правила поиска по полям

Объект не найден по ссылкеGUID есть, объекта нет

Объект удалён или обмен выполнен частично — проверьте регистрацию к выгрузке

Битая ссылка в отчётеСсылка указывает на несуществующий объект

Запустите тестирование и исправление, восстановите объект из резервной копии

Битые ссылки и потерянные идентификаторы

Битая ссылка — ситуация, когда документ или регистр хранит ссылку на объект, которого больше нет в базе. В интерфейсе это выглядит как запись вида «<Объект не найден> (8f3b2a1c-...)» — программа показывает именно GUID, потому что больше показать нечего. Чаще всего битые ссылки появляются после непосредственного удаления объектов без контроля ссылочной целостности, после неудачных обменов или при восстановлении базы из устаревшей копии.

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

Типичные ошибки при работе с ID

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

Проверка результата и контрольные точки

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

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

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

Список справочника после синхронизации
Норма

Каждый объект существует в одном экземпляре, соответствия зарегистрированы

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

Появились дубли с одинаковыми наименованиями и разными GUID

Документы после замены дублей
Норма

Все ссылки ведут на оставленный объект, отчёты сходятся

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

В формах появляются записи вида <Объект не найден>

Выгрузка на сайт или в другую систему
Норма

Внешняя система обновляет существующие записи по GUID

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

При каждой выгрузке создаются новые записи вместо обновления

Журнал обмена
Норма

Нет ошибок регистрации и неотправленных пакетов

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

Есть объекты с ошибками сопоставления или конфликтами версий

Если хотя бы одна контрольная точка показывает проблему, не продолжайте накатывать следующие порции данных: сначала разберитесь с причиной. Ошибки сопоставления имеют свойство накапливаться, и через несколько циклов обмена исправить их будет значительно дороже.

Маршрут решения

Как выбрать действие

Нужно однозначно идентифицировать объект для интеграцииИспользуйте GUID — он неизменен и уникален, в отличие от кода и наименования
Нужен понятный человеку номер для документов и печатиИспользуйте номер или код — ID для этого не предназначен
После обмена появились дублиПроверьте регистрацию соответствий и правила поиска, затем устраните дубли обработкой с заменой ссылок
В отчётах видны битые ссылкиОстановите обмены, сделайте копию и восстановите объект из резервной копии по GUID

Частые вопросы об ID в 1С

Можно ли изменить уникальный идентификатор объекта?

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

Почему в документе отображается «Объект не найден» с длинным кодом?

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

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

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

Одинаковые ли ID у одного объекта в разных базах?

Не обязательно. Если объект был создан независимо в двух базах, идентификаторы будут разными. Одинаковыми они становятся, если объект перенесён обменом с сохранением GUID или если соответствие зарегистрировано в плане обмена — тогда системы знают, какие идентификаторы эквивалентны.

Как узнать GUID без прав разработчика?

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

Опасно ли, что GUID попадёт во внешнюю систему или файл?

Сам по себе идентификатор не содержит данных объекта — это просто строка-ключ. Риск возникает только если у постороннего есть доступ к API вашей базы: тогда по GUID можно запросить сам объект. Поэтому защищать нужно каналы доступа и права, а не сами идентификаторы.

Итог

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

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