Столкнулись с тем, что при обмене 1С:УПП с сайтом 1С-Битрикс постоянно растёт память, а характеристики продукции не выгружаются? Это типичная ситуация для предприятий, эксплуатирующих УПП. Механизм обмена здесь унаследован от старых версий платформы: CommerceML 2.05 вместо 2.08, устаревший протокол, ограниченная поддержка характеристик. «Просто подключить» по стандарту не получится — нужны доработки. Мы, как сертифицированные специалисты, решаем такие задачи уже более пяти лет. Наш опыт — более 50 проектов по интеграции 1С с Битрикс, включая производственные предприятия с каталогами до 100 000 позиций. Настроим инкрементальный обмен, устраним утечки памяти, организуем двустороннюю передачу заказов.
Технический контекст УПП
УПП работает на платформе 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 управление памятью лучше, проблема менее выражена
- Фильтрация на уровне запроса: выгружать только «Для сайта» (ввести реквизит-флаг в номенклатуру)
Сравнение подходов к обмену
| Аспект | Полный обмен | Инкрементальный обмен |
|---|---|---|
| Время выполнения | до 2 часов | 5–15 минут |
| Нагрузка на сервер | высокая | низкая |
| Риск ошибок при сбое | повтор полной выгрузки | повтор только изменённых |
Инкрементальный обмен лучше полного в 4–8 раз по времени и значительно снижает нагрузку на сервер. Экономия времени и ресурсов очевидна.
Сравнение платформ 1С для обмена
| Платформа | Управление памятью | Поддержка характеристик | Производительность |
|---|---|---|---|
| 1С 8.2 | плохое | ограниченная | низкая |
| 1С 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 (условно «в наличии для заказа»).
Что входит в работу
При настройке обмена УПП ↔ Битрикс мы предоставляем:
- Аудит текущего обмена и конфигурации 1С
- Доработку типовой обработки выгрузки (инкрементальный режим, пакетная отправка)
- Настройку параметров сервера (таймауты, память, cron)
- Реализацию фильтрации и выгрузки характеристик
- Тестирование на тестовом контуре
- Обучение сотрудников основам поддержки
- Документацию по архитектуре обмена
Сроки и сложность
Настройка обмена УПП ↔ Битрикс: 4–10 рабочих дней. Сложнее, чем с УТ/КА из-за устаревшего протокола. Если УПП планируется к замене на ERP — рекомендуем вести интеграцию так, чтобы на стороне Битрикс логика не привязывалась к специфике УПП: XML_ID и структура каталога должны сохраниться при миграции.
CommerceML — официальный протокол обмена, поддерживаемый обеими системами.
Свяжитесь с нами, чтобы обсудить ваш проект. Гарантируем стабильную работу обмена после внедрения. Закажите настройку уже сегодня — получите консультацию инженера бесплатно.







