Коротко. Обмен 1С и 1С-Битрикс работает по протоколу CommerceML 2 в двух режимах: автоматический (1С сама стучится на сайт по расписанию, обычно раз в сутки для каталога и каждые 15-30 минут для остатков и цен) и офлайн через файлы, когда данные переносят вручную или по FTP. На типовом магазине до 5 000 товаров базовая настройка выгрузки товаров, остатков и загрузки заказов обратно в 1С занимает 3-6 часов работы программиста; каталоги свыше 20 000 позиций или нетиповая логика (несколько складов, разные типы цен, маркетплейс-статусы заказов) увеличивают срок до 1-3 дней.
Что вообще передаётся и в какую сторону
Обмен между 1С и 1С-Битрикс — это не единый процесс, а три независимых потока данных, у каждого свои правила и своя частота:
- Каталог товаров (справочники, разделы, свойства, картинки) — идёт из 1С на сайт, меняется редко, поэтому выгружать его каждый час бессмысленно и вредно: это самый тяжёлый по объёму поток.
- Остатки и цены — тоже из 1С на сайт, но меняется постоянно и должно обновляться часто, иначе покупатель оформит заказ на то, чего уже нет на складе.
- Заказы — идут в обратную сторону, с сайта в 1С, и дальше 1С возвращает на сайт статусы (оплачен, собран, отгружен), чтобы покупатель видел актуальное состояние заказа в личном кабинете.
Разделение потоков — это не теория, а конкретная настройка: в 1С-Битрикс отдельно настраивается обмен «Каталог» и отдельно «Заказы», и у каждого свой регламент запуска. Смешивать их в одну ежечасную выгрузку — частая ошибка, из-за которой сервер магазина захлёбывается на тяжёлом каталоге, пока покупатели ждут страницу.
Два режима обмена: автоматический и через файлы
В типовой конфигурации 1С-Битрикс обмен настраивается через раздел Магазин → Настройки → Обмен с 1С (файл 1c_exchange.php в административной панели). Есть два принципиально разных сценария:
| Режим | Как работает | Когда подходит |
|---|---|---|
| Автоматический (HTTP) | 1С сама подключается к сайту по протоколу CommerceML через HTTP-модуль обмена, авторизуется логином/паролем технического пользователя сайта и заливает данные без участия человека | Постоянно работающий магазин, обновления по расписанию, сервер 1С доступен из интернета или через VPN |
| Через файлы (офлайн) | 1С выгружает данные в XML-файлы (import.xml, offers.xml, orders.xml), файлы вручную или по FTP заливаются в папку обмена на сайте, дальше сайт их разбирает по расписанию cron |
1С стоит в закрытом контуре без доступа в интернет, либо разовая миграция каталога, либо тестовый прогон обмена перед боевым запуском |
Для действующего магазина почти всегда выбирают автоматический режим — он не требует ручных действий и работает по расписанию без вмешательства. Файловый режим используют как запасной вариант или для первоначальной загрузки большого каталога, где удобнее контролировать процесс вручную.
Регламент: как часто на самом деле нужно гонять обмен
Частота обмена — самая частая точка спора между 1С-программистом и владельцем магазина. Рабочие ориентиры:
- Полная выгрузка каталога (товары, разделы, характеристики) — раз в сутки, ночью, когда нагрузка на сервер минимальна. Каталог с 10-15 тысячами позиций может выгружаться 20-40 минут, и запускать это в рабочее время — гарантированная просадка скорости сайта.
- Остатки и цены — отдельным лёгким потоком каждые 15-30 минут. Это выгрузка без картинок и описаний, только количество и цена, поэтому она в разы быстрее полного каталога и не создаёт заметной нагрузки.
- Заказы — каждые 5-15 минут в обе стороны. Здесь критична скорость: если менеджер видит заказ в 1С только через час после оформления, а курьер уже готов ехать — это прямые потери на скорости обработки.
Запуск обмена привязывается к системным агентам 1С-Битрикс, а агенты в свою очередь должны выполняться через cron на сервере, а не «по хитам» (когда агент срабатывает только при заходе посетителя на сайт). Если cron не настроен, обмен может не запускаться сутками при низкой посещаемости ночью — это одна из самых частых причин жалоб «остатки не обновляются», хотя настройка самого обмена в порядке.
Где чаще всего теряются данные
Три ситуации закрывают большинство проблем с обменом:
- Несовпадение внешних кодов. У каждого товара в 1С есть свой внутренний идентификатор (GUID), который на сайте хранится в поле
XML_ID. Если каталог когда-то грузили вручную или через сторонний импорт без сохранения этого поля, повторный обмен с 1С не узнаёт «старые» товары и создаёт дубли вместо обновления существующих карточек. - Таймаут на большом каталоге. Обмен через HTTP ограничен временем выполнения PHP-скрипта (
max_execution_time) и объёмом памяти (memory_limit). На каталогах от 15-20 тысяч товаров дефолтные лимиты хостинга (обычно 30-60 секунд) обмену не хватает, и выгрузка обрывается на середине. Решение — либо увеличить лимиты на сервере, либо включить постраничную выгрузку файлами ограниченного размера (параметр «Ограничивать размер файла» в настройках CommerceML). - Расхождение кодировок. 1С исторически работает с Windows-1251, современные сайты — с UTF-8. Если это не учтено в настройках обмена, вместо названий товаров и характеристик на сайте появляются «кракозябры» — обычно после переноса конфигурации 1С на новую версию или смены хостинга сайта.
Сколько стоит настройка и от чего зависит цена
Диапазон цен большой именно потому, что «настройка обмена» может означать разные объёмы работы:
- Типовой обмен на стандартной конфигурации 1С (Управление торговлей, УНФ) с типовым модулем «Малый бизнес» или «Интернет-магазин» 1С-Битрикс — 3-6 часов работы, это в основном проверка и донастройка уже существующего механизма.
- Нетиповая логика — несколько складов с раздельными остатками, разные типы цен для розницы и опта, синхронизация статусов заказов с маркетплейсами, кастомные свойства товаров — от 1 до 3 рабочих дней, потому что часть логики придётся дописывать программно поверх стандартного механизма CommerceML.
- Миграция с ручного ведения каталога на полноценный обмен (когда карточки товаров создавались вручную и не имеют связи с 1С) — отдельная задача на 1-2 дня, включающая сопоставление позиций каталога сайта и справочника 1С.
Если сайт уже работает медленно или падает во время обмена, вопрос обмена стоит разбирать не изолированно, а вместе с общей технической поддержкой сайта — часто причина не в самом обмене, а в ресурсах сервера, которые обмен просто выявляет первым.
Как проверить, что обмен реально работает
Не полагайтесь на «вроде бы работает» — проверка занимает пять минут:
- Изменить остаток одного товара в 1С и зафиксировать время изменения.
- Дождаться следующего запланированного запуска обмена остатков (обычно 15-30 минут) и проверить карточку товара на сайте.
- Оформить тестовый заказ на сайте и проверить, появился ли он в 1С в течение заявленного регламента (5-15 минут).
- Проверить журнал обмена в административной панели сайта (
Магазин → 1С-Битрикс → Отчёты → Журнал событий) на предмет ошибок и таймаутов за последнюю неделю — единичные сбои нормальны, регулярные обрывы на одном и том же шаге — признак системной проблемы.
FAQ
Можно ли настроить обмен 1С и Битрикс своими силами, без программиста?
Если конфигурация 1С типовая и каталог небольшой, базовые настройки в мастере обмена действительно можно пройти самостоятельно по документации 1С-Битрикс — модуль на это и рассчитан. Как только появляются нетиповые склады, несколько цен или кастомные поля, без программиста разобраться со сбоями будет сложно.
Почему остатки на сайте не совпадают с 1С прямо сейчас?
Чаще всего дело в регламенте: обмен остатков идёт не мгновенно, а по расписанию (обычно раз в 15-30 минут), и разница в несколько минут — норма. Если расхождение держится часами, проверьте журнал обмена на ошибки и убедитесь, что cron-задачи агентов реально выполняются на сервере.
Что будет, если вообще не настраивать автоматический обмен?
Каталог и остатки придётся обновлять вручную — либо через ручной ввод в панели сайта, либо периодической выгрузкой файлов. Для магазина с активными продажами это почти гарантированно приводит к продаже отсутствующего товара и лишней нагрузке на менеджеров, которые сверяют остатки вручную.
Обмен замедляет сайт для посетителей?
Полная выгрузка каталога — да, может, если запущена в дневное время на слабом сервере, поэтому её и переносят на ночь. Лёгкий обмен остатками и ценами при нормальной настройке незаметен для посетителей.
Нужен ли VPN между 1С и сайтом?
Не обязательно, но желательно с точки зрения безопасности: обмен по CommerceML можно защитить логином, паролем и ограничением по IP на стороне сайта без VPN. VPN или закрытый канал имеет смысл, если 1С хранит чувствительные коммерческие данные и выход в открытый интернет ограничен политикой компании.
Проверить, как на самом деле работает обмен на вашем сайте
Бесплатный аудит покажет, где теряются остатки и заказы, и что в текущей настройке обмена стоит доработать.