Если СокрЛП(Док.Документ) = "КорректировкаЗаписейРегистров" Тогда
ВыборкаДок = Документы[Док.Документ].Выбрать();
Пока ВыборкаДок.Следующий() Цикл
ОбработкаПрерыванияПользователя();
ТекОбъект = ВыборкаДок.ПолучитьОбъект();
Состояние("Очищаем движения документа "+Строка(ТекОбъект.Ссылка));
Для Каждого Движения ИЗ ТекОбъект.Движения Цикл
ПозицияТочки = Найти(Строка(Движения), ".");
ИмяРегистра = Прав(Строка(Движения),СтрДлина(Строка(Движения))-ПозицияТочки);
//Если ТекОбъект.Движения[ИмяРегистра].Выгрузить().Количество()>0 Тогда
ТекОбъект.Движения[ИмяРегистра].Прочитать();
ТекОбъект.Движения[ИмяРегистра].Очистить();
ТекОбъект.Движения[ИмяРегистра].Записать();
//КонецЕсли;
КонецЦикла;
Попытка
ТекОбъект.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецЕсли;
В нем удаляются движения документов корректировки записей регистров. Все работает нормально, но есть единственный минус (не знаю как сделать) - хочу, чтобы не во всех регистрах происходила очистка, а только тех - в которых есть движения. Когда я ставлю ту проверку, которая закомментирована, то не очищается ничего.
Как правильно сделать?
В типовых конфигурациях есть процедура общего модуля ОбщегоНазначения
Процедура УдалитьДвиженияРегистратора(ДокументОбъект, Отказ, РучнаяКорректировка = Ложь) Экспорт