Особенности использования документа в качестве реквизита табличной части другого документа
20.08.2003
06:24
#1
"Здравствуйте!!!
В качестве реквизита табличной части одного документа(хозяина), я использую другой документ(рабочий). Мне это необходимо, что бы собрать документы с одинаковыми реквизитами, но формирующими операции и проводки за разные даты в одном месте. И теперь мне нужно из документа-хозяина провести все его документы-рабочие, в модуле проведения, как известно нельзя вообще использовать иетод Провести(). Пытаюсь в модуле формы документа-хозяина, уже и в отдельную обработку вывела, выглядит это так:
из модуля формы документа-хозяина делаю вызов
ОткрытьФормуМодально("Обработка.ПроведениеДоков",Контекст);
а в этой форме нехитрый алгоритм:
Док_хозяин=Форма.Параметр;
Док_хозяин.ВыбратьСтроки();
Пока Док_хозяин.ПолучитьСтроку()=1 Цикл
Док_рабочий=Док_хозяин.Ремонт;
Сообщить(Док_рабочий.Выбран());
Док_рабочий.Провести();
КонецЦикла;
а программа ругается:
1
Док_рабочий.Провести();
{Обработка.ПроведениеДоков.Форма.Модуль(8)}: Не выбран документ!
хотя единичку рисует %((, т.е. на самом деле документ выбран, так же не работает метод Записать(), хотя менять реквизиты документа- рабочего программа позволяет, а на вот эти методы ругается, в чем же дело???
Заранее благодарна, Злата.
"
В качестве реквизита табличной части одного документа(хозяина), я использую другой документ(рабочий). Мне это необходимо, что бы собрать документы с одинаковыми реквизитами, но формирующими операции и проводки за разные даты в одном месте. И теперь мне нужно из документа-хозяина провести все его документы-рабочие, в модуле проведения, как известно нельзя вообще использовать иетод Провести(). Пытаюсь в модуле формы документа-хозяина, уже и в отдельную обработку вывела, выглядит это так:
из модуля формы документа-хозяина делаю вызов
ОткрытьФормуМодально("Обработка.ПроведениеДоков",Контекст);
а в этой форме нехитрый алгоритм:
Док_хозяин=Форма.Параметр;
Док_хозяин.ВыбратьСтроки();
Пока Док_хозяин.ПолучитьСтроку()=1 Цикл
Док_рабочий=Док_хозяин.Ремонт;
Сообщить(Док_рабочий.Выбран());
Док_рабочий.Провести();
КонецЦикла;
а программа ругается:
1
Док_рабочий.Провести();
{Обработка.ПроведениеДоков.Форма.Модуль(8)}: Не выбран документ!
хотя единичку рисует %((, т.е. на самом деле документ выбран, так же не работает метод Записать(), хотя менять реквизиты документа- рабочего программа позволяет, а на вот эти методы ругается, в чем же дело???
Заранее благодарна, Злата.
"
20.08.2003
08:05
#2
"Немного некорректно. Документ не спозиционирован, ты пытаешься провести простую переменную.
Не нужно ничего осложнять обработками, просто поправь:
Док_хозяин=Форма.Параметр;
Док_рабочий=СоздатьОбъект("Документ.РабочийКПримеру");
Док_хозяин.ВыбратьСтроки();
Пока Док_хозяин.ПолучитьСтроку()=1 Цикл
Если Док_рабочий.НайтиДокумент(Док_хозяин.Ремонт)=1 Тогда
Док_рабочий.Провести();
КонецЕсли;
КонецЦикла;
"
Не нужно ничего осложнять обработками, просто поправь:
Док_хозяин=Форма.Параметр;
Док_рабочий=СоздатьОбъект("Документ.РабочийКПримеру");
Док_хозяин.ВыбратьСтроки();
Пока Док_хозяин.ПолучитьСтроку()=1 Цикл
Если Док_рабочий.НайтиДокумент(Док_хозяин.Ремонт)=1 Тогда
Док_рабочий.Провести();
КонецЕсли;
КонецЦикла;
"
Читают тему
(гостей: 1)