В 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 рабочих дней) и поддержку после запуска.







