Top.Mail.Ru
Архитектура2026-01-2812 минРедакция Opslane

Интеграция 1С ↔ Bitrix24 без боли: типовые ошибки и мониторинг

Как спроектировать обмен так, чтобы статусы, контрагенты и оплаты не расходились, а ошибки находились по журналу, а не по звонку клиента.

ПРОЦЕССДАННЫЕКОНТРОЛЬOPS

Интеграция ломается редко в момент демонстрации. Она ломается позже: повторная отправка создаёт дубль, в одной системе меняется реквизит, API временно недоступен, пользователь отменяет заказ после частичной оплаты. Поэтому проектировать нужно не только «счастливый путь».

После чтения
  • Определить источник истины по каждой сущности
  • Проектировать повторяемость и антидубли
  • Добавить журнал, retry и алерты до запуска
01

Сначала карта сущностей

Опишите не методы API, а бизнес‑объекты: компания, контакт, товар, заказ, счёт, оплата, отгрузка. Для каждого укажите, где он создаётся и какая система имеет право менять ключевые поля.

СущностьИсточник истиныЧто передаём в другую систему
КонтрагентОпределяется процессомID, реквизиты, контактные данные
Товар/ценаОбычно учётная системаНоменклатура, цена, остаток при необходимости
Сделка/лидОбычно CRMКлиент, состав, стадия продаж
ОплатаУчётная системаСумма, дата, статус
02

Один внешний ID лучше поиска «по названию»

После первой синхронизации сохраняйте устойчивую связь объектов между системами. Названия, телефоны и реквизиты могут меняться; внешний идентификатор должен оставаться связующим ключом. Поиск по названию годится только как часть первичного сопоставления.

03

Повторная отправка не должна создавать дубль

Любая интеграция должна безопасно переживать повтор. Сеть может оборваться после того, как принимающая сторона уже сохранила объект, но отправитель не получил ответ. Если повторный запрос создаёт вторую сущность, рано или поздно база загрязнится.

Opslane / заметка

Практическое правило: каждый обмен должен иметь idempotency‑логику — повтор одного события приводит к тому же состоянию, а не к новому объекту.

04

Очередь и retry вместо «попробовали — не получилось»

Временная ошибка 1С, API или сети — нормальная ситуация. Событие нужно поставить в очередь, повторить по политике retry и только после нескольких неудач переводить в ручной разбор.

  • Фиксируем время, тип события и ID объекта
  • Храним статус попытки и текст ошибки
  • Повторяем автоматически с увеличением интервала
  • Даём оператору кнопку безопасного повтора
05

Тестируйте не только создание заказа

Перед запуском соберите матрицу сценариев. Обязательные случаи — изменение реквизитов, отмена, частичная оплата, повторная отправка, недоступность одной системы, неизвестный товар, дубль клиента.

  • Создание и обновление
  • Отмена и возврат
  • Частичная/полная оплата
  • Несколько заказов одного клиента
  • Ошибка связи и восстановление
  • Ручное изменение в обеих системах
06

Мониторинг: что смотреть после запуска

Здоровая интеграция имеет технический журнал и бизнес‑контроль. Технический показывает ошибки обмена, бизнес‑контроль — расхождения, которые важны пользователю: заказ в CRM оплачен, а статус не обновился.

КонтрольСигналДействие
ОчередьСобытие долго не обработаноАлерт + retry
ОшибкиРост одинаковой ошибкиРазбор причины/релиз
СверкаКоличество/сумма не сходятсяОтчёт расхождений
LatencyОбмен стал медленнее нормыПроверка нагрузки/API
Чек‑лист

Перед тем как закрыть задачу

  1. Есть карта сущностей и источник истины
  2. Есть устойчивые внешние ID
  3. Повторы не создают дубли
  4. Есть очередь и повторная отправка
  5. Есть журнал ошибок и алерты
  6. Есть тест‑матрица исключений
Вывод

Интеграция считается законченной не когда данные один раз успешно передались, а когда команда понимает, как увидеть ошибку, повторить обмен и доказать, что системы снова согласованы.

Нужен не совет, а план?

Разберём текущую систему и соберём приоритеты на ближайший спринт.