Проблема при записи программно открытого документа
11.09.2008
14:16
#1
"Бухгалтерия 7.7, последний релиз: из обработки в цикле открываю формы новых документов через
ОткрытьФорму("Документ.ХХХ",,Док.ТекущийДокумент()),
т.е. выполняется ввод на основании. После чего пытаюсь записать этот новый документ через Записать(), на что получаю
"Данная команда не может выполняться в формуле элемента диалога!"
В другой обработке Записать() работало без ошибок, еще в одной делал через вызов процедуры:
Процедура _Записать()
Записать();
КонецПроцедуры - тоже работало.
Здесь же ничего не помогает... Какие еще могут быть варианты?"
ОткрытьФорму("Документ.ХХХ",,Док.ТекущийДокумент()),
т.е. выполняется ввод на основании. После чего пытаюсь записать этот новый документ через Записать(), на что получаю
"Данная команда не может выполняться в формуле элемента диалога!"
В другой обработке Записать() работало без ошибок, еще в одной делал через вызов процедуры:
Процедура _Записать()
Записать();
КонецПроцедуры - тоже работало.
Здесь же ничего не помогает... Какие еще могут быть варианты?"
29.01.2009
14:12
#2
"У меня была такая же ситуация. Док1 - Док.Основание, Док2 - программно создаваемый документ.
1) //в Док1
Процедура ОбработкаПроведения() //Док1
......
новДок2=создатьобъект("Документ.Док2");
новДок2.новый();
//заполняем необходимые реквизиты новДок2
новДок2.записать();
Парам = новДок2;
ОткрытьФорму("Обработка.НазваниеОбработки", Парам);
......
КонецПроцедуры //ОбработкаПроведения()
2) //в Обработка.НазваниеОбработки
Перем Парам;
Процедура ПриОткрытии()
Парам = Форма.Параметр;
Если ТипЗначенияСтр(Парам) <> "Документ" тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
Форма.Закрыть();
КонецПроцедуры // ПриОткрытии()
Процедура ПриЗакрытии()
ПроводимыйДок = СоздатьОбъект("Документ.Док2");
если ПроводимыйДок.НайтиДокумент(Форма.Параметр) = 1 тогда
ПроводимыйДок.Провести();
иначе
сообщить("Док2 не найден!");
конецесли;
КонецПроцедуры // ПриЗакрытии()
В эту обработку у меня (в зависимости от типа Док1) передается либо Парам=Документ, либо Парам=ТаблицаЗначений. Про ТаблицуЗначений я все вырезал просто. Вот. Как то так."
1) //в Док1
Процедура ОбработкаПроведения() //Док1
......
новДок2=создатьобъект("Документ.Док2");
новДок2.новый();
//заполняем необходимые реквизиты новДок2
новДок2.записать();
Парам = новДок2;
ОткрытьФорму("Обработка.НазваниеОбработки", Парам);
......
КонецПроцедуры //ОбработкаПроведения()
2) //в Обработка.НазваниеОбработки
Перем Парам;
Процедура ПриОткрытии()
Парам = Форма.Параметр;
Если ТипЗначенияСтр(Парам) <> "Документ" тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;
Форма.Закрыть();
КонецПроцедуры // ПриОткрытии()
Процедура ПриЗакрытии()
ПроводимыйДок = СоздатьОбъект("Документ.Док2");
если ПроводимыйДок.НайтиДокумент(Форма.Параметр) = 1 тогда
ПроводимыйДок.Провести();
иначе
сообщить("Док2 не найден!");
конецесли;
КонецПроцедуры // ПриЗакрытии()
В эту обработку у меня (в зависимости от типа Док1) передается либо Парам=Документ, либо Парам=ТаблицаЗначений. Про ТаблицуЗначений я все вырезал просто. Вот. Как то так."
Читают тему
(гостей: 1)