Ы!!! И одна из моих первых обработок тоже была сменой только даты доков!
Но - подытожим:
1. Имеет смысл проверять, проведен документ или нет
2. Отменяем проведение только у проведенных
3. Меняем время и перепроводим...
Тут может возникнуть проблема: если использовать конструкцию ВыбратьДокументы-ПолучитьДокумент, то сменить время может и не получиться. Поэтому, используем СписокЗначений. Что-то типа:
Код |
---|
Сп=СоздатьОбъект("СписокЗначений");
Док=СоздатьОбъект("Документ.РасходнаяНакладная");
Пока Док.ПолучитьДокумент()=1 Цикл
Если Док.Проведен()=1 Тогда
Сп.ДобавитьЗначение(Док.ТекущийДокумент());
КонецЕсли;
КонецЦикла;
Для К=1 По Сп.РазмерСписка() Цикл
Док.НайтиДокумент(Сп.ПолучитьЗначение(К));
Док.СделатьНеПроведенным();
// тут меняем дату, время
Док.Записать();
Док.Провести();
КонецЦикла;
Показать полностью |