Настройка обмена 1С:Управление производственным предприятием (УПП) и 1С-Битрикс
УПП — конфигурация, которую всё меньше внедряют «с нуля», но эксплуатируют ещё тысячи предприятий. Её особенность в том, что механизм обмена с сайтом здесь унаследован от старых версий платформы: CommerceML 2.05 вместо 2.08, устаревший протокол, ограниченная поддержка характеристик. Это означает, что «просто подключить» по стандарту не получится — нужны доработки.
Технический контекст УПП
УПП работает на платформе 1С 8.2/8.3, конфигурация поддерживается в режиме «совместимость». Встроенный механизм обмена с сайтом (раздел Управление торговлей → Обмен с сайтом) реализует базовый CommerceML: выгрузка номенклатуры, цен, остатков; приём заказов.
Что работает плохо:
- Характеристики номенклатуры выгружаются нестабильно на крупных каталогах (утечка памяти в 8.2)
- Нет поддержки zip-архивирования при выгрузке (большие XML)
- Нет инкрементального обмена «из коробки» — только полный
- Устаревший формат дат и кодировок в некоторых сборках
Доработка инкрементального обмена
Самая частая задача при интеграции УПП с Битрикс — сделать частичный обмен (только изменённые записи), чтобы не гонять полный каталог каждые 30 минут.
В УПП это решается через внешнюю обработку. Создаём обработку «ВыгрузкаИзменённойНоменклатуры», которая:
- Читает дату последнего успешного обмена из регистра сведений
- Выбирает номенклатуру, изменённую после этой даты
- Формирует XML только для изменённых позиций
- Вызывает стандартный механизм отправки через HTTP
Дата последнего обмена сохраняется в регистре после успешного ответа сервера. При ошибке — не обновляется, следующий запуск повторяет передачу изменений.
Проблема с памятью при полном обмене
УПП на платформе 8.2 имеет известную проблему: при формировании большого XML (от 50 тыс. позиций) процесс 1С растёт по памяти до нескольких гигабайт и может упасть.
Решения:
- Пакетная выгрузка: разбить полный каталог на пакеты по 5000 позиций, отправлять последовательно. На стороне Битрикс включить режим «сессионной» загрузки (флаг
mode=fileв протоколе обмена) - Переход на платформу 8.3: в 8.3 управление памятью лучше, проблема менее выражена
- Фильтрация на уровне запроса: выгружать только «Для сайта» (ввести реквизит-флаг в номенклатуру)
Настройка на стороне Битрикс для УПП
При работе с УПП важно настроить таймаут в Битрикс:
В /bitrix/php_interface/dbconn.php или через .htaccess:
php_value max_execution_time 600
php_value memory_limit 1024M
Для cron-обработки обмена (если используется pull-режим):
# /etc/cron.d/bitrix-1c-exchange
*/30 * * * * www-data php -c /etc/php/cli-1c.ini /var/www/bitrix/import.php
Отдельный php.ini для cron (cli-1c.ini) с увеличенными лимитами — правильная практика, не затрагивающая веб-сервер.
Двусторонний обмен: заказы из Битрикс в УПП
Заказы попадают в УПП как «Заказ покупателя». Частая проблема: в УПП заказ покупателя требует обязательного указания договора (контракта) с контрагентом. При создании нового контрагента (нового покупателя с сайта) договора нет — и заказ создаётся с ошибкой или не проводится.
Решение: в обработке импорта заказов в УПП добавляем автоматическое создание договора по умолчанию для новых контрагентов. Шаблон договора (вид, валюта, организация) — фиксированный для всех заказов с сайта.
Кейс: производственное предприятие, смешанный каталог
Производитель металлоконструкций: каталог из 8000 изделий, у каждого — технические характеристики (ГОСТ, марка стали, габариты). Часть продукции — под заказ (изготавливается), часть — со склада.
Задача на сайте: показывать признак «под заказ / в наличии» с актуальными остатками для складской продукции.
Реализация: в номенклатуре УПП добавлен реквизит «Тип продажи» (Справочник). При выгрузке он передаётся в ДополнительныеРеквизиты. На стороне Битрикс — свойство «Тип продажи» управляет отображением кнопки «В корзину» / «Запросить стоимость».
Остатки выгружаются только для складской продукции (фильтр по «Типу продажи»). Для «под заказ» остаток всегда = 999 (условно «в наличии для заказа»).
Сроки и сложность
Настройка обмена УПП ↔ Битрикс: 4–10 рабочих дней. Сложнее, чем с УТ/КА из-за устаревшего протокола. Если УПП планируется к замене на ERP — рекомендую вести интеграцию так, чтобы на стороне Битрикс логика не привязывалась к специфике УПП: XML_ID и структура каталога должны сохраниться при миграции.







