Налаштування обміну 1С:Автосервіс і 1С-Бітрікс
Інтернет-магазин автозапчастин або сайт автосервісу на Бітрікс має специфіку, якої немає у звичайному товарному каталозі: застосовуваність (до яких автомобілів підходить запчастина), OEM-номери, крос-номери, VIN-прив'язка. Все це зберігається в 1С:Автосервіс — і завдання інтеграції полягає в тому, щоб ці дані коректно потрапили на сайт.
Номенклатура в 1С:Автосервіс
Конфігурація зберігає запчастини з розширеними атрибутами:
- Артикул виробника (OEM-номер)
- Крос-номери (аналоги інших виробників)
- Застосовуваність (марка, модель, рік випуску, двигун)
- Бренд/виробник
- Ознака «нова/б/у»
- Гарантійний термін
Стандартний CommerceML передає найменування та артикул. OEM-номери, крос-номери та застосовуваність — через ДодатковіРеквізити. На стороні Бітрікс кожен із цих реквізитів повинен стати властивістю інфоблоку з правильним типом (рядок, множинне значення для крос-номерів, прив'язка до довідника для застосовуваності).
Застосовуваність: найскладніша частина
Застосовуваність запчастини — це зв'язок «багато-до-багатьох»: одна запчастина підходить до кількох автомобілів, один автомобіль використовує безліч запчастин. У 1С:Автосервіс застосовуваність зберігається в регістрі відомостей.
У CommerceML немає стандартного способу передати цю структуру. Варіанти:
Варіант 1: JSON у реквізиті.
У 1С формуємо JSON-рядок із застосовуваністю і кладемо в ДодатковийРеквізит:
[
{"make":"Toyota","model":"Camry","year_from":2006,"year_to":2011,"engine":"2AZ-FE"},
{"make":"Toyota","model":"RAV4","year_from":2005,"year_to":2012,"engine":"2AZ-FE"}
]
У Бітрікс — властивість типу «Текст» зі зберіганням JSON. Фільтрація за застосовуваністю — через повнотекстовий пошук або окрему таблицю.
Варіант 2: Окремий інфоблок застосовуваності. Створюємо в Бітрікс окремий інфоблок «Застосовуваність» (марка/модель/рік/двигун) та інфоблок «Запчастини» з прив'язкою через властивість типу «Прив'язка до елементів». Це правильна архітектура для повноцінного підбору за автомобілем, але синхронізувати її з 1С складніше — потрібен кастомний обробник імпорту.
Крос-номери та пошук
Крос-номери — це коди однієї запчастини під різними брендами. Покупець шукає за крос-номером на сайті — повинна знайтись запчастина, навіть якщо продається аналог іншого виробника.
У Бітрікс крос-номери зберігаються як множинна властивість інфоблоку. Пошук за ними — через компонент bitrix:catalog.smart.filter або кастомний пошук із використанням CIBlockElement::GetList із фільтром за властивістю.
При імпорті з 1С:Автосервіс крос-номери передаються через ДодатковіРеквізити з множинними значеннями:
<ЗначенняРеквізиту>
<Найменування>КросНомер</Найменування>
<Значення>BP-35</Значення>
</ЗначенняРеквізиту>
<ЗначенняРеквізиту>
<Найменування>КросНомер</Найменування>
<Значення>ATE-603310</Значення>
</ЗначенняРеквізиту>
Обробник імпорту в Бітрікс повинен збирати кілька значень одного реквізиту в масив.
Заявки на роботи: специфіка Автосервісу
У 1С:Автосервіс крім продажу запчастин ведуться «Замовлення-наряди» — документи на виконання робіт. На сайті це може бути форма запису на обслуговування або онлайн-діагностика.
Передача заявок з сайту до 1С:Автосервіс: зазвичай це не CommerceML, а REST-запит до HTTP-сервісу 1С. Заявка створюється як «Звернення» або «Замовлення-наряд» у статусі «Нове».
Кейс: магазин б/у запчастин
Розбирання легкових автомобілів: 45 тис. позицій б/у запчастин, у кожної — фото, стан (1-5), застосовуваність. Повний обмін з 1С:Автосервіс займав 40 хвилин і «підвішував» сервер.
Оптимізація:
- Фільтр вивантаження: тільки «В наявності» (залишок > 0)
- Зображення через FTP окремо від XML (XML без base64 удвічі менший)
- Застосовуваність — JSON в одному полі (не окремий інфоблок)
- Інкрементальний обмін кожні 30 хвилин: тільки позиції зі зміненим залишком
Результат: повний обмін — 12 хвилин (вночі), інкрементальний — 2 хвилини.







