Налаштування обміну контактів Бітрикс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С у користувацьке поле контакту Бітрикса
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С — різні сутності. Потрібна таблиця маппінгу.







