Главная / База знаний / Разработка сайтов: статьи и руководства

Выгрузка товаров из 1С в интернет-магазин: как это устроено

7 мин чтения обновлено 20 августа 2026 Разработка сайтов: статьи и руководства

Коротко. Товары попадают из 1С на сайт через модуль обмена CommerceML: 1С выгружает XML-файлы с каталогом и остатками, сайт их принимает и обновляет базу. Полная выгрузка каталога занимает от нескольких минут до часа в зависимости от числа товаров, а обмен остатками и заказами обычно настраивают по расписанию — раз в 15-60 минут. Чаще всего ломается синхронизация остатков: она либо идёт слишком редко и товар продаётся, когда его уже нет, либо падает по таймауту на большом каталоге и просто не завершается.

Что вообще передаётся между 1С и сайтом

Обмен работает в двух направлениях, и это два разных процесса с разной логикой:

Каталог и остатки обновляются с разной частотой не просто так: описание товара меняется редко, а остаток — постоянно, при каждой продаже что на сайте, что в офлайн-точке, если она есть.

Как технически устроен обмен: протокол CommerceML

Стандартный способ связать 1С с сайтом на WooCommerce, 1С-Битрикс или почти любой другой CMS — протокол обмена CommerceML (иногда называют CommerceML 2.0 или обмен через 1С:Управление торговлей). Механика простая по идее и сложная в деталях:

  1. 1С формирует XML-файл с данными о товарах — каталог, цены, изображения — и выгружает его на сайт через HTTP-запрос или напрямую в файловую директорию.
  2. Сайт принимает файл через специальный обработчик — на WooCommerce это плагин обмена (например, «WP CommerceML» или аналог), на 1С-Битрикс — штатный модуль интеграции с 1С.
  3. Обработчик разбирает XML и записывает данные в базу сайта: создаёт новые товары, обновляет существующие, помечает удалённые как неактивные.
  4. Отдельным циклом идёт обмен остатками — это более лёгкий и частый файл, потому что содержит только артикулы и количество, без описаний и картинок.
  5. Обмен заказами идёт в обратную сторону: сайт формирует файл с новыми заказами, 1С его забирает и заводит документы продажи.

Всё это может идти по расписанию (раз в 15-60 минут через cron) или по требованию — когда менеджер в 1С вручную запускает выгрузку.

Сколько времени занимает выгрузка

Операция Ориентировочное время От чего зависит
Полная выгрузка каталога (первый запуск) от нескольких минут до 1-2 часов число товаров, наличие изображений в выгрузке, мощность хостинга
Инкрементальное обновление каталога 1-10 минут сколько товаров реально изменилось с прошлой выгрузки
Обновление остатков секунды — 5 минут число SKU, частота запуска по расписанию
Передача заказа в 1С обычно в течение цикла обмена, 15-60 минут настройки расписания, можно сделать почти мгновенно при событийном обмене

Каталог в 5000-10000 товаров с картинками при первой полной выгрузке может занять больше часа — это нормально, и делать её стоит не в рабочее время, чтобы не нагружать сайт для живых посетителей.

Что чаще всего ломается

Остатки расходятся с реальностью

Самая частая и самая болезненная проблема. Если обмен остатками настроен раз в час, а товар активно продаётся в офлайн-магазине, покупатель на сайте может оформить заказ на товар, которого физически уже нет. Решение — либо чаще запускать обмен остатками (раз в 15 минут вместо часа), либо переходить на событийную синхронизацию, которая обновляет остаток сразу при продаже, а не по расписанию.

Обмен падает по таймауту на большом каталоге

Если каталог большой, а хостинг сайта не рассчитан на обработку тяжёлых XML-файлов, обмен может обрываться на середине — часть товаров обновится, часть нет, и определить, что именно, без логов сложно. Это одна из причин, почему на каталогах от нескольких тысяч товаров важно подбирать хостинг с запасом по памяти и времени выполнения скриптов, а не типовой бюджетный тариф.

Дублирование товаров

Если у обработчика на сайте нет чёткого правила сопоставления по артикулу или коду 1С, при повторной выгрузке вместо обновления существующего товара может создаться новый. Особенно часто это случается, если менять артикул товара в самой 1С — обработчик перестаёт узнавать товар как тот же самый.

Слетают ручные правки на сайте

Если контент-менеджер вручную поправил описание или изображение товара прямо на сайте, а следующая выгрузка из 1С перезаписывает это поле — правка теряется без предупреждения. Это не баг, а логика полной перезаписи при обмене: нужно заранее решить, какие поля управляются из 1С, а какие — только с сайта, и настроить обработчик соответственно.

Изображения передаются не всегда стабильно

Картинки — самая тяжёлая часть выгрузки, и на медленном канале или большом каталоге передача изображений может обрываться первой. Частый обходной путь — выгружать изображения реже, чем цены и остатки, отдельным циклом раз в сутки.

Что можно проверить самому, а что требует разработчика

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

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

Как снизить риск проблем с обменом

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

Можно ли настроить обмен так, чтобы остатки обновлялись мгновенно?

Да, через событийную синхронизацию вместо обмена по расписанию — остаток обновляется сразу при продаже. Это сложнее в настройке и требует более тесной интеграции, чем стандартный CommerceML по cron, но снимает риск продажи несуществующего товара.

Что делать, если после выгрузки в каталоге появились дубли товаров?

Проверить правило сопоставления в обработчике обмена — обычно дубли возникают, если сопоставление идёт не по уникальному коду 1С, а по названию или другому нестабильному полю. Исправление — задача для разработчика, вручную удалять дубли без исправления причины бессмысленно, они появятся снова.

Почему на сайте не появляются новые товары из 1С?

Частые причины: обмен упал по таймауту и не дошёл до новых позиций, товар не попадает под фильтр выгрузки (например, выгружается не вся номенклатура, а конкретные категории), либо у товара не заполнены обязательные для сайта поля и обработчик его пропускает. Смотреть нужно логи последнего обмена.

Нужно ли останавливать сайт на время выгрузки каталога?

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

Сколько стоит настроить или починить обмен с 1С?

Зависит от того, типовая ли у вас конфигурация 1С и CMS сайта, или обмен уже кастомизирован под нестандартную логику. Точную стоимость нужно смотреть по факту конкретной интеграции — вилка сильно шире, чем у типовой разработки магазина.

Проверить, надёжно ли настроен обмен с 1С

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

ПОЛУЧИТЬ БЕСПЛАТНЫЙ АУДИТ →

Услуга по теме материала

Сделаем магазин с корзиной, оплатой и интеграциями — от 350 000 ₽

Материалы по теме