Настройка выгрузки дополнительных реквизитов из 1С в 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка выгрузки дополнительных реквизитов из 1С в 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка выгрузки дополнительных реквизитов из 1С в 1С-Битрикс

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

Типы дополнительных реквизитов в 1С

В 1С:УТ 11 дополнительные реквизиты и сведения хранятся в двух местах:

Реквизиты объекта (ДополнительныеРеквизиты) — хранятся непосредственно в элементе справочника. Выгружаются при каждом обмене.

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

Типы значений реквизитов:

  • Строка, Число, Дата, Булево
  • Ссылка на справочник (значение — GUID элемента)
  • Строка с вариантами (перечисление)

Последний тип — ссылочный — создаёт наибольшие проблемы при обмене (подробнее ниже).

Как реквизиты передаются в XML

Дополнительные реквизиты попадают в XML внутри <Товар>:

<ЗначенияРеквизитов>
  <ЗначениеРеквизита>
    <Наименование>Мощность</Наименование>
    <Значение>2500</Значение>
  </ЗначениеРеквизита>
  <ЗначениеРеквизита>
    <Наименование>ЕдиницаМощности</Наименование>
    <Значение>Вт</Значение>
  </ЗначениеРеквизита>
  <ЗначениеРеквизита>
    <Наименование>ГарантийныйСрок</Наименование>
    <Значение>24</Значение>
  </ЗначениеРеквизита>
</ЗначенияРеквизитов>

Битрикс при импорте создаёт свойства инфоблока с такими же наименованиями и заполняет их значениями.

Автоматически создаваемые свойства: проблема кодов

При первом импорте Битрикс создаёт свойства инфоблока с кодами вида CML2_ATTR_001, CML2_ATTR_002. Это нечитаемые машинные коды, с которыми неудобно работать в шаблонах.

Правильная практика: перед первым реальным импортом пройти цикл тестовых импортов на копии, после чего вручную переименовать коды свойств в читаемые (POWER_WATT, WARRANTY_MONTHS). После этого при следующих импортах коды уже не изменятся (Битрикс ищет свойство по совпадению наименования, а не кода).

Или — написать обработчик OnIBlockPropertyAdd, который при создании свойства через обмен задаёт правильный код на основе наименования (транслитерация):

AddEventHandler('iblock', 'OnIBlockPropertyAdd',
    'setReadablePropertyCode');

function setReadablePropertyCode(&$arFields) {
    if (empty($arFields['CODE'])) {
        $arFields['CODE'] = CUtil::translit(
            $arFields['NAME'],
            'ru',
            ['change_case' => 'U', 'replace_space' => '_']
        );
    }
}

Ссылочные реквизиты: подмена GUID на значение

Если реквизит в 1С — ссылка на справочник, в XML придёт GUID, а не текст:

<ЗначениеРеквизита>
  <Наименование>Производитель</Наименование>
  <Значение>f3a2b1c0-1234-5678-abcd-ef0123456789</Значение>
</ЗначениеРеквизита>

На сайте в карточке товара будет показан GUID вместо «Bosch». Это нужно исправить либо:

  1. На стороне 1С: перед формированием XML подменять GUID на строковое значение (наименование элемента справочника). Это правильнее — не нужно дополнительная логика на стороне Битрикс.

  2. На стороне Битрикс: в обработчике импорта хранить таблицу маппинга «GUID → значение» (формируется из первичного обмена или отдельной выгрузки справочников) и подставлять значение при записи свойства.

Множественные значения одного реквизита

В 1С реквизит может иметь несколько значений (если настроен как «допускается несколько значений»). В XML они передаются несколькими тегами с одинаковым наименованием.

На стороне Битрикс свойство должно быть настроено как «Множественное». Обработчик импорта должен собирать все значения в массив:

// При импорте собираем множественные значения
$multiValues = [];
foreach ($arXML['ADDITIONAL_REQUISITES'] as $req) {
    if ($req['NAME'] === 'Применяемость') {
        $multiValues[] = $req['VALUE'];
    }
}
$arProps['APPLICABILITY'] = $multiValues;

Кейс: промышленный каталог с 60+ атрибутами

Завод насосного оборудования: каждое изделие описывается 60–80 техническими параметрами (рабочее давление, температурный диапазон, материал корпуса, класс защиты и т.д.). В 1С все они хранятся как дополнительные реквизиты.

При первом импорте в Битрикс создалось 78 свойств инфоблока с нечитаемыми кодами. Потратили день на переименование кодов и настройку типов (числовые — как «Число», с единицами измерения; строковые — как «Список» для фильтра).

После настройки: компонент умного фильтра Битрикс автоматически предлагает фильтрацию по всем числовым и списочным свойствам. Покупатель фильтрует насосы по давлению, температуре и материалу — без дополнительной разработки.

Инкрементальное обновление атрибутов (при изменении значений в 1С) — 4 минуты на весь каталог из 2300 позиций.