Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
19 апр 2024, 09:53

Внешняя печатная форма

Автор neek666, 04 июн 2021, 07:45

0 Пользователей и 1 гость просматривают эту тему.

neek666

Добрый день! Подскажите пожалуйста, как реализовать следующий функционал: при печати внешней печатной формы вылетает вопрос со свободным ответом. После ответа пользователя (ввод цифрового значения) формируется печатная форма. К расширениям не охота прибегать.

LexaK

во внешней печатной форме, в процедуре СведенияОВнешнейОбработке
измените Использование = "ВызовСерверногоМетода"
на "ОткрытиеФормы"
в саму ВПФ добавьте форму
в событии ПриОткрытии, вставьте свои вопросы клиенту или вводы значений,
после их обработки вызывайте уже сам функционал печати ВПФ 
если помогло нажмите: Спасибо!

neek666

Цитата: LexaK от 04 июн 2021, 10:10
во внешней печатной форме, в процедуре СведенияОВнешнейОбработке
измените Использование = "ВызовСерверногоМетода"
на "ОткрытиеФормы"
в саму ВПФ добавьте форму
в событии ПриОткрытии, вставьте свои вопросы клиенту или вводы значений,
после их обработки вызывайте уже сам функционал печати ВПФ 
Такой подход неприемлим. Поясню. Штатная процедура внешней печатной формы имеет вид:
Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

где МассивОбъектов = ссылка на документ, с которого вызывается данная печатная форма. Если я изменю использование обработки на "ОткрытиеФормы", то откуда мне тогда на открывшейся форме взять эту ссылку на исходный документ??? Ее там нет, и быть не может. А значит!!!! Мне надо расположить на форме еще одну строку для выбора документа, на основании которого и будет сформирована внешняя печатная форма. В данном случае гораздо проще будет написать внешнюю именно обработку, с возможностью выбора документа основания (а может быть даже и нескольких сразу) на основании которых, с учетом "дополнений" пользователя и будут сформированы внешнии печатные формы. Но это не удобно. Надо что бы именно из формы документа был реализован этот функционал.

Надеюсь понятно объяснил суть проблемы.

neek666

Цитата: LexaK от 04 июн 2021, 10:10
во внешней печатной форме, в процедуре СведенияОВнешнейОбработке
измените Использование = "ВызовСерверногоМетода"
на "ОткрытиеФормы"
в саму ВПФ добавьте форму
в событии ПриОткрытии, вставьте свои вопросы клиенту или вводы значений,
после их обработки вызывайте уже сам функционал печати ВПФ 
"после их обработки вызывайте уже сам функционал печати ВПФ" - Каким образом? Каким образом мне вызвать этот функционал из модуля формы, что бы вызвать вот эту функцию, лежащую в модуле внешнего отчета:
Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт (естественно, вместе со всеми реквизитами). Иными словами, как мне эти реквизиты передать из модуля формы (где их нет, и быть не может) в модуль внешнего отчета?

neek666

Поясню еще проще. Я добавил новую форму в ВПФ. Добавил в нее этот код:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
   ВвестиЗначение(Объект.КоличествоКоробок);//здесь пользователь вводит то, что надо
   СформироватьЦенники();//здесь мы передаем управление в процедуру на сервере
КонецПроцедуры
&НаСервере
Процедура СформироватьЦенники()//в этой процедуре мы по совету одного из форумчан должны передать управление вызываем сам
                                 функционал печати ВПФ.
    ЭтотОбъект_1 = РеквизитФормыВЗначение("Объект");
    ЭтотОбъект_1.Печать();
КонецПроцедуры

Проблема в том, что штатная процедура печати (экспортная которая, и которая лежит в модуле ВПФ) имеет вид:
Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

До тех пор, пока в функции СведенияОВнешнейОбработке() использование было "ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода()" эта функция печати формировалась ПОЛНОСТЬЮ АВТОМАТОМ, с передачей уже ЗАРАНЕЕ ЗАПОЛНЕННЫХ РЕКВИЗИТОВ ФУНКЦИИ.
ОТКУДА МНЕ ИХ ВЗЯТЬ на форме ВПФ?
Поэтому данный совет и не приемлим. Если можно по подробнее рассказать, то пожалуйста расскажите.

LexaK

при открытии/создании формы туда через параметры передаются ссылки печатаемых документов
для печати, из формы вызываете процедуру модуля ВПФ
Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
она же ЭКСПОРТ(ная)!!!
получаете КоллекцияПечатныхФорм
и отправяете ее в    
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПФ);
все отлично работает, всего десяток команд,

Почему через форму? так как только с клиента можно задавать интерактивные вопросы и вводы значений от пользователя
еще через форму удобно отлаживаться, запускаете ВПФ просто как обработку, открывается форма, и весь код доступен в отладчике, все под рукой.
попробуйте, должно получиться.




если помогло нажмите: Спасибо!

neek666

Цитата: LexaK от 04 июн 2021, 12:19
при открытии/создании формы туда через параметры передаются ссылки печатаемых документов
для печати, из формы вызываете процедуру модуля ВПФ
Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
она же ЭКСПОРТ(ная)!!!
получаете КоллекцияПечатныхФорм
и отправяете ее в    
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПФ);
все отлично работает, всего десяток команд,

Почему через форму? так как только с клиента можно задавать интерактивные вопросы и вводы значений от пользователя
еще через форму удобно отлаживаться, запускаете ВПФ просто как обработку, открывается форма, и весь код доступен в отладчике, все под рукой.
попробуйте, должно получиться.





Я прекрасно понял все... кроме одного. Переменная "МассивОбъектов" - откуда мне ее взять в модуле ВПФ, что бы передать в экспортную функцию модуля ВПФ "Печать"? Именно в этой переменной хранится ссылка на документ, из которого и вызывается эта ВПФ. Или не так?

neek666

"при открытии/создании формы туда через параметры передаются ссылки печатаемых документов
для печати", подскажите тогда, что это за параметры?

antoneus

Те параметры, которые доступны в процедуре ПриСозданииНаСервере в свойстве формы "Параметры".

neek666

Спасибо за помощь. Помогли. Вот здесь максимально подробно об этом говорится:
https://infostart.ru/1c/articles/191796/
Тема закрыта.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск