Зіткнулися з тим, що при обміні 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 — офіційний протокол обміну, який підтримується обома системами.
Зв'яжіться з нами, щоб обговорити ваш проєкт. Гарантуємо стабільну роботу обміну після впровадження. Замовте налаштування вже сьогодні — отримайте консультацію інженера безкоштовно.







