L
lira89
Задача состоит в том, чтобы сформировать табл. знач., записать в нее ссылки на документы, причем документы разных видов, а затем пройтись по таблице и перепровести эти документы.Есть таблица значений и несколько документов, которые в нее надо записать:
ВОПРОС: когда я иду по строкам таблицы, то мне сразу же выдает ошибку о том, что не выбран документ в методе ТЗ.Док.СделатьНеПроведенным(). Насколько я понимаю в данном реквизите ТЗ хранится ссылка на документ. Почему тогда выбивает такое сообщение? Может что-то не так с типом колонки в ТЗ,как тогда правильно нужно записать, если документ не один?
Код:
Процедура ДляВсех(ТЗ,н,Д)
Д.ВыбратьДокументы();
Пока Д.ПолучитьДокумент() = 1 Цикл
ТЗ.НоваяСтрока();
ТЗ.Ном = н;
ТЗ.Док = Д.ТекущийДокумент();
ТЗ.Дат = Д.ДатаДок;
КонецЦикла;
КонецПроцедуры // ДляВсех
//*******************************************
Процедура Выполнить()
Д1 = СоздатьОбъект("Документ.ПереводВАкадемический");
Д2=СоздатьОбъект("Документ.ОтчислениеСтудента");
Д3 = СоздатьОбъект("Документ.ВыбытиеСтудентов");
Д4 = СоздатьОбъект("Документ.Восстановление");
Д5 = СоздатьОбъект("Документ.ПриказНаСтажировку");
Д6 = СоздатьОбъект("Документ.ВозвратИзСтажировки");
ТЗ = СоздатьОбъект("ТаблицаЗначений");
ТЗ.НоваяКолонка("Ном","Число",3,0,"Номер",1);
ТЗ.НоваяКолонка("Док","Документ",,,"Док",30);
ТЗ.НоваяКолонка("Дат","Дата",,,"ДатаДок",10);
ДляВсех(ТЗ,1,Д1);
ДляВсех(ТЗ,2,Д2);
ДляВсех(ТЗ,3,Д3);
ДляВсех(ТЗ,4,Д4);
ДляВсех(ТЗ,5,Д5);
ДляВсех(ТЗ,6,Д6);
ТЗ.Сортировать("+Дат,+Ном");
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
ТЗ.Док.СделатьНеПроведенным(); //ЗДЕСЬ ВЫБИВАЕТ ОШИБКУ
ТЗ.Док.Провести();
Если ТЗ.Док.Проведен()=0 Тогда
Сообщить("Док не проведен"+ТЗ.Док.ДатаДок+ " "+ТЗ.Док.Вид()+" "+ТЗ.Док.НомерДок,"!!");
КонецЕсли;
КонецЦикла;
КонецПроцедуры