Особенности использования документа в качестве реквизита табличной части другого документа

Новая тема
"Здравствуйте!!!

В качестве реквизита табличной части одного документа(хозяина), я использую другой документ(рабочий). Мне это необходимо, что бы собрать документы с одинаковыми реквизитами, но формирующими операции и проводки за разные даты в одном месте. И теперь мне нужно из документа-хозяина провести все его документы-рабочие, в модуле проведения, как известно нельзя вообще использовать иетод Провести(). Пытаюсь в модуле формы документа-хозяина, уже и в отдельную обработку вывела, выглядит это так:

из модуля формы документа-хозяина делаю вызов

ОткрытьФормуМодально("Обработка.ПроведениеДоков",Контекст);

а в этой форме нехитрый алгоритм:

Док_хозяин=Форма.Параметр;    

Док_хозяин.ВыбратьСтроки();

Пока Док_хозяин.ПолучитьСтроку()=1 Цикл

Док_рабочий=Док_хозяин.Ремонт;

Сообщить(Док_рабочий.Выбран());

Док_рабочий.Провести();

КонецЦикла;

а программа ругается:

1

Док_рабочий.Провести();

{Обработка.ПроведениеДоков.Форма.Модуль(8)}: Не выбран документ!

хотя единичку рисует %((, т.е. на самом деле документ выбран, так же не работает метод Записать(), хотя менять реквизиты документа- рабочего программа позволяет, а на вот эти методы ругается, в чем же дело???

Заранее благодарна, Злата.



"
"Немного некорректно. Документ не спозиционирован, ты пытаешься провести простую переменную.

Не нужно ничего осложнять обработками, просто поправь:



Док_хозяин=Форма.Параметр;

Док_рабочий=СоздатьОбъект("Документ.РабочийКПримеру");

Док_хозяин.ВыбратьСтроки();

Пока Док_хозяин.ПолучитьСтроку()=1 Цикл

Если Док_рабочий.НайтиДокумент(Док_хозяин.Ремонт)=1 Тогда

Док_рабочий.Провести();

КонецЕсли;

КонецЦикла;





"
Читают тему
(гостей: 1)

Быстрый переход