Настройка обмена контактов Битрикс24 и 1С
Контакты в Битрикс24 CRM и контрагенты/физлица в 1С — одна и та же клиентская база, разделённая между двумя системами. Обмен устраняет дублирование: новый клиент заводится в одной системе и автоматически появляется в другой.
Что синхронизируется
Контакты (физлица): Битрикс24 crm.contact ↔ 1С «Физическое лицо» или «Контрагент-физлицо».
Компании: Битрикс24 crm.company ↔ 1С «Контрагент-организация».
Поля для маппинга:
| Битрикс24 | 1С | Ключ сопоставления |
|---|---|---|
| NAME, LAST_NAME | Имя, Фамилия | Email или телефон |
| PHONE | Телефон | — |
| Электронная почта | Основной ключ | |
| UF_CRM_INN | ИНН | Для юрлиц |
| COMPANY_ID | Контрагент | — |
| ASSIGNED_BY_ID | Ответственный менеджер | — |
Направление синхронизации
Вариант 1: Битрикс24 как основная система. Менеджеры работают в Битрикс24. При создании контакта — он попадает в 1С для учётных операций.
Вариант 2: 1С как основная система. Клиентская база ведётся в 1С (бухгалтерия, договоры). В Битрикс24 попадает для работы менеджеров.
Вариант 3: двусторонняя. Оба направления, с определёнными правилами приоритета.
Реализация: Битрикс24 → 1С
При создании контакта в Битрикс24 срабатывает вебхук (исходящий). Битрикс24 отправляет POST на зарегистрированный URL с данными события.
Обработчик вебхука (PHP-скрипт):
- Получает
data[FIELDS][ID]— ID контакта - Вызывает
crm.contact.getдля получения полных данных - Отправляет HTTP-запрос к HTTP-сервису 1С с JSON данными контакта
- 1С создаёт контрагента, возвращает ID
- Обработчик записывает ID 1С в пользовательское поле контакта Битрикс24
UF_CRM_1C_CONTACT_IDчерезcrm.contact.update
Реализация: 1С → Битрикс24
В 1С создаётся обработка (подписка на событие ПриЗаписиКонтрагента). При сохранении нового или изменённого контрагента:
// Псевдокод 1С
Запрос = Новый HTTPЗапрос;
Запрос.УстановитьТелоИзСтроки(ДанныеJSON);
Соединение = Новый HTTPСоединение("portal.bitrix24.ru");
Ответ = Соединение.ОтправитьДляОбработки(Запрос, "/rest/.../crm.contact.add");
Ответ содержит ID нового контакта в Битрикс24 — сохраняем его в реквизит контрагента 1С для дальнейшей идентификации.
Дедупликация
Главная проблема двустороннего обмена — дубли. Один клиент может быть создан в обеих системах независимо. Алгоритм предотвращения:
- При получении нового контакта проверяем, есть ли запись с таким email/телефоном в другой системе.
- Если есть — обновляем существующую, не создаём новую.
- Если нет — создаём и записываем взаимные ID.
Для поиска в Битрикс24: crm.duplicate.findbycomm — метод поиска дублей по телефону и email.
Пакетная первичная синхронизация
При первом запуске интеграции нужно синхронизировать существующие базы. Порядок:
- Выгружаем все контакты из Битрикс24 через
crm.contact.list(пагинация по 50 записей). - Для каждого ищем совпадение в 1С по email.
- Совпавшие — обновляем взаимные ID, не дублируем.
- Несовпавшие — создаём в 1С.
- Контакты, которые есть в 1С, но нет в Битрикс24 — создаём в Битрикс24.
Это разовая операция, которая выполняется один раз перед запуском двустороннего обмена.
Частые сложности
-
Разные форматы телефонов. Битрикс24 хранит телефоны в формате
+7 (XXX) XXX-XX-XX, 1С — в свободном формате. Нормализуем перед сравнением. - Несколько телефонов у одного контакта. В Битрикс24 это множественное поле, в 1С может быть одно поле. Берём первый телефон как основной.
- Ответственный менеджер. Пользователи Битрикс24 и пользователи 1С — разные сущности. Нужна таблица маппинга.







