Кейс | Restful сервис для обмена Битрикс24 и 1С

Что требовалось сделать
- Реализовать обмен между CRM системой Битрикс24 и 1С логистика
- Обеспечить двух стороннюю синхронизацию контактов и компаний
- Обеспечить сценарии при которых контакты и компании могут быть созданы или отредактированы как в Битрикс24 так и в 1С
если создаем компанию в 1с – она должна появится в битриксе, если менеджер добавил этой компании номер телефона в битриксе, он должен быть передан в 1С
если в 1с для компании добавили несколько реквизитов, их надо передать в битрикс
Что было сделано
- REST API Приложение обеспечивающее обмен между двумя системами
- Промежуточная база данных для хранения данных о клиентах и компаниях
- Учет клиента который совершал манипуляции с данными
- Под клиентом подразумевается система которая отправляет запросы в апи.
- Под учетом клиента подразумевается системный сценарий, записи даты последнего изменения элемента в базе, с указанием каким клиентом было внесено изменение, это нужно для синхронизации изменений.
- Интерактивная документация с функционалом тестирования запросов

Логика работы приложения
sequenceDiagram
participant Bitrix24
participant 1C
participant FastAPI
participant Database
Bitrix24->>FastAPI: HTTP Запрос
FastAPI->>FastAPI: Валидация Запроса
FastAPI<<->>Database: Взаимодействие с Базой Данных
FastAPI->>FastAPI: Подготовка Ответа
FastAPI-->>Bitrix24: HTTP Ответ
1C->>FastAPI: HTTP Запрос
FastAPI->>FastAPI: Валидация Запроса
FastAPI<<->>Database: Взаимодействие с Базой Данных
FastAPI->>FastAPI: Подготовка Ответа
FastAPI-->>1C: HTTP Ответ
Модель взаимодействия построена следующим образом:
- Есть два клиента
- Битрикс
- 1С
- Клиенты отправляют запросы на приложение
- Приложение узнает клиента по токену (у каждого свой)
- После получения и проверки запроса, приложение выполняет манипуляции с базой данных
- Промежуточная база пополняется данными асинхроно
Данная парадигма исключает взаимодействие битрикс и 1с напрямую, все взаимодействие между двумя системами (клиентами) случается через промежуточную базу, по запросу от разработчиков 1С был добавлен дополнительный метод позволяющий получить изменения сделанные конкретным клиентом, в определенный промежуток времени, чтобы 1С могла забирать только те контакты и компании которые были изменены или созданы с момента последнего запроса

Что в итоге получилось, какие боли вылечили
- Исключили рассинхрон в данных между системами (теперь карточки компаний и контрагентов выглядят одинаково во всех системах)
- Клиентская база пополняется в двух системах одновременно
- Исключили передачу клиентских данных по "голубиной почте" между сотрудниками
- Если у сотрудника, который работает в 1с но не работает в битриксе возникает потребность связаться с клиентом, ему больше не нужно изыскивать его контакты у отдела продаж, или просить что-то ему передать, контакты теперь в удобном для него месте.
- Повышено качество данных при работе с CRM
- как следствие открывается огромный пул возможностей для crm маркетинга
💡
- С какими версиями 1С может работать это решение?
- С любой версией, которая может отправлять http запросы
- Можно даже подключить несколько баз 1С, если бизнесовые сценарии того требуют.
С каким версиями Битрикс24 может работать это решение?
Облако, любой платный тариф, а также в Коробке.