Почему при синхронизации 1С:УТ и 1С:БП документы за прошлый период массово выгружаются повторно?

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

Ситуация, когда при очередной синхронизации между 1С:Управление торговлей 11 и 1С:Бухгалтерия предприятия 3.0 система внезапно начинает «перелопачивать» и повторно выгружать документы за уже закрытый и ранее успешно переданный период (например, за прошлый месяц), является довольно распространенной. Основная сложность заключается в том, что в Журнале регистрации (ЖР) при этом часто отсутствуют записи об изменении самих документов. Давайте детально разберем механизмы работы обмена и выясним, почему так происходит и как найти «виновника» этого процесса.

Механизм регистрации изменений: где искать причину?

Прежде всего, нам необходимо понять фундаментальный принцип работы обмена данными в 1С. Для того чтобы документ попал в файл выгрузки, он должен быть зарегистрирован на узле обмена. Эта регистрация происходит в специальной системной таблице. Важно помнить: запись в таблице регистрации изменений — это не то же самое, что изменение самого документа. Именно поэтому в Журнале регистрации мы можем не видеть правок в объекте ДокументОбъект, в то время как триггер на выгрузку уже сработал.

Рассмотрим основные сценарии, которые приводят к массовой регистрации документов к обмену:

1. Обновление правил синхронизации

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

2. Фоновые регламентные задания и расчет себестоимости

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

  1. Регламентное задание ЗаданияРасчетаСебестоимости или АктуализацияДвиженийПоДаннымПартионногоУчета запускается по расписанию.
  2. Если в марте были введены документы «задним числом», система может пересчитать себестоимость во всей цепочке документов месяца.
  3. Несмотря на то что реквизиты документа (номер, дата, контрагент) не меняются, могут измениться записи в связанных регистрах сведений или накопления. Если правила обмена настроены так, что они отслеживают изменения в этих регистрах, документы будут зарегистрированы к выгрузке.

3. Скрытая работа обработчиков обновления (БСП)

Выясним причину, связанную с обновлением платформы или конфигурации. В составе Библиотеки Стандартных Подсистем (БСП) существуют обработчики, которые выполняются в фоновом режиме после обновления. Например, при внедрении функционала маркировки или прослеживаемости товаров, обработчик может программно заполнять технические реквизиты в документах за прошлые периоды. Часто это делается с установкой флага ОбменДанными.Загрузка = Истина. В этом случае:

4. Использование групповых обработок пользователями

Проанализируем человеческий фактор. Как справедливо замечено в обсуждении, «у кого-то может быть слишком много прав». Пользователь с правами администратора мог запустить обработку «Групповое изменение реквизитов». Даже если никакие значимые поля не были изменены, но была нажата кнопка «Изменить», или если обработка затронула связанные справочники (например, переименовали склад или изменили статью ДДС), система может зарегистрировать все связанные документы.

Посмотрим на пример того, как программно может выглядеть регистрация изменений, которая не оставляет следов в обычном понимании пользователя:


// Пример программной регистрации всех документов определенного типа на узле обмена
УзелИнформационнойБазы = ПланыОбмена.СинхронизацияДанныхЧерезУниверсальныйФормат.НайтиПоНаименованию("Бухгалтерия Предприятия");
ВыборкаДокументов = Документы.РеализацияТоваровУслуг.Выбрать(ДатаНачалаМарта, ДатаКонцаМарта);

Пока ВыборкаДокументов.Следующий() Цикл
    ПланыОбмена.ЗарегистрироватьИзменения(УзелИнформационнойБазы, ВыборкаДокументов.Ссылка);
КонецЦикла;

Такой код не меняет сам документ, он лишь добавляет запись в таблицу регистрации, поэтому Журнал регистрации будет «молчать».

5. Процедуры поиска и удаления дублей

Рассмотрим ситуацию с нормализацией нормативно-справочной информации (НСИ). Если ночью выполнялась автоматическая процедура поиска и замены дублей контрагентов или номенклатуры, то все документы, в которых была произведена замена ссылки, автоматически помечаются как измененные и встают в очередь на синхронизацию. Это стандартное поведение платформы для обеспечения целостности данных в обеих базах.

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

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

  1. Воспользуемся типовой обработкой: Откройте форму «Регистрация изменений для обмена» (через «Администрирование» — «Синхронизация данных» — «Состав отправляемых данных»). Проанализируйте, какие именно объекты стоят в очереди.
  2. Проверим фоновые задания: Сопоставьте время начала массовой выгрузки со временем выполнения регламентных заданий в консоли заданий. Особое внимание уделите заданиям: ИсправлениеДублей, ОтражениеДокументовВРеглУчете и ВыполнениеОбработчиковОбновления.
  3. Анализ состава регистрации: Если вы видите, что зарегистрированы все документы, попробуйте вручную очистить регистрацию для этого узла, если уверены, что данные в БП актуальны. Это можно сделать кодом:

// Очистка регистрации изменений для определенного типа метаданных
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, Метаданные.Документы.РеализацияТоваровУслуг);

Резюме

Массовая выгрузка без видимых причин в ЖР — это чаще всего следствие работы системных механизмов 1С (обработчики обновления, фоновый расчет себестоимости) или использования инструментов массового изменения данных, которые не фиксируются как интерактивные правки пользователя. Для предотвращения таких ситуаций рекомендуем ограничивать права на групповое изменение реквизитов и внимательно изучать состав изменений перед запуском ночной синхронизации, если в системе проводились регламентные работы.

← На главную