Как вручную изменить номер сообщения при обмене РИБ в 1С?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с распределенными информационными базами (РИБ) периодически возникает ситуация, когда номера отправленных и принятых сообщений между центральной и подчинённой базами рассинхронизируются. К примеру, подчинённая база пыталась выгрузить пакет с номером 20, в то время как главная база уже ожидает пакет с номером 700. В результате обмен останавливается, и система выдает ошибку о несоответствии номеров сообщений.

Рассмотрим причины возникновения этой проблемы и разберем проверенные способы ручной корректировки номеров сообщений обмена в платформах «1С:Предприятие».

Правило согласования номеров сообщений

Перед корректировкой важно четко понимать правило, по которому платформа определяет корректность входящего пакета:

  1. На узле-источнике: значение реквизита Номер отправленного должно быть равно Номер принятого в базе-приемнике + 1.
  2. На узле-приемнике: значение реквизита Номер принятого устанавливается равным значению Номер отправленного в базе-источнике.

Если эти значения разрываются (например, из-за восстановления подчинённой базы из старого резервного копирования или сетевого сбоя), требуется вручную выровнять номера.

Способ 1. Изменение номеров через настройки синхронизации

В типовых конфигурациях (таких как «1С:Розница», «1С:Управление торговлей» и др.) номера сообщений можно отредактировать непосредственно в пользовательском режиме. Разберем по шагам, где находятся нужные элементы:

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

Способ 2. Использование обработки «Регистрация изменений для обмена данными»

Проанализируем работу со стандартными инструментами Библиотеки Стандартных Подсистем (БСП) и сервиса ИТС. Для корректировки номеров прекрасно подходит внешняя или встроенная обработка регистраций изменений:

  1. Откроем обработку Регистрация изменений для обмена данными.
  2. Выберем нужный узел плана обмена.
  3. Найдем команду Изменить номера сообщений (или вызовем редактирование узла через контекстное меню).
  4. В открывшемся окне зададим корректный номер отправленного сообщения и зафиксируем результат.

Способ 3. Программный способ (через встроенный язык 1С)

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


УзелОбъект = СсылкаНаУзел.ПолучитьОбъект();
УзелОбъект.НомерОтправленного = НужныйНомерОтправленного;
УзелОбъект.НомерПринятого = НужныйНомерПринятого;
УзелОбъект.Записать();

В данном коде переменная СсылкаНаУзел содержит ссылку на конкретный элемент Плана Обмена, а свойствам НомерОтправленного и НомерПринятого присваиваются необходимые числовые значения.

Способ 4. Групповое изменение реквизитов

Выясним, как изменить номера через универсальную обработку администрирования:

  1. Перейдем в меню Администрирование — Обслуживание — Корректировка данных — Групповое изменение реквизитов.
  2. В качестве объекта редактирования выберем необходимый План обмена.
  3. В списке элементов найдем нужный узел.
  4. Изменим значение реквизитов Номер отправленного сообщения и Номер принятого сообщения на актуальные и выполним запись.

Важные риски и ограничения

При ручном редактировании номеров сообщений необходимо соблюдать меры предосторожности:

  1. Риск пропуска данных: Если искусственно увеличить Номер отправленного, платформа посчитает, что все предыдущие файлы обмена были успешно доставлены. Данные из пропущенных пакетов не попадут в базу-приемник автоматически.
  2. Задвоение и перезапись: Если искусственно уменьшить номера, приемник может повторно обработать старый пакет, что приведет к перезаписи новых данных более старыми.
  3. Блокировка базы: Для успешной записи объекта плана обмена необходимо временно отключить фоновые и регламентные задания обмена данными, а также завершить сеансы пользователей, совершающих синхронизацию.
← На главную