Обмін цінами між 1С:УТ та 1С-Бітрікс: швидке вивантаження з мапінгом видів цін
У ситуації, де номенклатура синхронізується раз на добу, а ціни потрібно оновлювати кожні 15-30 хвилин, виникає окрема інженерна задача. Знижкові акції, сезонні коригування, зміни закупівельних цін — будь-який з цих факторів вимагає швидкого та точного вивантаження. Ми вирішуємо цю задачу за допомогою налаштування окремого потоку обміну, оптимізованого за обсягом і швидкістю. За 5+ років інтеграцій ми зіткнулися з десятками конфігурацій 1С:УТ та Бітрікс і виробили надійні схеми синхронізації. Згідно з документацією 1С-Бітрікс (helpdesk.bitrix24.ru), для ефективного обміну рекомендується розділяти вивантаження товарів та цін.
Необхідність розділення вивантаження цін та номенклатури
Повний обмін товарами (з картинками, властивостями, описами) може займати години та блокувати базу даних. Якщо ціни оновлюються всередині цього ж потоку, проста зміна знижки призводить до повторного вивантаження всього каталогу. Окремий XML-файл для цін — пропозиції (offers) — важить у 10 разів менше і обробляється за хвилини навіть у каталозі з 50 000 позицій.
Види цін в УТ та їх мапінг на Бітрікс
В 1С:УТ 11 ціни зберігаються в регістрі відомостей ЦеныНоменклатуры. Кожній ціні задано вид (тип). Типові види: роздрібна (для фізосіб), оптова (для дилерів з порогами за обсягом), закупівельна (собівартість — на сайт зазвичай не вивантажується) та акційна (тимчасові ціни).
В Бітрікс кожен вид ціни УТ відповідає типу ціни в торговельному каталозі (b_catalog_price). Відповідність налаштовується в Налаштування → Торговельний каталог → Типи цін.
| Вид ціни в УТ | Тип ціни в Бітрікс | Хто бачить |
|---|---|---|
| Роздрібна | BASE | Всі (аноніми) |
| Оптова | WHOLESALE | Група «Оптовики» |
| Акційна | SALE | Всі (перекриває BASE) |
Права на перегляд типів цін керуються через Налаштування → Торговельний каталог → Типи цін → Групи доступу.
Налаштування окремого XML-файлу для цін
Для швидкого обміну цінами УТ може формувати окремий XML-файл, який містить лише ціни без номенклатури. У протоколі CommerceML це реалізується через тип обміну «Пропозиції» (offers.xml) — в ньому лише ціни та залишки без повної картки товару.
Структура файлу пропозицій:
<КоммерческаяИнформация ВерсияСхемы="2.08"> <ПакетПредложений> <Предложения> <Предложение> <Ид>товар-guid#характеристика-guid</Ид> <Цены> <Цена> <ИдТипаЦены>розничная-guid</ИдТипаЦены> <ЦенаЗаЕдиницу>1250.00</ЦенаЗаЕдиницу> <Валюта>RUB</Валюта> </Цена> </Цены> </Предложение> </Предложения> </ПакетПредложений> </КоммерческаяИнформация> Бітрікс при отриманні цього файлу оновлює тільки ціни — не чіпає тексти, зображення, властивості. Операція швидка навіть для великих каталогів.
Порівняння підходів: повний обмін vs. окремий XML для цін
| Параметр | Повний обмін | Окремий XML для цін |
|---|---|---|
| Час обробки (50 000 товарів) | Години | 2-5 хвилин |
| Навантаження на сервер | Висока | Низька |
| Можливість частого оновлення | Раз на добу | Кожні 15-30 хвилин |
| Ризик блокування БД | Високий | Мінімальний |
Сегментовані ціни за контрагентами
В УТ 11 є механізм сегментів контрагентів та персональних цін. Один клієнт може мати індивідуальну ціну, відмінну від прайс-листа. На сайті це реалізується через особистий кабінет: авторизований користувач бачить «свою» ціну.
Технічно: при вивантаженні з УТ формується кілька видів цін — базова плюс per-segment. Для кожного сегмента на стороні Бітрікс — окремий тип ціни, прив'язаний до групи користувачів. Користувач із сегмента «VIP» входить до групи «VIP» Бітрікс, групі присвоєно тип ціни «VIP» — і він автоматично бачить правильні ціни.
Синхронізація сегментів (який користувач у якому сегменті) — окрема задача. Або через обмін контрагентами (контрагент в УТ потрапляє у відповідну групу Бітрікс), або через Бітрікс24 CRM з мапінгом угод.
Акційні ціни з датами дії
В УТ акційні ціни мають дати початку та закінчення. CommerceML 2.08 підтримує передачу дат дії ціни:
<Цена> <ИдТипаЦены>акционная-guid</ИдТипаЦены> <ЦенаЗаЕдиницу>990.00</ЦенаЗаЕдиницу> <НачалоДействия>2025-01-01T00:00:00</НачалоДействия> <ОкончаниеДействия>2025-01-31T23:59:59</ОкончаниеДействия> </Цена> Бітрікс при імпорті зберігає дати в b_catalog_price. Компонент каталогу автоматично показує акційну ціну тільки в період дії. Для роботи цього механізму в Бітрікс має бути налаштована служба bitrix:catalog.price.expire — агент, який скидає прострочені ціни.
Кейс: інтернет-магазин будматеріалів з акціями
Один з наших клієнтів — магазин будівельних матеріалів з каталогом 25 000 позицій. Щотижневі акції на групи товарів (знижки до 30%). Акції планувалися в УТ, але менеджер вручну правив ціни в Бітрікс перед кожною акцією (40-60 позицій). Часто забував скинути ціну після закінчення.
Ми налаштували окремий XML-файл для цін з передачею дат дії акцій. Інтервал обміну — 30 хвилин. Акція починається та закінчується автоматично, менеджеру достатньо створити акційний прайс в УТ. Додатково налаштували передачу «старої ціни» через вид ціни «РекомендованаРоздрібна» — на сайті відображається закреслена ціна як COMPARE_PRICE. Економія часу менеджера склала 80%.
Типові помилки при налаштуванні обміну цінами
- Неспівпадіння GUID видів цін в УТ та типів цін в Бітрікс. - Відсутність прав на запис для типів цін у користувача-агента. - Неправильна періодичність агентів імпорту (занадто часто -> навантаження, рідко -> застарілі ціни). - Ігнорування прапорця «Оновлювати тільки ціни» в налаштуваннях імпорту.Процес роботи та що входить
- Аналіз — вивчаємо конфігурацію 1С:УТ, схему обміну, поточні налаштування Бітрікс.
- Проектування — визначаємо види цін, мапінг, періодичність, формат XML.
- Реалізація — налаштовуємо вивантаження з УТ, створюємо типи цін в Бітрікс, пишемо агенти імпорту.
- Тестування — перевіряємо коректність цін для всіх сценаріїв (сегменти, акції, перекриття).
- Деплой — запускаємо в продакшен, навчаємо менеджерів роботі з акціями в УТ.
У результат входить:
- робоча схема обміну з окремим XML для цін;
- налаштований мапінг усіх видів цін;
- агенти оновлення з потрібною періодичністю;
- звіт про тестування та регламент для менеджерів.
Терміни виконання — від 3 до 7 робочих днів залежно від складності. Оцінимо ваш проект безкоштовно — зв'яжіться з нами, щоб отримати консультацію. Гарантуємо коректну роботу обміну навіть при високому навантаженні — понад 150 впроваджених інтеграцій підтверджують надійність підходу.







