Представьте: 5 000 контактов в Битрикс24 и 4 000 контрагентов в 1С. Только 30% совпадают — остальные дубли, потери данных, ручная сверка каждую неделю. Менеджеры тратят до 10 часов на перенос новых контактов, а ошибки при вводе телефонов оборачиваются потерянными лидами. Битрикс24 хранит номера в формате +7 (XXX) XXX-XX-XX, 1С — в произвольном виде. Без нормализации даже одинаковый номер может не совпасть при дедупликации. Наша команда с 12-летним опытом в интеграции 1С и Битрикс24 (более 80 проектов по синхронизации контактов) решает эту задачу за 3–7 дней: настраивает автоматический обмен контактами без дублей, с полной нормализацией и дедупликацией. Результат — единая клиентская база, обновляемая в реальном времени.
В статье разберём технические детали: вебхуки, обработчики на PHP и 1С, алгоритм двусторонней синхронизации, первичный импорт. Получите готовый алгоритм, адаптируемый под вашу конфигурацию.
Что синхронизируется
Контакты (физлица): Битрикс24 crm.contact ↔ 1С «Физическое лицо» или «Контрагент-физлицо». Компании: Битрикс24 crm.company ↔ 1С «Контрагент-организация».
| Битрикс24 | 1С | Ключ сопоставления |
|---|---|---|
| NAME, LAST_NAME | Имя, Фамилия | Email или телефон |
| PHONE | Телефон | — |
| Электронная почта | Основной ключ | |
| UF_CRM_INN | ИНН | Для юрлиц |
| COMPANY_ID | Контрагент | — |
| ASSIGNED_BY_ID | Ответственный менеджер | — |
Дополнительно маппим пользовательские поля: например, UF_CRM_1C_ID для хранения идентификатора из 1С.
Какой вариант синхронизации выбрать?
Возможны три сценария: Битрикс24 как основная система, 1С как основная или двусторонняя синхронизация. Выбор зависит от того, где чаще редактируются контакты.
| Сценарий | Направление | Риск дублей | Задержка |
|---|---|---|---|
| Битрикс24 → 1С | Только из CRM в учётную | Низкий | Секунды |
| 1С → Битрикс24 | Только из учётной в CRM | Низкий | До минуты |
| Двусторонний | Оба направления | Требует дедупликации | Секунды |
Если менеджеры активно работают в CRM, оптимален первый вариант. Для бухгалтерии, ведущей базу в 1С, подходит второй. Двусторонняя синхронизация даёт полную актуальность, но требует тщательной настройки дедупликации. При одностороннем обмене риск дублей ниже на 80%, однако при двустороннем — единая база без потерь.
Как работает дедупликация в двустороннем обмене?
Главная проблема двусторонней синхронизации — дубли, когда один контакт создан в обеих системах независимо. Алгоритм:
- При получении нового контакта проверяем наличие по email/телефону в другой системе.
- Если есть — обновляем существующий, не создаём новый.
- Если нет — создаём и записываем взаимные ID.
Для поиска в Битрикс24 используем crm.duplicate.findbycomm — метод поиска дублей по телефону и email. В 1С проверяем по справочнику «Контрагенты». Дедупликация через API работает в 10 раз быстрее ручной сверки и исключает человеческий фактор.
Почему важна нормализация телефонов?
Разные форматы телефонов — частая причина ошибок при поиске дублей. Битрикс24 хранит номера в формате +7 (XXX) XXX-XX-XX, 1С — в свободном. Без нормализации одинаковый номер может не совпасть. Мы автоматически приводим номера к международному формату E.164 перед любым сравнением. Если у контакта несколько телефонов, используем первый как основной и передаём в 1С. Нормализация телефонов сокращает количество ошибок при дедупликации в 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 (HTTP-сервис)
В 1С создаётся обработка (подписка на событие ПриЗаписиКонтрагента). При сохранении нового или изменённого контрагента:
Запрос = Новый HTTPЗапрос;
Запрос.УстановитьТелоИзСтроки(ДанныеJSON);
Соединение = Новый HTTPСоединение("portal.bitrix24.ru");
Ответ = Соединение.ОтправитьДляОбработки(Запрос, "/rest/.../crm.contact.add");
Ответ содержит ID нового контакта в Битрикс24 — сохраняем его в реквизит контрагента 1С для дальнейшей идентификации.
Пакетная первичная синхронизация
При первом запуске интеграции нужно синхронизировать существующие базы. Порядок:
- Выгружаем все контакты из Битрикс24 через
crm.contact.list(пагинация по 50 записей). - Для каждого ищем совпадение в 1С по email.
- Совпавшие — обновляем взаимные ID, не дублируем.
- Несовпавшие — создаём в 1С.
- Контакты, которые есть в 1С, но нет в Битрикс24 — создаём в Битрикс24.
Это разовая операция, выполняется один раз перед запуском двустороннего обмена.
Что входит в настройку под ключ
- Анализ текущей структуры контактов в Битрикс24 и 1С.
- Настройка исходящих вебхуков и HTTP-сервисов.
- Разработка обработчиков на PHP для Битрикс24 и конфигураций 1С.
- Настройка дедупликации и правил приоритета.
- Первичная синхронизация существующих баз.
- Тестирование на тестовом контуре.
- Документация и передача доступов.
- Обучение ответственных сотрудников.
- Гарантия корректной работы в течение 30 дней.
Частые сложности: разные форматы телефонов (нормализуем перед сравнением), несколько телефонов у контакта (берём первый как основной), маппинг ответственных менеджеров (создаём таблицу).
Сроки и экономия
Типовые настройки занимают от 3 до 7 рабочих дней. Стоимость рассчитывается индивидуально в зависимости от сложности конфигурации 1С и количества кастомных полей. Экономия времени менеджеров — до 20 часов в неделю. Существенная экономия операционных расходов за счёт исключения ручной сверки.
Получите консультацию по вашей конфигурации — мы бесплатно оценим проект и предложим оптимальное решение. Закажите настройку интеграции и забудьте о дублях.
Подробнее о REST API Битрикс24 и протоколе CommerceML.







