Интеграция 1С:УТ 10.3 с Bitrix24 CRM (OAuth2 + REST)

1С — мастер-система: сделки, контакты, товары и воронка синхронизируются с Bitrix24 по OAuth2 и REST

Заказчик: Торговая компания (двери), учёт в 1С:УТ 10.3
Стек: 1С:Предприятие 8 (УТ 10.3), REST Bitrix24, OAuth 2.0 (oauth.bitrix.info), общие модули на BSL, регистры маппинга и настроек, подписки на события, регламентный обмен

Задача

У торговой компании отдел продаж работает в Bitrix24, а учёт, склад и товары — в 1С:Управление торговлей 10.3. Менеджеры вели сделки и контакты в CRM, а те же данные заново заносили в 1С — двойной ввод, расхождения, устаревшие остатки и цены в карточках CRM. Нужна была интеграция, где 1С остаётся мастер-системой, а Bitrix24 всегда видит актуальные данные.

Результат

Сделки, лиды, контакты, товары с разделами и статусы синхронизируются между 1С и Bitrix24; ведущая система — 1С. Изменения выгружаются событийно: при записи объекта подписка регистрирует изменение, регламентный обмен отправляет его в CRM. Авторизация — OAuth 2.0 с автообновлением токена. Менеджеры перестали дублировать ввод, а данные в CRM перестали расходиться с учётом.

Это кейс про интеграцию 1С:УТ 10.3 с Bitrix24 CRM. Клиент — торговая компания (двери): отдел продаж живёт в Bitrix24, а учёт, склад и товары — в 1С:Управление торговлей 10.3. До интеграции менеджеры вели сделку в CRM, а потом те же контакты и заказы заново заносили в 1С. Двойной ввод, расхождения, устаревшие цены и остатки в карточках CRM. Задача — сделать 1С мастер-системой, а Bitrix24 держать в актуальном состоянии автоматически.

Что синхронизируется

Обмен охватывает основные сущности CRM: сделки, лиды, контакты, товары и разделы товаров, статусы и стадии воронки. Ведущая система — 1С: цены, номенклатура и движение заказов приходят из учёта, а CRM получает актуальные данные и не расходится со складом.

Авторизация: OAuth 2.0 с обновлением токена

Подключение к Bitrix24 — по OAuth 2.0 через oauth.bitrix.info. 1С получает access_token и refresh_token, хранит их в регистре настроек и сам обновляет токен, когда тот истекает, — обмен не падает из-за протухшей авторизации. Поверх этого — единый REST-клиент, через который идут все вызовы методов Bitrix24:

Функция SendRequest(RESTRequest, Data = "") Экспорт
    ConnectionSetting = ПолучитьНастройкиПодключения();
    Result = SendRESTRequest(ConnectionSetting, RESTRequest, Data); // rest/crm.deal.update ...
    Если Result.error Тогда
        Возврат ОбработатьОшибкуBitrix24("SendRequest", Result.error_description);
    КонецЕсли;
    Возврат Result;
КонецФункции

Событийная выгрузка вместо выгрузки «всего подряд»

Гонять всю базу в CRM по расписанию — дорого и медленно. Поэтому обмен построен на регистрации изменений: подписка на событие OnWrite ловит запись объекта и помечает его к выгрузке, а регламентный обмен отправляет в Bitrix24 только изменённое.

// Подписка ns_Воронка: OnWrite -> ns_Bitrix24Exchange.ns_ВоронкаПриЗаписи
Процедура ОбменБитрикс24ЗарегистрироватьИзменение(Источник, Отказ) Экспорт
    // фиксируем изменение объекта в регистре очереди обмена
КонецПроцедуры
// затем регламентное задание: ОбменБитрикс24() — отправляет накопленные изменения

Для сделок обмен двусторонний: SendToCRM() и UpdateChangedsFromDB() выгружают из 1С, а GetChangedFromCRM() забирает правки, сделанные в Bitrix24. Соответствие объектов 1С и записей CRM хранится в регистрах маппинга — так повторная выгрузка обновляет ту же сущность, а не плодит дубли.

Стадии воронки

Отдельная логика — воронка продаж: при изменении документа в 1С определяется стадия сделки и уходит в Bitrix24, чтобы менеджер видел движение заказа по этапам прямо в CRM. Это то, ради чего интеграцию и делали: продажи и учёт перестали быть двумя разными картинами мира.

Общий разбор авторизации 1С в Bitrix24 по OAuth2 — в статье про интеграцию 1С с Bitrix24 через OAuth2; похожая задача с другой CRM — 1С и amoCRM по OAuth2.

Нужна интеграция 1С с Bitrix24 под ваши процессы

Если у вас продажи в Bitrix24, а учёт в 1С, и данные приходится дублировать вручную — это автоматизируется под ваш обмен: какие сущности ведущие, что синхронизировать, как обрабатывать воронку. Разбор интеграции 1С и Bitrix24 — на нашем курсе по Bitrix24 и 1С.

Частые вопросы

Нужен похожий проект?

Опишите задачу — оценю сроки и стоимость.