У B2B-секторі кожен клієнт працює за індивідуальним договором: свої ціни, знижки, кредитний ліміт, термін оплати. Без синхронізації цих договорів з 1С у Бітрікс сайт не здатен коректно відобразити умови — клієнт бачить загальні ціни, менеджери вручну правлять замовлення, помилки ціноутворення сягають 30% на місяць. Ручне звірення договорів забирає до 20 годин на місяць у кожного менеджера, а кожна помилка в ціні — пряма втрата прибутку. Впровадження автоматизації окупається в перші 3 місяці за рахунок зниження штрафних санкцій і бухгалтерських помилок.
Стандартний CommerceML обмін не передає договори контрагентів — це обмеження платформи. Ми розробили розширення, яке через HTTP-сервіс 1С або файловий обмін передає повний набір реквізитів договору: GUID, номер, вид ціни, дати дії, кредитний ліміт та статус. За 5 років ми реалізували понад 20 таких інтеграцій для дистриб'юторів, виробників і оптових мереж.
Роль договору в 1С
В УТ, КА та ERP договір контрагента (ДоговорыКонтрагентов) — ключовий об'єкт ціноутворення. З договором пов'язані:
- вид ціни — який прайс застосовується до цього клієнта;
- знижки — персональні знижки або знижки за договором;
- валюта розрахунків;
- кредитний ліміт та термін кредиту;
- умови оплати (передоплата, постоплата, днів відстрочки).
Якщо в 1С у клієнта три діючих договори (наприклад, роздрібний, оптовий та спеціальний), на сайті він повинен бачити ціни за потрібним договором і мати можливість вибрати договір при оформленні замовлення.
Передача договорів: архітектура
Стандартний CommerceML не передає договори. Потрібна кастомна синхронізація через HTTP-сервіс 1С або через файловий обмін. HTTP-сервіс обробляє запити в 3 рази швидше файлового обміну і підходить для каталогів із частими змінами.
Мінімальний набір даних договору для сайту:
{ "guid": "a1b2c3d4-1234-...", "number": "Д-0015", "name": "Договір поставки №15 від дати", "contractor_guid": "контрагент-guid", "price_type_guid": "вид-ціни-guid", "price_type_name": "Оптова", "credit_limit": 500000, "payment_delay_days": 14, "currency": "RUB", "valid_from": "2025-03-01", "valid_to": "2026-03-01", "is_active": true } У Бітрікс договори зберігаються в HighloadBlock ContractorContracts. При відкритті каталогу — визначається активний договір користувача, до нього прив'язується тип ціни в торговому каталозі.
Порівняння способів зберігання договорів у Бітрікс
| Критерій | HighloadBlock | Інфоблок |
|---|---|---|
| Швидкість роботи з сотнями тисяч записів | Швидко | Повільно |
| Підтримка сортування та фільтрації | Так | Так, але важче |
| Зв'язок з користувачами | Прямий (UF_USER) | Через властивість |
| Складність налаштування | Середня | Висока (властивості) |
Вибір залежить від обсягу договорів. Для каталогів із тисячами контрагентів HL-блок кращий.
Чому важливий маппінг договору на тип ціни?
Ключове завдання: користувач з певним договором повинен бачити ціни з пов'язаного виду цін. Реалізація:
- При авторизації користувача — визначаємо його договір(и) з HighloadBlock.
- Визначаємо тип ціни за договором (
price_type_guid→ ID типу ціни в Бітрікс). - Встановлюємо сесійну змінну або параметр користувача
CURRENT_PRICE_TYPE. - Компонент каталогу читає цю змінну і виводить ціни потрібного типу.
Якщо у користувача кілька договорів — надаємо вибір в особистому кабінеті: «Працювати за договором №...». Вибір зберігається в сесії.
Як часто синхронізувати договори?
Договори змінюються рідко — новий договір підписується раз на рік, умови переглядаються раз на квартал. Достатньо синхронізувати раз на годину або навіть раз на добу.
Але є критичний сценарій: договір розірвано або закінчився — клієнт не повинен продовжувати бачити оптові ціни. Для цього в логіку авторизації додаємо перевірку valid_to договору. Якщо дата закінчилася — переводимо користувача на базовий тип ціни.
Як договір впливає на замовлення в 1С?
При передачі замовлення з Бітрікс в 1С потрібно вказати договір, за яким виставляється замовлення. В XML замовлення:
<ЗначениеРеквизита> <Наименование>ДоговорId</Наименование> <Значение>a1b2c3d4-1234-...</Значение> </ЗначениеРеквизита> В УТ при створенні замовлення покупця договір береться з цього реквізиту. Без договору — замовлення створюється за замовчуванням (перший активний договір контрагента), що може призвести до невірного ціноутворення в документах 1С.
Кейс з нашої практики: дистриб'ютор з індивідуальними умовами
Дистриб'ютор медичного обладнання: 180 дилерів, у кожного — індивідуальний договір зі своєю ціною (знижка від 5% до 40% від роздробу). Всі ціни ведуться в УТ як окремі види цін на кожного дилера (18 видів цін).
Завдання на сайті: кожен дилер при вході бачить тільки свої ціни, ціни інших дилерів недоступні. Реалізація:
- синхронізація договорів з УТ у Бітрікс — раз на 2 години;
- при авторизації — визначається договір, з нього береться GUID виду ціни;
- GUID мапиться на тип ціни в Бітрікс (таблиця маппінгу в налаштуваннях);
- каталог показує ціни потрібного типу.
Результат: економія часу менеджерів на 40%, зниження помилок ціноутворення на 95%.
Додатково: у кожного дилера є «менеджер-куратор» в УТ. При створенні замовлення на сайті — в замовлення автоматично додається менеджер (з поля договору ОтветственныйМенеджер). Менеджер в УТ одразу бачить замовлення свого клієнта.
Термін дії та автоматичне продовження
Якщо договір закінчується — за 30 днів до закінчення відправляємо сповіщення відповідальному менеджеру в Бітрікс24 (через REST API). Регламентне завдання в Бітрікс перевіряє valid_to всіх договорів щодня.
// Агент перевірки терміну дії договорів function checkContractExpiry() { $soon = date('Y-m-d', strtotime('+30 days')); $contracts = getContractsExpiringBefore($soon); foreach ($contracts as $contract) { notifyManager($contract['manager_id'], $contract); } return 'checkContractExpiry()'; // агент перезапускається } Що входить в роботу
Оцінимо ваш проект і запропонуємо рішення під ключ. В послугу входить:
- аудит поточної схеми обліку договорів в 1С;
- розробка HTTP-сервісу або файлового обміну для передачі договорів;
- створення HighloadBlock
ContractorContractsі налаштування маппінгу; - реалізація вибору договору в особистому кабінеті та сесійної логіки;
- інтеграція з Бітрікс24 для сповіщень про закінчення;
- тестування та гарантія 1 місяць на доопрацювання.
Замовте аудит поточної схеми обліку — це безкоштовно. Зв'яжіться з нами — отримайте консультацію з інтеграції ваших 1С та Бітрікс.
Синхронізація: способи та терміни
| Спосіб | Частота | Підходить для |
|---|---|---|
| HTTP-сервіс 1С | Кожні 1–2 години | Середні та великі каталоги з частими змінами |
| Файловий обмін (CommerceML) | Раз на добу | Невеликі каталоги, стабільні договори |
| Ручний імпорт | За запитом | Разові інтеграції, тестування |
Вибір способу залежить від обсягу даних та вимог до актуальності. Ми рекомендуємо HTTP-сервіс для динамічних проектів з великою кількістю контрагентів.
Досвід 5+ років та понад 20 успішних інтеграцій у сфері 1С-Бітрікс. Гарантуємо коректну роботу синхронізації, дотримання термінів (від 10 робочих днів) та підтримку після запуску.







