Налаштування вивантаження описів товарів з 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 день.







