Имя: Пароль:
1C
1С v8
Подскажите по корректировке регистров
0 MatrosoV AleXXXand_R
 
13.12.11
09:18
Есть блок

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


В нем удаляются движения документов корректировки записей регистров. Все работает нормально, но есть единственный минус (не знаю как сделать) - хочу, чтобы не во всех регистрах происходила очистка, а только тех - в которых есть движения. Когда я ставлю ту проверку, которая закомментирована, то не очищается ничего.
Как правильно сделать?
1 and2
 
13.12.11
09:22
так в том доке, в соответствующей тч и хранится список корректируемых регистров.
2 DSatan
 
13.12.11
09:25
может сначала прочитать, потом проверять на количество?
3 unregistered
 
13.12.11
09:36
В типовых конфигурациях есть процедура общего модуля ОбщегоНазначения
Процедура УдалитьДвиженияРегистратора(ДокументОбъект, Отказ, РучнаяКорректировка = Ложь) Экспорт
4 Defender aka LINN
 
13.12.11
09:36
(0) Перенести Прочитать() на строку выше. Или запросом получить имена регистров с движениями, и работать уже по ним.
5 DSatan
 
13.12.11
09:43
(3) поддерживаю, самый правильный вариант
6 MatrosoV AleXXXand_R
 
13.12.11
10:03
(5) Да, я его использовал для документов, по которым запрещено проведение, кроме корректировки регистров накопления