Рассмотрим ситуацию, с которой часто сталкиваются администраторы и программисты 1С: после восстановления одной из информационных баз (например, 1С:Бухгалтерии) из архивной копии, обмен данными с другой базой (например, 1С:Управление торговлей) перестает работать. При попытке обмена возникает ошибка: «Сообщение обмена было принято ранее». Для своевременного обнаружения подобных сбоев подойдёт инструмент для мониторинга синхронизаций данных между базами 1С.
Разберем, почему это происходит и как исправить эту проблему, чтобы вернуть синхронизацию в рабочее состояние.
Механизм обмена данными в 1С основан на использовании последовательных номеров сообщений. Каждая сторона обмена (узел) хранит два ключевых параметра: НомерОтправленногоСообщения и НомерПринятогоСообщения. Когда вы откатываете базу к состоянию «прошлого времени», счетчики внутри неё также сбрасываются.
В результате, вторая база пытается отправить пакет с номером, который в текущей (откаченной) базе уже «якобы» был принят ранее, либо, наоборот, ожидает номер, который уже был обработан до восстановления копии. Система безопасности 1С блокирует обмен для предотвращения дублирования данных или пропуска документов.
Чтобы решить эту проблему, нам необходимо вручную привести номера сообщений в соответствие в настройках синхронизации. Выполним следующие действия по шагам:
НомерОтправленногоСообщения и НомерПринятогоСообщения.Проанализируем текущую ситуацию. Предположим, в системе мы видим следующую картину:
В УТ: НомерОтправленного = 34, НомерПринятого = 26.
В БП: НомерОтправленного = 25, НомерПринятого = 34.
Причина конфликта очевидна: произошел сдвиг. Нам нужно привести значения в соответствие так, чтобы НомерПринятого в одной базе совпадал с НомерОтправленного в другой.
Рассмотрим, как правильно скорректировать значения:
НомерОтправленного в той базе, которая отстает, на единицу.При правке номеров сообщений соблюдайте осторожность. Помните, что ручное вмешательство в работу планов обмена — это крайняя мера. Если разрыв в номерах составляет тысячи сообщений, простого изменения цифр может быть недостаточно.
Если после корректировки ошибка повторяется, можно попробовать следующие методы:
Консоль регистрации изменений, которая позволяет просматривать очередь объектов для выгрузки.Если ситуация критическая и ничего не помогает, возможно, потребуется перенастройка обмена через создание нового узла. Однако в 90% случаев описанный выше метод с правкой номеров в настройках состава отправляемых данных полностью решает проблему «Сообщение обмена было принято ранее».