Обмін 1С-Бітрікс з 1С:Підприємство: без дублів

Перша промислова синхронізація каталогу з 1С:Підприємство з 50 000 SKU на 1С-Бітрікс часто обертається тайм-аутами та дублями. Начебто ввімкнув модуль інтернет-магазину, вказав адресу `1c_exchange.php` — а насправді половина товарів не завантажилась, решта скопіювались по три рази. [CommerceML](http
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Обмін 1С-Бітрікс з 1С:Підприємство: без дублів
Середній
~1-2 тижні

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

Часті запитання

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    996
  • 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
    735
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    773
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1134

Перша промислова синхронізація каталогу з 1С:Підприємство з 50 000 SKU на 1С-Бітрікс часто обертається тайм-аутами та дублями. Начебто ввімкнув модуль інтернет-магазину, вказав адресу 1c_exchange.php — а насправді половина товарів не завантажилась, решта скопіювались по три рази. CommerceML — стандартний протокол обміну, але він не гарантує унікальності ІД. Ми — інтегратори з 10-річним досвідом і досвідом понад 500 проектів. Нижче — реальні схеми, які вирішують ці проблеми без переплат. Економія на ручній обробці дублів може сягати 600 000–800 000 гривень на рік, а окупність інтеграції — 2–3 місяці. Ручний контроль кожного замовлення та товару — втрата часу та грошей. Автоматичний обмін усуває людський фактор і прискорює роботу складу.

Як влаштований стандартний обмін через CommerceML

Протокол CommerceML версії 2.08 диктує два незалежні потоки: каталог (від 1С до сайту) та замовлення (від сайту до 1С).

Вивантаження каталогу (1С → сайт)

  1. 1С формує XML-файли import*.xml (структура, товари, властивості) та offers*.xml (ціни, залишки).
  2. Файли надсилаються HTTP POST на /bitrix/admin/1c_exchange.php.
  3. Сайт парсить XML, оновлює інфоблок.

Обмін замовленнями (сайт → 1С)

  1. Сайт генерує XML із замовленнями за період.
  2. 1С забирає, створює «Замовлення покупця».
  3. 1С повертає статуси.

Точка входу — 1c_exchange.php, команди checkauth, init, file, import.

Чому стандартний CommerceML не справляється з великими каталогами?

Основне обмеження — монолітний XML. При кожному повному обміні обробляється весь каталог, що дає пікове навантаження на сервер. Для каталогів >10 000 SKU повний обмін триває 5–30 хвилин і з'їдає всі ресурси. Висновок: для великих проектів стандартний механізм годиться лише як база.

Дельта-оновлення в 5 разів знижує навантаження

Замість повного вивантаження щогодини — повне раз на добу (вночі) + оновлення цін і залишків щогодини. Це знижує навантаження в робочий час на 80%. Ми використовуємо такий підхід у всіх проектах із високою волатильністю залишків.

REST API в 3 рази швидше для точкових оновлень

Якщо потрібно оновити один товар або статус замовлення, REST API швидше за XML-вивантаження в середньому в 3 рази. Підходить для інтеграцій з WMS або пов'язаними системами.

Як уникнути дублювання товарів при обміні?

Дублі — наслідок зміни ідентифікаторів (ІД) після реструктуризації бази 1С. Стандартний CommerceML не вміє зіставляти старі та нові ІД. Наш кейс: будівельний магазин з 80 000 SKU на УТ 11.4. При кожному оновленні 3–5% товарів отримували нові ІД і створювались заново, старі деактивувались. Менеджери витрачали години на відновлення.

Рішення: middleware-скрипт, який перехоплює подію OnIBlockElementBeforeAdd. Перед створенням елемента він звіряє ІД з XML з таблицею відповідностей {old_id => new_id}. Якщо ІД змінився, але артикул збігається — товар оновлюється, а не створюється. Дублі зникли.

Деталі middleware-скриптуСкрипт пише лог всіх замін ІД в окрему таблицю, що дозволяє відстежити історію змін. Також перевіряє завантаження SQL-запитів через EXPLAIN і при необхідності додає індекси.

Типові проблеми першого запуску та їх рішення

Тайм-аут при великих файлах. Один XML на 50 000 товарів важить 200–400 МБ. На сервері розбір займає до 30 хвилин — PHP звалюється. Рішення: у 1С увімкнути «Вивантажувати файлами по N товарів» з порогом 1000–5000.

Кирилиця в іменах файлів. Файли з кириличними іменами не доходять до скрипта — використовуйте трансліт у налаштуваннях обміну.

Кодування. CommerceML 2.08 вимагає UTF-8. Старі конфігурації можуть видавати windows-1251. Перевіряйте заголовок <?xml version="1.0" encoding="UTF-8"?>.

Розмежування прав для облікового запису обміну

Не використовуйте адміністратора. Створіть окремого користувача з групою, що має права на запис в інфоблок каталогу та на компонент обміну. У 1c_exchange.php перевірка: користувач повинен належати до групи з правом iblock_admin на цільовий інфоблок. Це виключає випадкові зміни в інших розділах.

Періодичність обміну та навантаження

Режим Навантаження на сервер Застосування
Повне вивантаження раз на добу Пікове, 5–30 хв Каталоги до 10 000 SKU
Повне + дельта-оновлення Помірне 10 000–100 000 SKU
Тільки залишки та ціни щогодини Низьке Високоволатильні склади
REST API + події 1С Мінімальне Критичні дані в реальному часі

Що входить у нашу роботу

  • Аналіз поточної структури каталогу та налаштувань обміну
  • Налаштування стандартного або кастомного обміну (CommerceML / REST)
  • Розробка middleware для виключення дублів
  • Впровадження дельта-оновлення та планувальника
  • Тестування на тестовому та бойовому контурах
  • Навчання менеджерів
  • Документація та гарантійна підтримка

Терміни інтеграції

Задача Термін
Стандартний обмін каталогом + замовленнями 1–3 дні
+ нестандартна структура характеристик 3–5 днів
+ вирішення проблем з ІД при перенесенні бази 1–2 дні додатково
Кастомний обмін через REST API 1–3 тижні

Замовте аудит поточного обміну — виявимо вузькі місця та підберемо оптимальну схему. Отримайте консультацію з налаштування обміну: інженер проаналізує ваш проект і запропонує рішення. Економія часу менеджерів — до 40 годин на місяць, а вартість помилок при ручній обробці може сягати 200 000 гривень на квартал.