Как связать Битрикс24 с 1С и настроить двусторонний обмен
Содержание
Связать Битрикс24 и 1С можно тремя путями: поставить готовое приложение «1С + Битрикс24» из Маркета портала, настроить обмен товарами и заказами по протоколу CommerceML или написать свой обмен через REST API Битрикс24 и HTTP-сервисы 1С. Готовое приложение закрывает типовой сценарий «товары из 1С → каталог и сделки в Битрикс24, заказы и оплаты обратно в 1С», и в 90% случаев начинать стоит именно с него.
Выбор зависит от того, что именно нужно переносить и в какую сторону. Ниже — какой метод под какую задачу, что настроить на обеих сторонах, как выгрузить справочники, где читать журнал обмена при сбое и что делать, когда обмен тормозит на тысячах позиций.
Какой способ связи выбрать
Три рабочих варианта отличаются трудоёмкостью и гибкостью.
- 🔌 Штатное приложение «1С + Битрикс24». Ставится из Маркета прямо в облачный или коробочный портал, подключается к базе 1С. Двусторонний обмен товарами, контрагентами, сделками, счетами и статусами оплаты. Настройка — без программирования.
- 🛒 Обмен по CommerceML 2. Классический выгрузка-загрузка каталога и заказов через XML. Подходит, когда в 1С уже настроен «Обмен с сайтом» и нужно только добавить портал как точку обмена. Хорош для товаров и заказов, слабо подходит для воронки сделок.
- 🧩 REST API Битрикс24 + HTTP-сервисы 1С. Свой обмен через вебхуки и OAuth-приложение. Максимальная гибкость: любые поля, своя логика, обмен по событию. Требует разработчика 1С и понимания REST-методов портала.
Если у вас типовая конфигурация (УТ 11, УНФ, Комплексная автоматизация, ERP) и стандартный набор данных — берите штатное приложение. REST пишут тогда, когда готовое решение не умеет нужного: например, переносить произвольные поля карточки сделки.
Отдельный коннектор от стороннего разработчика — тоже вариант, но он почти всегда представляет собой обёртку над теми же REST API или CommerceML. Смысл платить за него есть, если нужен обмен «из коробки» с нестандартной конфигурацией.
Коротко, по какому признаку выбирать:
- нужен только каталог и остатки для интернет-магазина — хватит CommerceML;
- нужна воронка сделок, звонки и счета в CRM — штатное приложение;
- нужны произвольные поля карточки, обмен по событию, своя логика — REST API;
- доработанная или редкая конфигурация без типового обмена — сторонний коннектор.
Что синхронизируется между системами
До настройки полезно зафиксировать, какие объекты в какую сторону ходят. Это убережёт от дублей и зацикленного обмена.
| Объект | Направление | Комментарий |
|---|---|---|
| Номенклатура (товары, услуги) | 1С → Битрикс24 | Цены, остатки, картинки, свойства |
| Контрагенты и контакты | в обе стороны | Нужны правила разрешения конфликтов |
| Сделки / заказы | Битрикс24 → 1С | Заказ в CRM становится документом в 1С |
| Счета и статусы оплаты | в обе стороны | Оплата в 1С гасит счёт в портале |
| Статусы доставки/отгрузки | 1С → Битрикс24 | Чтобы менеджер видел стадию в CRM |
Главное правило: у каждого объекта должна быть одна система-владелец. Если и 1С, и Битрикс24 правят цену товара, рано или поздно обмен затрёт нужное значение. Обычно владелец номенклатуры и остатков — 1С, а владелец воронки и переписки — Битрикс24.
Что подготовить до настройки
Перед первым запуском соберите доступы и приведите справочники в порядок.
- Права в портале. Нужен администратор Битрикс24 — только он ставит приложения из Маркета и создаёт вебхуки.
- Пользователь 1С для обмена. Заведите отдельного пользователя с правами на синхронизацию, а не обменивайтесь под главным бухгалтером. Так проще отследить, кто внёс изменения.
- Адрес публикации 1С. Для онлайн-обмена база 1С должна быть опубликована на веб-сервере (Apache или IIS) и доступна по HTTPS. Файловая база на рабочем столе бухгалтера для постоянного обмена не годится.
- Чистые справочники. Уберите дубли контрагентов и номенклатуры в 1С — при первом обмене они размножатся и в портале.
Перед первым полным обменом снимите резервную копию базы 1С. Первичная загрузка создаёт сотни или тысячи объектов, и откатить её вручную тяжело. Копия позволит начать заново, если правила сопоставления окажутся неверными.
Настройка на стороне Битрикс24
Логика одинакова для облака и коробки, отличаются только адреса.
Для штатного приложения:
- Откройте
Маркетв левом меню портала, найдите приложение «1С + Битрикс24» (или «1С-Коннектор» в вашей редакции) и установите его. - В настройках приложения укажите адрес опубликованной базы 1С и учётные данные пользователя обмена.
- Задайте соответствие воронок и стадий: какому статусу заказа в 1С отвечает стадия сделки в CRM.
Если идёте через REST API, приложение из Маркета не нужно — нужен входящий вебхук:
- В разделе разработчика портала (
Разработчикам→ вебхуки) создайте входящий вебхук. - Отметьте права доступа
: как минимум CRM (
crm) и каталог (catalog), если переносите товары. - Скопируйте URL вебхука вида
https://ваш-портал.bitrix24.ru/rest/1/xxxxxxxx/— его вы пропишете в 1С.
Вебхук привязан к конкретному пользователю. Создавайте его под сервисным аккаунтом, а не под живым менеджером: уволится сотрудник — обмен встанет.
Настройка обмена в 1С
В типовых конфигурациях обмен с сайтами и порталами живёт в блоке интеграции. В УТ 11 и Комплексной автоматизации это раздел НСИ и администрирование, внутри — группа настроек интеграции с сайтом; в 1С:УНФ обмен с Битрикс24 вынесен в раздел CRM / настройки продаж. Точное название пункта зависит от релиза, поэтому ориентируйтесь на слова «обмен с сайтом», «интеграция» или «Битрикс».
Порядок действий для штатного обмена:
- Включите флаг обмена с сайтом (интеграции) в настройках конфигурации — без него узел обмена создать нельзя.
- Создайте узел обмена: укажите адрес портала и пользователя, под которым приложение подключается к 1С.
- Настройте правила выгрузки: какие виды номенклатуры, с какими ценами и остатками уходят в портал.
- Сопоставьте поля. Это ключевой шаг — именно здесь задаётся, какое поле Битрикс24 ложится в какой реквизит 1С.
Сопоставление удобно продумать заранее:
Для обмена через REST в 1С создают HTTP-сервис или регламентное задание, которое дёргает методы портала (crm.deal.list, crm.deal.add и аналогичные для товаров и контактов) по адресу вебхука. Это уже работа программиста: типовой конфигурацией такой обмен не настраивается галочками.
Первый запуск и расписание обмена
Не запускайте сразу автоматический обмен по всей базе.
- Сделайте пробный обмен на 5–10 позициях: ограничьте выгрузку одной группой номенклатуры и парой тестовых сделок.
- Проверьте в портале, что товары встали в нужный раздел каталога, а сделки — в правильную воронку.
- Убедитесь, что обратный заказ из Битрикс24 корректно создал документ в 1С и не задвоил контрагента.
- Только после этого снимайте ограничение и запускайте полный обмен.
Для постоянной работы обмен ставят на расписание через регламентное задание в 1С. Интервал подбирают по нагрузке: для розницы с живым потоком заказов — раз в 5–15 минут, для оптовой базы хватает раза в час. Слишком частый обмен на большой базе даёт лишнюю нагрузку, слишком редкий — менеджеры видят неактуальные остатки.
Регламентные задания выполняются только когда база запущена: в файловой базе — пока открыт сеанс, в клиент-серверной — пока работает сервер 1С. Для круглосуточного обмена нужна клиент-серверная база или постоянно поднятый фоновый сеанс.
Ошибки обмена: где смотреть и как чинить
При сбое первым делом открывают журнал регистрации 1С (Администрирование → Поддержка и обслуживание → журнал регистрации) и фильтруют по событиям обмена данными. Там видно, на каком объекте обмен упал и с какой формулировкой. На стороне портала статус последней синхронизации показывает само приложение в своих настройках.
Типовые проблемы и что с ними делать:
Если ошибка повторяется на одном и том же объекте — выгрузите этот объект отдельно и разберите вручную. Чаще всего причина в пустом обязательном поле или в символах, которые портал не принимает.
Обмен при больших объёмах данных
На каталоге в десятки тысяч позиций обмен «всё сразу» не работает — он упирается в таймауты и память.
- 📦 Делите выгрузку на пакеты. В настройках обмена задайте размер порции (например, по 500–1000 объектов за сеанс). Полная выгрузка пройдёт за несколько заходов регламентного задания, а не одним гигантским запросом.
- 🔄 Переходите на обмен изменениями. После первичной полной выгрузки обменивайтесь только тем, что поменялось с прошлого сеанса. Типовой механизм обмена это умеет — обмен по регистрации изменений, а не полная перевыгрузка каждый раз.
- 🗂 Выгружайте картинки отдельно. Изображения товаров — самая тяжёлая часть. Если каталог меняется часто, а картинки редко, разнесите их по разным заданиям.
- ⏱ Разводите обмен и пиковую нагрузку. Полную ночную синхронизацию ставьте на время, когда в базе нет пользователей, чтобы не конкурировать за блокировки.
Если регламентное задание обмена стабильно не укладывается в интервал, не сокращайте порцию до минимума вслепую — сначала посмотрите в журнале регистрации, какой этап занимает больше всего времени. Обычно это выгрузка картинок или пересчёт остатков, а не сам обмен данными.
Для REST-обмена при больших объёмах используйте пакетные методы портала (batch) — они позволяют отправить до нескольких десятков команд одним запросом вместо сотен отдельных, что резко снижает число обращений и время обмена. Учитывайте и лимиты портала на частоту запросов: при превышении Битрикс24 временно отклоняет обращения, поэтому между пачками закладывают небольшую паузу, а не шлют запросы сплошным потоком.
Ещё один приём для тяжёлого каталога — не гонять через обмен то, что меняется редко. Разовые справочники (единицы измерения, ставки НДС, виды цен) достаточно синхронизировать один раз и дальше исключить из регулярного обмена. Чем меньше объектов в каждом сеансе, тем быстрее и предсказуемее он проходит, и тем проще найти виновника при сбое.