Налаштування XML-імпорту та експорту 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування XML-імпорту та експорту 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

Налаштування XML-імпорту та експорту 1С-Бітрікс

Стандартний модуль «Торговий каталог» (catalog) підтримує обмін з 1С через протокол CommerceML 2.x — XML-файли з номенклатурою, цінами та залишками. На практиці цей механізм ламається у трьох типових сценаріях: кодування файлу не UTF-8, нестандартна структура вузлів <Класифікатор> з боку 1С та перевищення ліміту часу виконання при файлах більше 50 МБ.

Як працює штатний обмін

1С-Бітрікс очікує файли строго у форматі CommerceML 2.08. Обмін відбувається через /bitrix/admin/1c_exchange.php — скрипт-приймач, який зчитує сесію обміну з $_SESSION['BX_CML2_IMPORT'] та послідовно обробляє чанки через CCatalogImport.

Таблиці, яких торкається імпорт:

  • b_iblock_element — елементи каталогу
  • b_catalog_price — ціни за типами
  • b_catalog_store_product — залишки за складами
  • b_iblock_element_property — властивості елементів

Типові проблеми та їх вирішення

Проблема 1: таймаут при великих файлах

1С вивантажує один XML на 200 000 позицій — файл важить 180 МБ. set_time_limit(0) не рятує, якщо PHP-FPM налаштований з request_terminate_timeout. Рішення — увімкнути покроковий режим: у налаштуваннях модуля «1С-Бітрікс: Управління сайтом → Налаштування → Налаштування продукту → 1С» встановити «Розмір файлу для покрокової обробки» (параметр CATALOG_IMPORT_STEP_SIZE). 1С-Бітрікс самостійно розіб'є файл на частини через SAX-парсер.

Проблема 2: дублікати товарів

Імпорт ідентифікує товар за XML-атрибутом Ід з тегу <Товар>. Якщо в 1С змінили GUID номенклатури, 1С-Бітрікс створює новий елемент. Перевірте поле XML_ID у b_iblock_element — там зберігається цей ідентифікатор. Виправляємо через пряме оновлення або перев'язку через CIBlockElement::Update().

Проблема 3: ціни не оновлюються

Часта причина — тип ціни в 1С називається «Основна», а в 1С-Бітрікс створено тип «Роздрібна». Маппінг задається в /bitrix/admin/cat_price_type.php. Переконайтесь, що XML-тег <ТипЦіни><Найменування> збігається з полем NAME у таблиці b_catalog_price_type.

Налаштування експорту з 1С-Бітрікс до 1С

Для зворотного потоку (замовлення → 1С) використовується той самий endpoint з параметром type=sale. 1С-Бітрікс формує orders.xml зі структурою <Документ>, яка включає позиції замовлення. Критично перевірити, що в налаштуваннях обміну увімкнено прапорець «Вивантажувати реалізації» та вказано потрібний статус замовлень для вивантаження.

Параметри тонкого налаштування через CBitrixComponent bitrix:catalog.import.1c:

IBLOCK_ID — інфоблок каталогу
PRICE_TYPE — тип ціни за замовчуванням
STORE_ID — склад за замовчуванням
USE_CML2_DESCRIPTION — брати опис з XML

Часові рамки робіт

Етап Термін
Діагностика поточної схеми обміну 2–4 години
Налаштування маппінгу типів цін та складів 3–6 годин
Налаштування покрокового імпорту 2–4 години
Тестовий запуск + налагодження 4–8 годин

Повне налаштування під нестандартну структуру 1С займає 1–2 робочих дні. Якщо потрібна кастомна обробка подій OnSuccessCatalogImport або OnBeforeCatalogImport — додайте ще день на розробку обробника.