Справочники и Данные · 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 любой ссылки:
Сообщить(СсылкаНаОбъект.УникальныйИдентификатор());Через консоль запросов
Во многих отраслевых и типовых решениях, а также в популярных инструментах разработчика, есть консоль запросов, где можно вывести представление ссылки вместе с идентификатором. Это удобно, когда нужно получить GUID сразу для списка объектов — например, для всей номенклатуры одной группы.
Через внешние обработки и интеграции
Если база обменивается данными с сайтом или другой системой, идентификаторы часто видны в файлах обмена (CommerceML, JSON) и в журналах синхронизации. Там GUID выступает как внешний ключ, по которому сайт понимает, какой товар обновить, а какой создать заново.
- 1Откройте базу в режиме, где доступна консоль кода или инструменты разработчика (нужны соответствующие права)
- 2Получите ссылку на нужный элемент — например, запросом по наименованию или через функцию поиска
- 3Выполните вызов Ссылка.УникальныйИдентификатор() и снимите результат
- 4Проверьте результат: строка должна содержать 36 символов с дефисами в формате GUID
- 5Сохраните идентификатор вместе с типом объекта — без типа одного GUID недостаточно для однозначной ссылки
Где используется ID: обмены, интеграции и ссылки
Основная сфера применения идентификаторов — обмен данными. Когда «1С:Управление торговлей» выгружает заказы в «1С:Бухгалтерию», а товары — на сайт, все участники обмена договариваются о единых ключах. План обмена при первой синхронизации регистрирует соответствие: «этот GUID в базе-источнике = этот GUID в базе-приёмнике». Дальше обновляются только изменённые объекты, и система точно знает, что именно обновлять.
Вторая область — веб-сервисы и API. При публикации базы через HTTP-сервисы или стандартный OData-интерфейс объект адресуется именно по GUID: внешняя система запрашивает Catalog_Номенклатура(guid'...') и получает конкретный элемент. Если идентификатор в запросе не найден, сервис вернёт ошибку — это штатное поведение, а не сбой.
Третья область — устранение дублей и перенос данных. Обработки поиска и замены дублирующихся элементов работают так: находят пары объектов с похожими реквизитами, заменяют все ссылки в документах с «плохого» GUID на «хороший», а затем помечают лишний объект на удаление. После такой замены история документов сохраняется, а справочник очищается.
Проверьте регистрацию соответствий в настройках обмена и правила поиска по полям
Объект удалён или обмен выполнен частично — проверьте регистрацию к выгрузке
Запустите тестирование и исправление, восстановите объект из резервной копии
Битые ссылки и потерянные идентификаторы
Битая ссылка — ситуация, когда документ или регистр хранит ссылку на объект, которого больше нет в базе. В интерфейсе это выглядит как запись вида «<Объект не найден> (8f3b2a1c-...)» — программа показывает именно GUID, потому что больше показать нечего. Чаще всего битые ссылки появляются после непосредственного удаления объектов без контроля ссылочной целостности, после неудачных обменов или при восстановлении базы из устаревшей копии.
Опасность битых ссылок в том, что они искажают отчёты и проводки: документ ссылается на несуществующий товар, обороты не сходятся, а найти виновника сложно. Платформа хранит только GUID, поэтому восстановить, что это был за объект, можно лишь по резервной копии или по журналам обмена.
Типичные ошибки при работе с ID
Проверка результата и контрольные точки
После любых операций, затрагивающих идентификаторы — настройки обмена, устранения дублей, переноса данных, — результат нужно проверять, а не считать выполненным по факту завершения обработки. Минимальный набор контрольных точек приведён ниже.
Как проверить результат
Каждый объект существует в одном экземпляре, соответствия зарегистрированы
Появились дубли с одинаковыми наименованиями и разными GUID
Все ссылки ведут на оставленный объект, отчёты сходятся
В формах появляются записи вида <Объект не найден>
Внешняя система обновляет существующие записи по GUID
При каждой выгрузке создаются новые записи вместо обновления
Нет ошибок регистрации и неотправленных пакетов
Есть объекты с ошибками сопоставления или конфликтами версий
Если хотя бы одна контрольная точка показывает проблему, не продолжайте накатывать следующие порции данных: сначала разберитесь с причиной. Ошибки сопоставления имеют свойство накапливаться, и через несколько циклов обмена исправить их будет значительно дороже.
Как выбрать действие
Частые вопросы об ID в 1С
Можно ли изменить уникальный идентификатор объекта?
Штатными средствами — нет: платформа не даёт редактировать GUID у существующей ссылки. Существуют обходные приёмы через создание нового объекта с заданным идентификатором и замену ссылок, но это рискованная операция, которую выполняют только с резервной копией и при реальной необходимости, например при слиянии баз.
Почему в документе отображается «Объект не найден» с длинным кодом?
Это битая ссылка: документ хранит GUID объекта, который был удалён или не загружен при обмене. Длинный код — и есть тот самый уникальный идентификатор. Восстановить объект можно из резервной копии или повторной загрузкой из базы-источника.
Чем ID отличается от кода элемента справочника?
Код — видимый пользователю реквизит, который может редактироваться и при сбоях нумерации повторяться. ID генерируется платформой, скрыт от пользователя, неизменен и гарантированно уникален. Для обменов и интеграций надёжным ключом является только ID.
Одинаковые ли ID у одного объекта в разных базах?
Не обязательно. Если объект был создан независимо в двух базах, идентификаторы будут разными. Одинаковыми они становятся, если объект перенесён обменом с сохранением GUID или если соответствие зарегистрировано в плане обмена — тогда системы знают, какие идентификаторы эквивалентны.
Как узнать GUID без прав разработчика?
Попросите администратора или программиста выполнить запрос в консоли кода — это занимает минуту. Самостоятельно пользователь может увидеть идентификаторы в файлах выгрузки (например, CommerceML для обмена с сайтом) или в сообщениях об ошибках обмена, где GUID часто указывается в тексте.
Опасно ли, что GUID попадёт во внешнюю систему или файл?
Сам по себе идентификатор не содержит данных объекта — это просто строка-ключ. Риск возникает только если у постороннего есть доступ к API вашей базы: тогда по GUID можно запросить сам объект. Поэтому защищать нужно каналы доступа и права, а не сами идентификаторы.
Что важно запомнить
ID в 1С — это автоматически генерируемый GUID, который не меняется в течение всей жизни объекта и служит единственным надёжным ключом для обменов и интеграций. Код, номер и наименование для сопоставления не подходят. Любые операции с идентификаторами — замену ссылок, устранение дублей, правку обменов — выполняйте только с резервной копией и проверкой результата по контрольным точкам.