Бух 7.7 доработанная 289
Дополняю обработку "Обработка документов" на возможность проведения документа на конец дня для этого пишу
Если Обработка = "ПоменятьВремя" Тогда
//........ Здесь заполняю таблицу значений ссылками на документы РН
Ном=0;
ТабДок.ВыбратьСтроки();
Пока ТабДок.ПолучитьСтроку()=1 Цикл
ТекДок=ТабДок.Док;
Время=3600*23+60*59+59;
ДокИзм=СоздатьОбъект("Документ");
Провести=0;
ДокИзм.НайтиДокумент(ТекДок);
Если ДокИзм.Проведен()=1 Тогда
ДокИзм.СделатьНеПроведенным(); // Вот тут возникает проблема которая влечет за собой ошибку дальше
УстановитьВремяДокументаЧислом(ДокИзм,Время); //процедура которая разбивает время на часы минуты секунды и устанавливает время текущему документу ДокИзм.УстановитьВремя(Ч,М,С);
Если ДокИзм.Провести()=0 Тогда
Продолжить;
КонецЕсли;
Иначе
УстановитьВремяДокументаЧислом(ДокИзм,Время);
ДокИзм.Записать();
Продолжить;
КонецЕсли;
КонецЦикла;
//ЗафиксироватьТранзакцию();
КонецЕсли;
Какая задача, необходимо взять проведенный документ, сделать его не проведенным при условии, что он проведен, установить время и уже с новым временем провести. Если он не проводится тогда продолжить и перейти к следующему. Но вот тут возникает проблема.
Проблема такова, документ ДокИзм который появляется после следующего прохода цикла при условии что предыдущий документ не провелся не может сделать документ не проведенным из за чего вылетает дальше ошибка
ДокИзм.СделатьНеПроведенным()=1 // первый проход
ДокИзм.Провести()=0 //первый проход истина
ДокИзм.СделатьНеПроведенным()=0 // Второй проход