Как работают общие реквизиты в 1С и как работать с реквизитами модуля Битрикс?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей IT и автоматизация бизнеса
← На главную

При доработке типовых конфигураций (таких как 1С:Управление торговлей, 1С:Комплексная автоматизация или 1С:ERP) с установленными модулями интеграции (например, официальным модулем обмена с «1С-Битрикс») разработчики часто сталкиваются с реквизитами, имеющими префикс Б_ (например, Б_Идентификатор, Б_Пакет). Эти поля отсутствуют в привычном списке реквизитов конкретного справочника в дереве конфигурации, но при этом активно используются при обмене данными.

Разберем детально, что представляют собой общие реквизиты в платформе 1С:Предприятие 8, как с ними правильно работать в коде и запросах, а также выясним, почему реквизиты интеграции Битрикс не видны на экранных формах и как ими управлять.

Что такое общие реквизиты и как они устроены в метаданных

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

Рассмотрим ключевые особенности структуры общих реквизитов:

  1. Расположение в конфигураторе: ветка Общие → Общие реквизиты.
  2. Состав объектов: внутри каждого общего реквизита настраивается свойство «Состав». Открыв окно состава, мы можем явно указать, для каких именно справочников, документов или планов видов характеристик включено использование данного поля (варианты: Использовать, Не использовать, Автоматически).
  3. Физическое хранение в базе данных: для каждого объекта метаданных, включенного в состав общего реквизита, СУБД создает отдельную колонку в таблице этого объекта (при условии, что не включен режим разделения данных).

Как обращаться к общему реквизиту в Консоли запросов и коде 1С

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

Проанализируем пример выборки значений свойств объектов и их идентификаторов Битрикс через язык запросов:


ВЫБРАТЬ
    ЗначенияСвойств.Ссылка КАК Ссылка,
    ЗначенияСвойств.Владелец КАК Свойство,
    ЗначенияСвойств.Наименование КАК Значение,
    ЗначенияСвойств.Б_Идентификатор КАК ИдентификаторБитрикс
ИЗ
    Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойств
ГДЕ
    НЕ ЗначенияСвойств.ПометкаУдаления

Посмотрим на пример работы с общим реквизитом во встроенном языке 1С при чтении и программной записи данных:


Выборка = Справочники.ЗначенияСвойствОбъектов.Выбрать();
Пока Выборка.Следующий() Цикл
    // Чтение значения общего реквизита через точку
    ТекИдентификатор = Выборка.Б_Идентификатор;
    
    Если Не ЗначениеЗаполнено(ТекИдентификатор) Тогда
        ОбъектСвойства = Выборка.ПолучитьОбъект();
        // Присвоение значения общему реквизиту
        ОбъектСвойства.Б_Идентификатор = Строка(Новый УникальныйИдентификатор);
        ОбъектСвойства.Записать();
    КонецЕсли;
КонецЦикла;

Специфика реквизитов интеграции 1С-Битрикс (префикс Б_)

Разберем, почему реквизиты вроде Б_Идентификатор часто вызывают вопросы у специалистов при первом знакомстве:

  1. Назначение поля: реквизит Б_Идентификатор хранит внешний уникальный идентификатор сущности (GUID / XML_ID / ID инфоблока сайта), связывающий номенклатуру, характеристики или значения свойств 1С с соответствующими элементами интернет-магазина «1С-Битрикс».
  2. Отсутствие на формах: разработчики модуля обмена намеренно не выводят эти поля на стандартные формы элементов в режиме 1С:Предприятие. Это защищает интеграцию от случайного изменения или стирания идентификаторов пользователями, что привело бы к разрыву связей и дублированию товаров на сайте.
  3. Заполнение данных: реквизит заполняется автоматически во время сеанса обмена данными при первичной выгрузке номенклатуры на сайт или при импорте заказов. Если элемент создан в базе вручную и еще не участвовал в обмене, поле будет оставаться пустым.

Способы просмотра и редактирования служебных реквизитов в режиме предприятия

Если нам необходимо проверить корректность заполнения идентификаторов или вручную сопоставить элементы, воспользуемся одним из следующих практических способов:

  1. Типовая обработка «Групповое изменение реквизитов»:

    Откроем обработку через меню НСИ и администрирование → Обслуживание → Корректировка данных. В дополнительных настройках включим опцию «Показывать служебные реквизиты». После этого поле Б_Идентификатор станет доступным как в критериях отбора, так и в списке реквизитов для пакетной правки.

  2. Создание расширения конфигурации:

    Если требуется отображать идентификатор на форме элемента справочника Номенклатура или ЗначенияСвойствОбъектов на постоянной основе, добавим форму в расширение и вынесем на нее реквизит Объект.Б_Идентификатор в режиме только для чтения.

  3. Использование внешней обработки:

    Для сложного сопоставления или очистки идентификаторов создадим внешнюю обработку с табличной частью, заполняемой через запрос к нужному справочнику с выводом служебного поля Б_Идентификатор.

← На главную