Налаштування обміну 1С:ERP Управління підприємством та 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування обміну 1С:ERP Управління підприємством та 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування обміну 1С:ERP Управління підприємством і 1С-Бітрікс

Типова ситуація: ERP веде багаторівневу структуру номенклатури з характеристиками, серіями, партіями, кількома одиницями виміру — і все це потрібно передати на сайт так, щоб картка товару виглядала розумно, а ціни та залишки оновлювалися без затримок. Стандартний модуль обміну 1С-Бітрікс (bitrix.catalog) із CommerceML 2.08 вміє більшу частину з цього, але 1С:ERP — конфігурація нестандартна, і «з коробки» майже ніколи не працює коректно.

Де ламається стандартний обмін із ERP

Множинні одиниці виміру. В ERP номенклатура може продаватися в штуках, упаковках і піддонах одночасно. CommerceML передає базову одиницю, інші — через ОдиниціВиміру в XML. Модуль Бітрікс читає тільки базову, якщо не доопрацьований обробник OnIBlockElementAdd / OnIBlockElementUpdate.

Характеристики та варіанти. В ERP «характеристика» — це розріз номенклатури (колір, розмір, артикул постачальника). У Бітрікс це торгові пропозиції (SKU). Стандартний обмін створює SKU, але втрачає зв'язки, якщо характеристики в ERP мають вкладені значення або якщо в однієї номенклатури тисячі варіантів — XML-файл розростається до кількох гігабайт, і обмін падає за таймаутом.

Серії та партії. В ERP серійний облік — окрема підсистема. CommerceML 2.08 не має стандартного тегу для серій. Їх доводиться передавати через ДодатковіРеквізити та читати на стороні Бітрікс кастомним обробником.

Організаційна структура. ERP працює з кількома організаціями та складами. Бітрікс очікує склади як Склад із GUID в XML. Якщо в ERP кілька складів із різними залишками — потрібна явна таблиця маппінгу «склад ERP → склад Бітрікс».

Архітектура надійного обміну

Для ERP з каталогом від 50 тис. позицій рекомендую розділити повний та інкрементальний обмін:

Тип обміну Periodичність Вміст
Повний 1 раз на добу (ніч) Вся номенклатура, групи, характеристики
Залишки + ціни Кожні 15–30 хв Тільки змінені записи
Замовлення (→ ERP) Кожні 5 хв Нові та змінені замовлення з Бітрікс

Повний обмін вночі знімає навантаження з сервера. Інкрементальний — через ДатаЗміни в запиті ERP: вивантажуються тільки об'єкти, змінені з моменту останньої успішної сесії.

Налаштування на стороні ERP. У вузлі обміну веб-сервісу ERP (розділ Інтеграція з сайтом) необхідно:

  • Вказати URL сайту та параметри авторизації
  • Налаштувати фільтр номенклатури (організація, склад, вид ціни)
  • Увімкнути передачу характеристик, одиниць виміру, серій
  • Задати розклад регламентного завдання

Налаштування на стороні Бітрікс. У модулі Обмін даними з 1С (/bitrix/admin/1c_exchange.php):

  • Тип обміну: Каталог + Торговий каталог
  • Увімкнути режим «Не оновлювати прив'язку до груп» (при наявності ручних прив'язок на сайті)
  • Налаштувати відповідність властивостей: ДодатковіРеквізити → властивості ІБ

Кейс: інтеграція ERP виробничого підприємства

Клієнт — завод будівельних матеріалів, 120 тис. позицій номенклатури, 4 склади. Проблема: повний обмін генерував XML 4,5 ГБ, PHP-обробник Бітрікс падав через 300 секунд.

Рішення в три кроки:

  1. На стороні ERP налаштували передачу тільки «активної» номенклатури (фільтр за реквізитом «Публікувати на сайті»). Обсяг скоротився до 800 МБ.

  2. Увімкнули режим потокового читання файлу (zip-архівування в налаштуваннях вузла): ERP пакує XML в zip, Бітрікс розпаковує на льоту. Час передачі впав у 3 рази.

  3. У php.ini для cron-процесу задали max_execution_time = 0 і memory_limit = 2048M. Обмін повний — 18 хвилин, інкрементальний — 40 секунд.

Додатково: написали обробник події OnIBlockElementBeforeUpdate для логування конфліктів — коли менеджер на сайті змінив ціну вручну, а ERP намагається її перезаписати. Конфлікти пишуться в окрему таблицю, щоденний звіт іде технологу.

Типові помилки при першому запуску

GUID не збігаються. ERP і Бітрікс ідентифікують об'єкти за XML_ID (GUID). Якщо в ERP була перезбірка або відновлення з бекапу — GUID перегенерувалися, і Бітрікс створить дублі замість оновлення існуючих записів. Перед запуском обміну звірте XML_ID у b_iblock_element із GUID тестового вивантаження.

Кодування. ERP вивантажує UTF-8, але старі версії веб-сервісу можуть віддавати windows-1251. Бітрікс очікує UTF-8. Симптом: кракозябри в назвах або помилка парсингу XML. Перевіряйте заголовок Content-Type HTTP-відповіді.

Великі зображення. ERP може передавати зображення прямо в XML (base64). При тисячах позицій файл розростається неприпустимо. Налаштуйте в ERP передачу зображень окремим пакетом або вимкніть передачу зображень через обмін — завантажуйте їх окремим скриптом.

Терміни та склад робіт

Типовий проект із налаштування обміну ERP ↔ Бітрікс: 3–8 робочих днів залежно від обсягу номенклатури та кількості нестандартних сутностей (серії, партії, додаткові реквізити). Окремо — тестування на копії БД перед перемиканням production.