Настройка выгрузки описаний товаров из 1С в 1С-Битрикс
Описания товаров в CommerceML передаются в теге <Описание> элемента номенклатуры. По умолчанию 1С выгружает туда «Наименование полное» — что для интернет-магазина бесполезно. SEO-копирайтеры пишут тексты на сайте, технические характеристики ведутся в 1С — задача настройки сводится к тому, чтобы обе системы не перезаписывали данные друг друга.
Что выгружает 1С по умолчанию
В стандартной обработке обмена с сайтом в УТ 10/11 в тег <Описание> подставляется поле «Наименование» или «Полное наименование» номенклатуры. Развёрнутые описания в типовых конфигурациях 1С не предусмотрены — их добавляют через дополнительные реквизиты или произвольные реквизиты номенклатуры.
Добавление реквизита «Описание» в 1С
В конфигураторе 1С или через интерфейс Администрирование → Общие настройки → Дополнительные реквизиты и сведения:
- Добавить реквизит «Описание для сайта» с типом «Строка» (неограниченная длина)
- Код реквизита:
ОписаниеДляСайта
В обработке выгрузки XML (типовая обработка «ВыгрузкаТоваровCommerceML» или встроенная в УТ 11) — изменить заполнение тега <Описание> так, чтобы брать значение из нового реквизита вместо стандартного поля наименования.
Маппинг на стороне Битрикс
По умолчанию <Описание> из XML маппируется на поле DETAIL_TEXT элемента инфоблока. Если нужно разделить краткое (PREVIEW_TEXT) и полное описание:
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'iblock',
'OnIBlockElementBeforeAdd',
function(\Bitrix\Main\Event $event) {
$fields = $event->getParameter('fields');
if (!empty($fields['DETAIL_TEXT'])) {
$plain = strip_tags($fields['DETAIL_TEXT']);
$fields['PREVIEW_TEXT'] = mb_substr($plain, 0, 300);
}
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
['fields' => $fields]
);
}
);
Защита описаний от перезаписи
Главный риск: SEO-специалист написал уникальный текст для карточки товара, следующий обмен с 1С перетёр его техническим описанием из базы. Два способа защиты:
Через настройки модуля: в Настройки → Интернет-магазин → Поля для обновления при обмене снять галочку с поля DETAIL_TEXT.
Через обработчик с флагом: добавить свойство элемента SEO_DESCRIPTION_LOCK (тип: список, значения: Y/N). Обработчик OnIBlockElementBeforeUpdate проверяет флаг:
if ($existingElement['PROPERTY_SEO_DESCRIPTION_LOCK_VALUE'] === 'Y') {
unset($fields['DETAIL_TEXT'], $fields['PREVIEW_TEXT']);
}
Флаг выставляет редактор контента при сохранении уникального текста. Менеджеры видят в административной карточке товара, защищён ли текст от перезаписи.
Технические характеристики vs. маркетинговые описания
Практика: из 1С передавать технические характеристики (вес, размеры, состав материала) в отдельные свойства инфоблока. Маркетинговые описания писать на сайте и защищать от перезаписи. Это даёт чёткое разделение зон ответственности: 1С отвечает за точность данных, сайт — за качество текста.
Сроки настройки
Настройка выгрузки описаний с доработкой в 1С и защитой от перезаписи — 4–8 часов. С разработкой интерфейса управления флагом защиты — 1 день.







