Справочники и Данные · 12 мин
Как добавить идентификатор в 1С
Как добавить идентификатор в 1С: через дополнительные реквизиты, расширение конфигурации, код и GUID. Пошаговые инструкции, проверка результата и типичные ошибки.
Идентификатор в 1С — это значение, которое однозначно отличает один объект от другого: товар от товара, контрагента от контрагента, документ от документа. В зависимости от задачи под «добавлением идентификатора» понимают разные вещи: присвоение уникального кода элементу справочника, создание дополнительного реквизита для хранения внешнего ID (например, из сайта или CRM), настройку идентификатора для обмена данными или работу с внутренним GUID объекта.
Прежде чем что-то менять, определите, какой именно идентификатор нужен. Если требуется просто хранить артикул поставщика или ID из интернет-магазина — достаточно дополнительного реквизита, который добавляется без программирования. Если идентификатор должен участвовать в обменах и быть виден в структуре объекта — потребуется изменение конфигурации или расширение. Если нужен технический ключ для интеграции через API — чаще всего используют уже существующий GUID ссылки.
Ниже разобраны все основные сценарии: от простого добавления реквизита в пользовательском режиме до получения GUID и настройки идентификаторов обмена. Для каждого способа указаны условия применения, ограничения и способ проверить результат.
Определите, какой идентификатор вам нужен
В 1С одновременно существует несколько видов идентификаторов, и путаница между ними — главная причина ошибок. Внутренний код элемента справочника или номер документа система присваивает автоматически, они видны пользователю, но не всегда уникальны между разными базами. GUID (глобальный уникальный идентификатор) присваивается каждой ссылке при создании и не меняется никогда, но в интерфейсе напрямую не отображается.
Отдельный класс — пользовательские идентификаторы: артикулы, штрихкоды, внешние ID из сайтов, маркетплейсов и учётных систем. Их добавляют как дополнительные реквизиты, дополнительные сведения или штатные реквизиты конфигурации. Выбор зависит от того, кто будет заполнять значение, должно ли оно выводиться в печатных формах и участвовать в поиске.
Сравнение вариантов
Подходит для ID из внешних систем, артикулов, кодов поставщика. Добавляется пользователем без программирования, но медленнее в запросах при больших объёмах.
Для справочной информации, которая не нужна в отборах и отчётах. Хранится отдельно, не видно в основной форме списка.
Когда идентификатор должен быть частью объекта, участвовать в обменах, индексироваться и выводиться в типовых отчётах. Требует доступа к конфигуратору.
Для технической интеграции через API и веб-сервисы. Уже существует у каждого объекта, добавлять ничего не нужно.
Добавление идентификатора через дополнительные реквизиты
Это самый доступный способ, не требующий прав программиста и изменения конфигурации. Дополнительные реквизиты поддерживаются в типовых конфигурациях на платформе 8.3: «Управление торговлей», «ERP», «Комплексная автоматизация», «Бухгалтерия предприятия» и других. Механизм работает для большинства справочников и документов.
Включите механизм: перейдите в раздел «Администрирование» → «Общие настройки» и установите флажок «Дополнительные реквизиты и сведения». После этого откройте карточку нужного справочника (например, «Номенклатура»), нажмите «Ещё» → «Изменить состав дополнительных реквизитов» или перейдите по одноимённой ссылке из общих настроек.
- 1Откройте «Администрирование» → «Общие настройки» и включите «Дополнительные реквизиты и сведения».
- 2Перейдите в список наборов дополнительных реквизитов и выберите нужный объект, например «Номенклатура».
- 3Нажмите «Добавить» → «Новый» и укажите название, например «ID сайта».
- 4Установите тип значения «Строка» и при необходимости ограничьте длину.
- 5Отметьте опцию «Заполнять обязательно», если идентификатор критичен для обмена.
- 6Сохраните реквизит и откройте карточку элемента — поле появится на вкладке или в группе дополнительных реквизитов.
После сохранения реквизит появится в карточках всех элементов справочника. Значения можно заполнять вручную, загружать из Excel через обработку «Загрузка данных из табличного документа» или передавать по API. Дополнительные реквизиты доступны в отборах списков и в конструкторе отчётов СКД, поэтому по ним удобно искать и фильтровать.
Учтите ограничение: дополнительные реквизиты хранятся в отдельной таблице значений, поэтому запросы с соединением по ним на очень больших базах работают медленнее, чем по штатным реквизитам. Для идентификатора, по которому постоянно идёт поиск в обменах с миллионами записей, лучше рассмотреть добавление реквизита через расширение.
Добавление реквизита-идентификатора через расширение конфигурации
Если идентификатор должен быть полноценной частью объекта — индексироваться, участвовать в типовых обменах, выводиться в печатных формах без доработки запросов — его добавляют как обычный реквизит. В типовых конфигурациях на поддержке правильный способ сделать это без снятия с поддержки — расширение конфигурации.
Откройте конфигуратор, в меню «Конфигурация» выберите «Расширения конфигурации» и создайте новое расширение с понятным именем, например «ИдентификаторыИнтеграции». В дереве конфигурации найдите нужный объект, добавьте его в расширение через контекстное меню «Добавить в расширение», затем добавьте новый реквизит: тип «Строка», длина с запасом (для GUID — 36 символов), при необходимости установите признак «Индексировать».
После сохранения расширения обновите конфигурацию базы данных (F7). Платформа выполнит реструктуризацию — добавит колонку в таблицу. На больших таблицах это может занять заметное время и потребовать монопольного доступа, поэтому планируйте операцию на нерабочие часы. После обновления добавьте реквизит на форму объекта, чтобы пользователи могли его видеть и заполнять.
Использование GUID как идентификатора для интеграций
У каждой ссылки в 1С уже есть глобальный уникальный идентификатор — GUID. Он формируется в момент создания объекта, никогда не меняется и гарантированно уникален в пределах базы. Для интеграций через HTTP-сервисы, OData или COM-соединение GUID — стандартный способ сослаться на конкретный объект.
Получить GUID в пользовательском режиме можно через внешние обработки или встроенный HTTP-интерфейс OData: откройте в браузере адрес вида http://сервер/база/odata/standard.odata/Catalog_Номенклатура — в ответе поле Ref_Key и будет GUID элемента. В коде на встроенном языке GUID получают так:
ИдентификаторСтрокой = XMLСтрока(СсылкаНаОбъект); // преобразование ссылки в GUID-строку
СсылкаОбратно = Справочники.Номенклатура.ПолучитьСсылку(Новый УникальныйИдентификатор(ИдентификаторСтрокой));Важно помнить об ограничении: при выгрузке объекта в другую базу через типовые механизмы конвертации GUID может сохраниться, а может измениться — это зависит от способа переноса. Поэтому для обменов между базами внешние системы часто хранят связку «GUID + дополнительный реквизит с внешним ID», чтобы иметь резервный ключ сопоставления.
Идентификаторы в обменах данными между базами
При обмене между двумя базами 1С сопоставление объектов выполняется по внутренним идентификаторам, которые хранятся в регистрах соответствия (в типовых планах обмена это «Соответствия объектов информационных баз»). Когда объект впервые выгружается из одной базы в другую, система записывает пару «ID источника — ID приёмника», и дальнейшие обмены идут по этой связке.
Если сопоставление по GUID невозможно (базы создавались независимо), при первой синхронизации используется поиск по ключевым полям: для номенклатуры — по артикулу и наименованию, для контрагентов — по ИНН и КПП. Именно здесь дополнительный реквизит-идентификатор оказывается полезен: его можно включить в правила поиска и добиться точного сопоставления без дублей.
Проверить текущие соответствия можно из карточки настройки синхронизации: раздел «Синхронизация данных» → настройка обмена → «Сопоставление объектов» (в некоторых конфигурациях — «Состав отправляемых данных» и журнал регистрации обмена). Там видно, какие объекты сопоставлены, а какие загружены с предупреждениями.
Идентификаторы для печатных форм и внешних компонентов
Отдельный сценарий — идентификаторы, которые требуются внешним печатным формам, обработкам и расширениям. Каждая внешняя обработка, подключаемая через «Дополнительные отчеты и обработки», должна иметь уникальное имя и версию; команды печати идентифицируются по строковому идентификатору команды, который задаётся в модуле обработки.
Если вы добавляете собственную печатную форму и она не появляется в меню «Печать», первое, что проверяют, — корректность идентификатора команды и привязку к типам объектов в сведениях о внешней обработке. Идентификатор должен быть уникальным строковым значением без пробелов, а в списке назначений должен быть указан нужный документ или справочник.
Проверка результата и типичные ошибки
После добавления идентификатора любым способом проверьте три вещи: значение сохраняется и не теряется после перезапуска программы, поиск по идентификатору находит ровно один объект, идентификатор попадает в обмен или отчёт, ради которого создавался. Проверку выполняйте на копии базы или на тестовом элементе, прежде чем заполнять значения массово.
Как проверить результат
Открыли карточку, ввели ID, записали, закрыли и открыли снова — значение на месте
Значение исчезает: реквизит не добавлен в структуру или нет прав на запись
Отбор в списке по значению ID возвращает ровно один элемент
Находится несколько элементов или ни одного при заведомо существующем значении
После тестовой синхронизации объект сопоставлен, дублей нет
В приёмнике создан дубль объекта с новым ID
Для контроля уникальности пользовательских идентификаторов в типовых механизмах нет автоматической проверки дополнительных реквизитов. Если уникальность критична, её обеспечивают либо регламентом (проверочный отчёт по дублям значений), либо программной проверкой в расширении при записи объекта.
Что важно запомнить
Для хранения внешнего ID используйте дополнительные реквизиты — это быстро и безопасно. Для интеграций по API берите встроенный GUID ссылки. Для обменов между базами сопоставление ведётся через регистры соответствий, а резервным ключом служит дополнительный реквизит. Любые изменения структуры делайте через расширение и только после резервной копии.
Частые вопросы
Можно ли добавить идентификатор без прав администратора?
Дополнительные реквизиты создаются при наличии прав на настройку программы — обычно это роль администратора или настройщика. Обычный пользователь может только заполнять уже созданные реквизиты. Если прав нет, запросите у администратора создание реквизита с нужным именем и типом.
Чем дополнительный реквизит отличается от дополнительного сведения?
Реквизит отображается прямо в карточке объекта и доступен в отборах списков и отчётах. Сведение открывается отдельной командой и предназначено для справочной информации, по которой не нужно искать. Для идентификатора, участвующего в обменах и поиске, выбирайте реквизит.
Изменится ли GUID объекта при переносе в другую базу?
Зависит от способа переноса. При обмене через планы обмена и конвертацию с сохранением ссылок GUID обычно сохраняется. При загрузке через табличные документы или создании объектов заново GUID будет новым. Поэтому для межсистемной связи надёжнее хранить внешний идентификатор в отдельном реквизите.
Как массово заполнить идентификаторы для всех товаров?
Используйте типовую обработку «Загрузка данных из табличного документа» (в разделе с функциями для технического специалиста или через «Ещё» в списке справочника — «Загрузить данные из файла» в ряде конфигураций). Подготовьте файл с колонками «ключ поиска» и «идентификатор», выполните загрузку сначала в тестовом режиме на небольшой выборке.
Почему добавленный реквизит не виден в отчёте?
Дополнительные реквизиты подключаются к отчётам на СКД через настройки: в конструкторе отчёта добавьте поле из ветки дополнительных реквизитов объекта. Если реквизит создан через расширение, проверьте, что отчёт построен на запросе, включающем это поле, либо используйте конструктор СКД с обновлённой структурой.
Можно ли удалить созданный идентификатор без потери данных?
Удаление дополнительного реквизита удаляет и все его значения во всех элементах — восстановить их нельзя. Перед удалением выгрузите значения в файл отчётом или универсальной выгрузкой. Если реквизит больше не нужен, но данные жалко, просто скройте его из форм вместо удаления.