Обработка «Изменения движений»
Обработка «Изменения движений» проверяет, меняются ли движения документов после перепроведения — без изменения данных в базе (перепроведение в транзакции с откатом). Удобна после обновления конфигурации, рефакторинга проведения и для регрессии доработок, в том числе сгенерированных ИИ. Можно запускать из формы или программно (регламент, HTTP-сервис, автотесты): задаёте период, виды документов и регистров, лимит выборки — получаете отчёт и таблицу расхождений. Не зависит от конфигурации.
1. Назначение
Обработка сравнивает движения документов «до» и «после» перепроведения. Перепроведение выполняется в транзакции с последующим откатом — данные в базе не изменяются.
Типичные сценарии использования:
- проверка после обновления конфигурации или типового релиза;
- контроль последствий рефакторинга процедур проведения;
- регрессионное тестирование доработок (в том числе сгенерированных ИИ);
- программный запуск (регламентное задание, HTTP-сервис, автотесты).
2. Принцип работы
Для каждого помеченного вида документа обработка:
- выбирает проведённые документы за указанный период (с учётом отбора и лимита КоличествоОбъектов);
- снимает снимок движений по помеченным регистрам;
- перепроводит документ в транзакции и снова снимает снимок;
- откатывает транзакцию;
- сравнивает строки движений по полям и фиксирует расхождения.
Поддерживаются регистры накопления, сведений (подчинённые регистратору), бухгалтерии и расчёта. Результат выводится в табличный документ и дублируется в таблице значений ТаблицаРасхождений.
3. Работа через форму
3.1. Настройки проверки
На закладке «Настройки» задаются период, ограничение количества объектов, пометки видов документов и регистров, а также отбор по реквизитам выбранного документа (через схему компоновки данных).

Рис. 1. Закладка «Настройки»: период, лимит, документ «Заказ клиента», отбор по реквизитам
3.2. Выбор документов и движений
В списках «Документы» и «Движения» отмечаются объекты проверки. Команда контекстного меню «Отметить движения по документу» автоматически помечает регистры, в которые пишет выбранный вид документа.
Можно открыть журнал документов выбранного вида.

Рис. 2. Контекстное меню документа: «Отметить движения по документу»
Пометки регистров можно также выставлять вручную — для всех строк или только для выделенных:

Рис. 3. Контекстное меню списка движений: установить / снять пометки
3.3. Узкая выборка (один документ — один регистр)
Для точечной проверки достаточно пометить один вид документа и один регистр. Так же настраивается и программный запуск через Инициализировать().

Рис. 4. Пример узкой настройки: «Заказ клиента» и регистр «Распоряжения на отгрузку и возврат»
3.4. Результат проверки
После нажатия «Выполнить проверку» открывается закладка «Результат». Отчёт «Расхождения движений документов после перепроведения» содержит итоги (проверено / с расхождениями / всего расхождений) и иерархию: вид документа → документ → регистр → поля строк движений.
В колонках «Значение до проведения» и «Значение после проведения» видно, что изменилось: изменённые поля, удалённые или добавленные строки движений. Расшифровка позволяет открыть документ или форму списка регистра по регистратору.

Рис. 5. Результат при проверке по нескольким регистрам (детализация по полям)

Рис. 6. Результат узкой проверки по регистру «Распоряжения на отгрузку и возврат»

Рис. 7. Результат узкой проверки по регистру «Распоряжения на отгрузку и возврат»
4. Программный интерфейс
Обработку можно вызывать без формы — из общего модуля, регламентного задания или HTTP-сервиса. Это удобно для автоматической проверки после изменения доработок (в том числе ИИ): сервис принимает параметры, запускает проверку и возвращает признак наличия расхождений / их количество.
4.1. Основные методы и реквизиты
- Инициализировать(ВосстанавливатьНастройки, ВыбранныеВидыДокументов, ВыбранныеВидыРегистров) — заполняет списки видов и схем компоновки.
- Период — СтандартныйПериод отбора документов.
- КоличествоОбъектов — лимит документов одного вида (0 — без ограничения).
- ВыполнитьПроверку() — перепроведение с откатом и сравнение.
- Результат — табличный документ отчёта.
- ТаблицаРасхождений — таблица значений с детализацией расхождений.
4.2. Примеры серверного запуска
Пример проверки заказов клиента с отбором по автору:
&НаСервере
Функция ПримерПроверки()
Обработка = Обработки.ИзмененияДвижений.Создать();
Обработка.Инициализировать(Ложь, "ЗаказКлиента");
// Август 2026
Обработка.Период = Новый СтандартныйПериод('20260801000000','20260831235959');
Обработка.КоличествоОбъектов = 30;
// Отбор: Автор = Администратор
Автор = Справочники.Пользователи.НайтиПоНаименованию("Администратор", Истина);
Схема = Обработка.ВсеСхемыКомпоновки().Получить("ЗаказКлиента");
Настройки = Схема.НастройкиПоУмолчанию;
ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Автор");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = Автор;
ЭлементОтбора.Использование = Истина;
ВсеНастройки = Новый Соответствие;
ВсеНастройки.Вставить("ЗаказКлиента", Настройки);
Обработка.Настройки = Новый ХранилищеЗначения(ВсеНастройки);
Обработка.ВыполнитьПроверку();
Возврат Обработка.ЕстьРасхождения;
КонецФункции
Пример проверки заказов клиента по регистру «Распоряжения на отгрузку и возврат»:
&НаСервере
Процедура ПримерПроверки2() Экспорт
Обработка = Обработки.ИзмененияДвижений.Создать();
// Документ ЗаказКлиента, регистр накопления РаспоряженияНаОтгрузкуИВозврат
Обработка.Инициализировать(
Ложь,
"ЗаказКлиента",
"РегистрНакопления.РаспоряженияНаОтгрузкуИВозврат");
// Август 2026
Обработка.Период = Новый СтандартныйПериод('20260801000000','20260831235959');
// Не больше 30 документов
Обработка.КоличествоОбъектов = 30;
Обработка.ВыполнитьПроверку();
// Результат — табличный документ в реквизите Результат
// Расхождения — в ТаблицаРасхождений
Если Обработка.ТаблицаРасхождений.Количество() = 0 Тогда
Сообщить("Расхождений не обнаружено.");
Иначе
Сообщить(СтрШаблон("Найдено расхождений: %1", Обработка.ТаблицаРасхождений.Количество()));
КонецЕсли;
КонецПроцедуры
4.3. Кратко по шагам примера
- Инициализировать — только ЗаказКлиента и регистр РаспоряженияНаОтгрузкуИВозврат (оба с пометкой).
- Период — 01.08.2026–31.08.2026.
- КоличествоОбъектов = 30 — в выборку попадёт не больше 30 проведённых документов.
- ВыполнитьПроверку() — перепроведение в транзакции с откатом и сравнение движений.
- Регистр можно передать и коротким именем: «РаспоряженияНаОтгрузкуИВозврат» — нормализация сама найдёт его среди регистров накопления.
Параметры ВыбранныеВидыДокументов и ВыбранныеВидыРегистров принимают строку, объект метаданных, массив или список значений. Документ — имя или «Документ.Имя»; регистр — полное имя («РегистрНакопления.…») или короткое имя.
5. Практические рекомендации
- Начинайте с узкой выборки (один документ + один–два регистра) и небольшого КоличествоОбъектов.
- После обновления или рефакторинга сначала прогоняйте критичные документы (заказы, реализации, поступления).
- Ненулевые расхождения — сигнал к анализу: изменилась логика проведения, состав измерений/ресурсов или порядок записи движений.
- Для автоматизации свяжите вызов с HTTP-сервисом: нулевой объём ТаблицаРасхождений = успешная проверка.
- Настройки формы (пометки, отборы, «Только выбранные») сохраняются в хранилище общих настроек пользователя.
Возможно, вас заинтересуют другие публикации:
Групповое редактирование ролей конфигурации
Рассылка расчетных листков в фоновых заданиях
Групповая отправка документов по электронной почте.
Подсистема "Согласование документов с произвольным маршрутом"
Проверено на следующих конфигурациях и релизах:
- Управление торговлей, редакция 11, релизы 11.6.1.61
Вступайте в нашу телеграмм-группу Инфостарт