← Назад к заметкам

Заметки

Синхронизация Б24 и 1С в реальном времени: что реально уходит

Синхронизация Б24 и 1С в реальном времени: что реально уходит: События UI vs код/БП, пересохранение.

Синхронизация Б24 и 1С в реальном времени: что реально уходит. Основной фокус: События UI vs код/БП, пересохранение.

Задача

Разобрать товары, складской учёт, цены, резервы или обмен с 1С.

Задача — синхронизация Б24 и 1С в реальном времени: что реально уходит. События UI vs код/БП, пересохранение.

Главное — не искать один универсальный метод, а сначала определить сущность, права и слой API, через который выполняется действие.

Как это устроено

В CRM товарная строка, товар каталога, оффер, цена, резерв и складской документ — разные уровни. Изменение строки сделки не всегда автоматически создаёт корректный складской результат.

Обмен с 1С часто реагирует на события изменения, а не только на наличие записи в базе. Поэтому элемент, созданный кодом или БП, может не попасть в обмен без штатного пересохранения.

Если сценарий проверяется под администратором, отдельно повторите его под обычным пользователем. Для прав, CRM, задач, Диска и приложений это часто даёт другой результат.

Рабочий подход

Сначала прочитайте текущие товарные строки и складские данные, затем меняйте полный набор значений через штатный API. Для обмена с 1С проверяйте не только факт создания элемента, но и событие изменения, которое ловит обмен.

Сделайте минимальный тест на одной сущности, сохраните входные данные и ответ метода, а затем расширяйте решение на массовый сценарий.

На коробке удобнее добавлять временное логирование рядом с местом выполнения кода, а в облаке — сохранять входящие и исходящие REST-запросы в свой журнал интеграции.

Частые ошибки

Опасно перезаписывать товарные строки без предварительного чтения. Можно потерять скидки, налоги, резервы, связи со складом и историю изменений.

  • Проверять сценарий только под администратором и не видеть проблему прав обычного пользователя.
  • Смешивать ID разных сущностей: задачу, файл Диска, CRM-дело, товарную строку или пользователя.
  • Не логировать фактический запрос и ответ, из-за чего ошибка выглядит случайной.