Уявіть: 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.







