Справочники и Данные · 11 мин
Уникальный идентификатор номенклатуры в 1С: что это и для чего нужен
Что такое уникальный идентификатор номенклатуры в 1С, где он хранится, зачем нужен, как получить GUID элемента и избежать ошибок при обмене данными.
В справочнике «Номенклатура» любой конфигурации 1С каждый элемент имеет несколько способов идентификации: код, артикул, наименование, штрихкод. Однако ни один из них не является по-настоящему надёжным: коды могут переиспользоваться после удаления, наименования редактируются, артикулы дублируются у разных поставщиков. Единственный гарантированно неизменный признак элемента — уникальный идентификатор, или GUID (Globally Unique Identifier).
Уникальный идентификатор присваивается объекту автоматически в момент создания и больше никогда не меняется, пока объект существует в базе. Он выглядит как строка из 36 символов, например: a3f2c1d4-5b6e-4a7f-8c9d-0e1f2a3b4c5d. Именно по GUID платформа связывает элементы справочника с документами, регистрами и другими объектами, а также сопоставляет данные при обмене между базами.
Понимание того, как устроен идентификатор номенклатуры, критично при настройке обмена с сайтом, интеграции с WMS или другой базой 1С, при загрузке данных из Excel и при поиске причин «задвоений» после синхронизации. Ниже разобраны устройство GUID, способы его получения, типовые сценарии использования и ошибки, которые приводят к дублям номенклатуры.
Что такое уникальный идентификатор и где он хранится в 1С
Физически GUID хранится в поле ссылки таблицы справочника в базе данных. Когда в документе «Реализация товаров» вы указываете товар, в табличной части сохраняется не наименование и не код, а именно ссылка, содержащая GUID. Поэтому переименование элемента номенклатуры никак не влияет на уже проведённые документы — они продолжают ссылаться на тот же объект.
Важно различать GUID объекта и его представление. В языке 1С ссылка — это составное значение, включающее тип объекта (например, «СправочникСсылка.Номенклатура») и сам идентификатор. Два элемента с одинаковым GUID, но в разных справочниках — это разные объекты. Один и тот же товар в двух разных базах по умолчанию имеет разные GUID, если только базы не были получены копированием или идентификаторы не были синхронизированы при обмене.
GUID не отображается в стандартных формах списка и карточки номенклатуры — платформа показывает пользователю код и наименование. Это внутренний технический реквизит, поэтому получить его можно только специальными способами: программно, через внешние обработки или при выгрузке данных.
Чем GUID отличается от кода, артикула и штрихкода
Путаница между идентификаторами — частая причина ошибок при интеграциях. Код справочника может быть числовым или строковым, он уникален только в рамках одной базы и одного уровня иерархии, а при удалении элемента код может быть выдан повторно новому элементу. Артикул и штрихкод вообще не гарантируют уникальность и хранятся как обычные редактируемые реквизиты.
| Признак | GUID | Код | Артикул / штрихкод |
|---|---|---|---|
| Кто присваивает | Платформа автоматически | Автонумерация или вручную | Пользователь или загрузка |
| Можно изменить | Нет | Да, если разрешено | Да |
| Уникальность | Глобальная | В пределах базы | Не гарантирована |
| Виден пользователю | Нет | Да | Да |
| Используется в обмене | Да, основной ключ | Иногда как доп. ключ | Как доп. ключ поиска |
Из сравнения следует практический вывод: для связи с внешними системами (сайт, CRM, складская программа) надёжнее всего хранить на той стороне именно GUID элемента номенклатуры, а код и артикул использовать только как вспомогательные ключи поиска при первичном сопоставлении.
Как узнать GUID элемента номенклатуры
Самый простой способ без программирования — выгрузить данные через типовой обмен (например, в CommerceML при обмене с сайтом): в XML-файле у каждого товара будет поле «Ид», содержащее GUID. Также идентификатор виден при выгрузке через универсальный обмен данными в формате XML.
Если доступен конфигуратор или режим «Предприятие» с правами на выполнение внешних обработок, GUID получают программно. Метод УникальныйИдентификатор() вызывается у ссылки на объект:
ГУИД = XMLСтрока(НоменклатураСсылка.УникальныйИдентификатор());Обратная задача — найти элемент по известному GUID — решается методом ПолучитьСсылку() менеджера справочника с предварительным созданием объекта «УникальныйИдентификатор» из строки. Перед использованием результата полезно проверить, что ссылка не «битая», то есть объект реально существует в базе.
- 1Откройте любую обработку с консолью кода или создайте внешнюю обработку
- 2Получите ссылку на нужный элемент номенклатуры (по коду, наименованию или запросом)
- 3Выполните: Сообщить(Ссылка.УникальныйИдентификатор())
- 4Скопируйте строку вида a3f2c1d4-5b6e-4a7f-8c9d-0e1f2a3b4c5d
- 5Проверьте результат, выполнив обратный поиск элемента по этому GUID
Роль GUID при обмене данными между базами
В типовых планах обмена (УТ ↔ БП, УТ ↔ УТ, обмен с сайтом) сопоставление объектов идёт именно по GUID. Когда элемент номенклатуры впервые выгружается из базы-источника, в базе-приёмнике создаётся новый элемент, и ему либо присваивается тот же GUID из пакета обмена, либо создаётся регистрация соответствия «GUID источника — ссылка приёмника» в регистре сведений соответствия объектов.
Именно поэтому при корректно настроенном обмене повторная выгрузка того же товара не создаёт дубль: приёмник находит объект по идентификатору и обновляет его реквизиты. Если же соответствие потеряно (например, очищен регистр соответствия или элемент в приёмнике удалён и создан заново вручную), при следующем обмене появится дубль.
Типичные проблемы: дубли и «битые» ссылки
Дубли номенклатуры после обмена возникают в трёх типовых ситуациях. Первая — первичная загрузка в базу, где товары уже были заведены вручную: GUID у «ручных» элементов другие, и обмен создаёт новые. Вторая — удаление элемента в одной из баз с последующим ручным созданием «такого же» товара. Третья — обмен по правилам, где поиск настроен по наименованию или артикулу, а эти реквизиты различаются.
«Битая» ссылка — ситуация, когда в документе или регистре хранится GUID объекта, которого уже нет в базе. В формах это выглядит как строка вида «<Объект не найден> (a3f2c1d4-...)». Причина — прямое удаление элемента минуя контроль ссылочной целостности, либо загрузка документа раньше, чем пришла сама номенклатура из другой базы.
Практические сценарии использования GUID
Интеграция с сайтом и внешними системами
При обмене с интернет-магазином на стороне сайта сохраняют GUID каждого товара из 1С. Тогда при повторных выгрузках сайт обновляет существующие карточки, а не создаёт новые. Если сайт хранит только артикулы, смена артикула в 1С приведёт к потере связи.
Загрузка прайсов и первичное сопоставление
При загрузке данных из Excel GUID поставщика обычно отсутствует, поэтому первичное сопоставление делают по артикулу и наименованию, а затем в таблице соответствий фиксируют GUID найденного элемента 1С. При следующих загрузках поиск идёт уже по сохранённому идентификатору — это быстрее и надёжнее.
Перенос данных между базами
При миграции из старой конфигурации в новую через универсальный формат или конвертацию данных правила обычно настроены так, чтобы GUID элементов сохранялись. Это позволяет потом безболезненно переносить документы и остатки: ссылки в них разрешатся в те же самые элементы.
Как проверить результат
Количество элементов номенклатуры не растёт, реквизиты обновляются
Появляются дубли с тем же наименованием
Товары отображаются наименованиями
Строки вида «<Объект не найден>»
Находится ровно один корректный элемент
Элемент не найден или найден другой товар
Ограничения и безопасные приёмы работы
GUID нельзя назначить вручную произвольному элементу через интерфейс пользователя — только программно при создании объекта методом ПолучитьСсылку(Новый УникальныйИдентификатор(...)) с последующей записью. Это штатный приём при миграциях, но использовать его без понимания механизма рискованно: можно создать объект со ссылкой, которая уже существует, и получить конфликт.
При групповой обработке номенклатуры (объединение дублей, замена ссылок) используйте типовые механизмы поиска и замены дублей — они корректно переносят ссылки из всех документов и регистров на «выживший» элемент. Самостоятельная замена ссылок запросом по таблицам базы напрямую запрещена лицензионным соглашением и почти гарантированно разрушит данные.
Перед любой интеграцией зафиксируйте в техническом задании, какой идентификатор является главным ключом сопоставления товаров. Если обе стороны договорились о GUID из 1С и сохраняют его у себя, большинство проблем с дублями исчезает ещё на этапе проектирования.
Как выбрать действие
FAQ
Можно ли изменить GUID существующего элемента номенклатуры?
Штатными средствами — нет, идентификатор неизменен. На практике «сменить» GUID можно только создав новый элемент с нужной ссылкой программно и перенеся на него все ссылки типовой обработкой поиска и замены, после чего удалив старый элемент. Это трудоёмкая операция, требующая резервной копии.
Совпадают ли GUID одинаковых товаров в разных базах 1С?
Только если база была получена копированием или элементы пришли туда обменом с сохранением идентификаторов. Если один и тот же товар завели вручную в двух базах, GUID будут разными — для обмена потребуется таблица соответствий.
Чем GUID отличается от «Ид» в файле выгрузки на сайт?
В типовом обмене CommerceML поле «Ид» товара, как правило, и есть GUID элемента номенклатуры из 1С. Но в некоторых настройках «Ид» может быть составным (например, GUID товара плюс GUID характеристики через разделитель), поэтому перед интеграцией стоит проверить реальный формат выгрузки.
Что делать, если в документе отображается «<Объект не найден>»?
Скопируйте GUID из текста сообщения и проверьте, существует ли элемент с таким идентификатором. Если объект удалён, восстановите его из копии или дождитесь повторной загрузки из базы-источника. Удалять документы с такими ссылками до разбора причин не следует.
Можно ли использовать штрихкод вместо GUID для интеграции?
Можно как вспомогательный ключ, но не как единственный: штрихкоды могут дублироваться, меняться производителем и отсутствовать у части товаров. Надёжная схема — GUID как основной ключ, штрихкод и артикул как ключи первичного поиска.
Где посмотреть GUID без программирования и конфигуратора?
Выгрузите каталог товаров типовым обменом с сайтом или универсальным обменом XML — идентификаторы будут в файле. Также GUID виден в некоторых типовых отчётах по соответствию объектов при настроенной синхронизации данных.
Что важно запомнить
Уникальный идентификатор номенклатуры — это GUID, который платформа присваивает элементу при создании и использует для всех внутренних ссылок и обменов. Он не меняется при редактировании карточки, поэтому именно его следует применять как ключ интеграции. Дубли и «битые» ссылки почти всегда следствие потери соответствия GUID — лечатся восстановлением связей и типовым объединением дублей.