Как повторно выгрузить документы в 1С после отката базы-приемника?

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

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

Почему документы за прошлый период не переносятся автоматически

Проанализируем механику работы планов обмена в платформе 1С:Предприятие. Обмен построен на механизме подтверждения получения (квитировании сообщений):

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

Если базу-приемник откатили назад во времени, в ней исчезают документы за восстановленный период. Однако для базы-источника эти документы остаются в статусе «доставленных», и их авторегистрация отсутствует. Поэтому новые сеансы обмена содержат только текущие изменения, игнорируя прошлые месяцы.

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

Рассмотрим штатный и наиболее удобный способ ручной регистрации объектов в конфигурациях на обычных формах (например, УТ 10.3).

Разберем порядок действий по шагам:

  1. Открываем в базе-источнике обработку Регистрация изменений для обмена (доступна через меню «Сервис» или список внешних обработок).
  2. В верхней части окна в поле Узел обмена выбираем узел, соответствующий нашей базе-приемнику. Табличная часть заполнится деревом метаданных, включенных в план обмена.
  3. В дереве объектов находим нужные типы документов (например, РеализацияТоваровУслуг, ПоступлениеТоваровУслуг, ПлатежноеПоручениеВходящее).
  4. Нажимаем кнопку добавления регистрации (кнопка со знаком «+» на командной панели).
  5. В открывшемся окне задаем период выборки (например, с 01.04 по 30.04) или формируем произвольный запрос для точечного отбора недостающих документов.
  6. Подтверждаем выбор. В колонке количества зарегистрированных изменений отобразится число добавленных к выгрузке объектов.
  7. Выполняем штатную выгрузку данных через FTP-ресурс или сетевой каталог.

Способ 2. Программная регистрация выборки документов

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


// Определяем узел плана обмена
УзелОбмена = ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30.НайтиПоКоду("БП");

Если ЗначениеЗаполнено(УзелОбмена) Тогда
    // Задаем период выборки документов
    ДатаНачала = '20230401000000';
    ДатаОкончания = '20230430235959';
    
    // Выбираем документы определенного вида за период
    Выборка = Документы.РеализацияТоваровУслуг.Выбрать(ДатаНачала, ДатаОкончания);
    
    Пока Выборка.Следующий() Цикл
        // Регистрируем каждый документ на узле обмена
        ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена, Выборка.Ссылка);
    КонецЦикла;
КонецЕсли;

После выполнения данного кода все выбранные документы попадут в ближайший пакет выгрузки на FTP-сервер.

Способ 3. Перепроведение документов в источнике

Проанализируем альтернативный простой вариант: в базе-источнике можно выполнить групповое перепроведение документов за требуемый период стандартной обработкой Групповая обработка справочников и документов. При перепроведении каждого документа платформа автоматически включит механизм авторегистрации изменений для всех активных узлов плана обмена. Однако этот метод изменяет дату модификации объектов и может потребовать дополнительного времени при больших объемах данных.

Важные настройки, требующие обязательной проверки

Чтобы повторная выгрузка и загрузка прошли успешно, обратим внимание на следующие критические параметры:

  1. Дата начала выгрузки документов в узле плана обмена: В настройках узла обмена в УТ 10.3 проверьте реквизит «Дата начала выгрузки». Если там установлена дата позже 1 апреля (например, 1 мая), правила выгрузки отсекут даже принудительно зарегистрированные документы.
  2. Даты запрета изменения данных в приемнике: В базе «Бухгалтерия предприятия 3.0» перейдите в раздел «Администрирование» — «Настройки пользователей и прав» — «Даты запрета изменения». Убедитесь, что для пользователей или для программы в целом не установлена дата запрета загрузки данных, блокирующая апрельские документы.
  3. Синхронизация счетчиков сообщений: При откате базы-приемника ее счетчик НомерПринятого откатился назад. Если база-источник выдает ошибку о нарушении последовательности пакетов, в обработке Регистрация изменений для обмена нажмите кнопку Изменить номера сообщений… и согласуйте номера пакетов либо временно сбросьте их в значение 0.
  4. Очистка каталога обмена: Перед формированием внеочередного пакета рекомендуется очистить рабочий каталог или папку на FTP-сервере от старых архивов .zip и .xml, чтобы база-приемник не пыталась повторно прочитать неактуальные сообщения.
← На главную