Нагрузочное тестирование обмена УТ↔БП: почему мок не ловит конфликты | infolimp.ru

Нагрузочное тестирование обмена УТ↔БП: почему мок не ловит конфликты

15 мая 2026 · infolimp.ru

Автор: 1С Инсайдер · роль: практик 1С · проверка: типовые конфигурации и рабочие сценарии · 0 комментариев

В небольшой компании УТ и БП спокойно жили через ночной обмен: документы переезжали в одну сторону, никто не страдал. Команда выросла — теперь в УТ параллельно работают пять менеджеров, в БП три бухгалтера, и обмен раз в день уже не справляется. Включили онлайн-обмен — пошли конфликты, какие-то документы «исчезают», какие-то меняются дважды. Стенд с моками этого не показывает: моки эмулируют ответ, но не задержку и не одновременную запись с двух сторон. Разбираем, как протестировать обмен между двумя реальными базами так, чтобы поймать узкие места до пика.

Зачем тестировать обмен «вживую», а не моком

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

Что такое «связанные базы» в типовом 1С

Самый частый сценарий: УТ + БП, либо ERP + БП, либо два экземпляра одной конфигурации (например, две БП — головная и филиал). Внутри это организовано через планы обмена платформы. Каждый план описывает, между какими узлами идёт обмен, какие объекты передаются, и хранит очередь изменений на каждый узел.

// Простая диагностика: какие планы обмена есть в конфигурации
Для Каждого МДПланаОбмена Из Метаданные.ПланыОбмена Цикл
    Сообщить("План обмена: " + МДПланаОбмена.Имя
        + " (синоним: " + МДПланаОбмена.Синоним + ")");
КонецЦикла;

Если в конфигурации обмена настроен, в этом списке вы увидите имена планов. Точные названия зависят от вашей конфигурации и от того, какие подсистемы обмена включены.

Что обычно идёт не так под нагрузкой

СимптомКорень проблемыЧто проверить замером
Документ «пропал» после переноса Конфликт версий между базами, одна сторона перезаписала другую Конкурентное изменение одной сущности с двух сторон в одну минуту
Обмен идёт всё медленнее день за днём Очередь регистраций изменений растёт быстрее, чем выгребается Размер таблицы регистрации изменений по плану обмена
Изменения «прилетают» через 10 минут вместо мгновенно Регламентное задание обмена работает реже, чем требует профиль нагрузки Интервал регламентного задания + время одного прохода обмена
На приёмной базе блокировки Обмен и оперативная работа борются за одни и те же таблицы События технологического журнала по блокировкам в окне обмена

Как организовать тест двух баз

Подготовка стенда

Поднимите две копии продуктива на отдельном сервере (или паре серверов) — обе на железе, сопоставимом с боевым. Это критично: если тест идёт на двух одинаковых ноутбуках, а в продуктиве две машины по 64 ГБ — результаты не имеют смысла.

Сценарии

Минимум четыре класса сценариев, проходящих одновременно на обеих базах:

  1. Создание новых сущностей на стороне А (контрагенты, документы реализации).
  2. Изменение существующих сущностей на стороне Б (исправление реквизитов, перепроведение документов).
  3. Параллельные изменения одного и того же объекта с обеих сторон (классический случай конфликта).
  4. Массовая загрузка справочников с одной стороны, обычная работа с другой.

Что мерить

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

Чек-лист подготовки

  1. Выделить две машины под стенд, сопоставимые с боевыми. Не ноутбуки.
  2. Сделать копии обеих продуктивных баз. Обезличить чувствительные данные.
  3. Зафиксировать настройки обмена (интервалы регламентных заданий, размер пакетов) такими же, как в проде.
  4. Подготовить три-пять параллельных сценариев, в которых обе стороны активно изменяют пересекающиеся данные.
  5. Зафиксировать стартовые показатели: размер очереди, время одного цикла обмена в спокойном режиме.
  6. Запустить параллельные сценарии. Дать им поработать не менее одного полного цикла обмена туда-обратно.
  7. Снять метрики после теста, сравнить со стартовыми. Зафиксировать конфликты, их количество и решения.
  8. Для каждого узкого места — план: ускорить обмен (чаще регламент), сократить пакеты, изменить логику разрешения конфликтов, пересмотреть состав плана обмена, перейти на событийную регистрацию или разделить потоки по справочникам/документам.

Типичные ошибки

Профессиональные решения для 1С и marketplace-интеграций — каталог отчётов и инструментов на витрине НОПи.

Перейти в каталог решений →