Табл.знач. и док-ты 1С77

lira89

Well-Known Member
12.03.2010
154
0
28
Гомель
#1
Задача состоит в том, чтобы сформировать табл. знач., записать в нее ссылки на документы, причем документы разных видов, а затем пройтись по таблице и перепровести эти документы.Есть таблица значений и несколько документов, которые в нее надо записать:
Код:
Процедура ДляВсех(ТЗ,н,Д)
Д.ВыбратьДокументы();
Пока Д.ПолучитьДокумент() = 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 Тогда
Сообщить("Док не проведен"+ТЗ.Док.ДатаДок+ " "+ТЗ.Док.Вид()+" "+ТЗ.Док.НомерДок,"!!");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ВОПРОС: когда я иду по строкам таблицы, то мне сразу же выдает ошибку о том, что не выбран документ в методе ТЗ.Док.СделатьНеПроведенным(). Насколько я понимаю в данном реквизите ТЗ хранится ссылка на документ. Почему тогда выбивает такое сообщение? Может что-то не так с типом колонки в ТЗ,как тогда правильно нужно записать, если документ не один?
 

vbs

Well-Known Member
18.02.2007
1 708
3
Санкт-Петербург
#3
Док = СоздатьОбъект("Документ");

Надо в цикле по ссылке из ТЗ искать нужный документ

Док.НайтиДокумент(ТЗ.Док);
и уже найденный документ перепроводить.

И еще - можно ограничиться одной колонкой типа "Документ" в ТЗ (или вообще списком значений)

Добавлено: А вообше-то во всех типовых конфигурациях есть "ГрупповаяОбработкаДокументов", так что, вроде и изобретать нечего