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

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

Настройка CSV-імпорту та експорту 1С-Бітрікс

Стандартний CSV-імпорт у 1С-Бітрікс ламається на трьох речах: неправильна кодування, невідповідність розділювачів та відсутність зіставлення властивостей. Менеджер завантажує файл, отримує «Імпорт завершений, оброблено 0 елементів» — і пише в підтримку. Розберемо, як налаштувати CSV-обмін так, щоб він працював передбачуваним чином.

Механіка CSV-імпорту в каталозі

Модуль catalog містить вбудований обробник CSV — клас \Bitrix\Catalog\CsvImport. Імпорт доступний через адміністративний інтерфейс: Магазин → Налаштування → Імпорт CSV. Але важливо розуміти, що відбувається під капотом.

Бітрікс читає файл построчно, розбиваючи за розділювачем (за замовчуванням точка з запятою). Перший рядок може бути заголовком — якщо включена опція «Перший рядок містить імена полів». Далі кожен рядок зіставляється з полями інфоблоку: NAME, XML_ID, DETAIL_TEXT, властивості виду PROPERTY_ARTICLE, ціни CATALOG_PRICE_1.

Критично важливі настройки:

  • Кодування файлу — Бітрікс очікує UTF-8. Якщо файл у Windows-1251 (типово для виконання з 1С), потрібно включити перекодування в налаштуваннях імпорту або конвертувати файл заздалегідь.
  • Розділювач полів — точка з запятою, кома або табуляція. Якщо в даних зустрічаються точки з запятою (описи товарів), використовуйте табуляцію.
  • XML_ID — унікальний ідентифікатор елемента. Без нього імпорт створює дублі при кожному запуску замість оновлення існуючих записів.

Зіставлення полів та властивостей

Найчастіша помилка — невідповідність заголовків у CSV з кодами властивостей інфоблоку. Бітрікс шукає точне збігання: якщо властивість називається BRAND, а в CSV заголовок brand — зіставлення не сработает.

Для властивостей типу «список» у CSV потрібно указувати значення, а не XML_ID варіанту. Бітрікс намагається знайти збігання за значенням і прив'язати елемент. Якщо значення не знайдено — властивість залишиться пустою без якої-небудь помилки в логі.

Властивості типу «прив'язка до елемента» вимагають передачі ID пов'язаного елемента або його XML_ID (при включенній опції пошуку за XML_ID).

CSV-експорт

Експорт налаштовується в Магазин → Експорт даних. Профіль експорту зберігається в таблиці b_catalog_export і може запускатися по cron через агент \Bitrix\Catalog\CatalogExportAgent::exportCsv.

При експорті великих каталогів (понад 50 000 товарів) стандартний механізм працює пошагово — по 500 елементів за ітерацію. Розмір кроку задається в налаштуваннях профіля. Якщо експорт обривається на середині — збільшіть max_execution_time у PHP або зменшіть розмір кроку.

Формат виконання фіксований: UTF-8, розділювач з налаштувань профіля. Для інтеграції з зовнішніми системами, що очікують Windows-1251, додайте пост-обробку через iconv у cron-скрипті.

Автоматизація через cron

Ручний імпорт через адмінку допустимий для разових завантажень. Для регулярного оновлення (щоденна синхронізація залишків, цін) використовуйте cron-запуск:

/usr/bin/php -f /home/bitrix/www/bitrix/modules/catalog/load/csv_run.php

Параметри профіля імпорту передаються через ID збереженого профіля. Профіль створюється в адмінці, тестується вручну, потім його ID підставляється в cron.

Масштаб каталогу Час імпорту Рекомендація
До 5 000 товарів 1–3 хв Стандартний імпорт через адмінку
5 000–50 000 5–30 хв Cron + пошаговий режим
Понад 50 000 30+ хв Cron + прямий SQL-імпорт в обхід API

Типові граблі

  • Дублі товарів — завжди заповняйте XML_ID і включайте пошук за ним. Без цього кожен запуск імпорту створить нові елементи.
  • Втрачені зображення — CSV-імпорт не підтримує завантаження файлів. Для картинок використовуйте шлях до файлу на сервері в колонці DETAIL_PICTURE — Бітрікс підхопить файл за абсолютним шляхом.
  • Скидання SEO-полів — якщо в CSV немає колонок META_TITLE, META_DESCRIPTION, імпорт може обнулити їх при оновленні. Включіть опцію «Не оновлювати порожні поля».