Настройка односторонней выгрузки из 1С в 1С-Битрикс
Односторонняя выгрузка — сценарий, когда 1С является единственным источником истины для каталога: цены, остатки, характеристики товаров управляются только в 1С и передаются на сайт. Сайт ничего не отправляет обратно в товарную часть. Простота схемы — её главное достоинство, и одновременно главный источник проблем при неправильной настройке.
Когда это правильный выбор
Односторонняя схема оправдана, когда:
- Контент товаров (описания, фото) ведётся на сайте, а учётные данные (цены, остатки, артикулы) — в 1С
- Нет риска конфликта версий — 1С всегда перезаписывает данные на сайте
- Простота обслуживания важнее гибкости, а обмен настраивают один раз надолго
Ошибка: использовать одностороннюю выгрузку и при этом редактировать цены или остатки на сайте вручную. При следующем обмене все изменения перезапишутся без предупреждения. Это главная причина инцидентов в магазинах с новыми менеджерами.
Настройка запрета обратной передачи
В настройках модуля обмена на сайте отключить обмен заказами, если он не нужен:
Настройки → Настройки продуктов → Интернет-магазин → Обмен с 1С → Заказы:
- Опция «Выгружать заказы в 1С»: выключить, если заказы в 1С не нужны
На стороне 1С в регламентном задании:
- Включить только «Выгрузка товаров и остатков»
- Отключить «Загрузка заказов с сайта»
Защита контента от перезаписи
Ключевая задача при односторонней выгрузке — чётко определить, какие поля приходят из 1С, а какие управляются на сайте.
Настройки → Настройки продуктов → Интернет-магазин → Поля для обновления:
Рекомендуемый список полей для перезаписи из 1С:
- Название (
NAME) — если в 1С ведётся нормальная номенклатура - Цены — всегда из 1С
- Остатки — всегда из 1С
- Артикул (
ARTICLE) — всегда из 1С
Поля, которые должны остаться под управлением сайта:
-
DETAIL_TEXT— SEO-описание, написанное копирайтером -
PREVIEW_PICTURE,DETAIL_PICTURE— ретушированные фото - Свойства-теги (
SEO_*,META_*) — метаданные для поисковых систем
Для тонкого контроля на уровне кода — обработчик OnIBlockElementBeforeUpdate, который проверяет список защищённых полей и удаляет их из массива обновления:
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'iblock',
'OnIBlockElementBeforeUpdate',
function(\Bitrix\Main\Event $event) {
$fields = $event->getParameter('fields');
$protectedFields = ['DETAIL_TEXT', 'PREVIEW_PICTURE'];
foreach ($protectedFields as $field) {
unset($fields[$field]);
}
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS,
['fields' => $fields]
);
}
);
Деактивация товаров, отсутствующих в выгрузке
Опция «Деактивировать товары, не переданные при обмене» — опасная, но часто нужная. Если в 1С товар снят с продажи — он должен исчезнуть с сайта. Включать только убедившись, что полная выгрузка действительно включает весь активный ассортимент. Частичные выгрузки (только изменившиеся позиции) с этой опцией вместе не работают — деактивируют всё, чего не было в файле.
Сроки настройки
Настройка односторонней выгрузки с защитой контентных полей — 4–8 часов. Сложнее, если нужно разобраться с историческими данными и привести к единому виду существующий каталог, — 1–2 дня.







