![]() |
![]() |
![]() |
|
Внешняя печатная форма (УФ): ПараметрыПечати | ☑ | ||
---|---|---|---|---|
0
Alamo-10
19.12.16
✎
14:27
|
Всем добрый день! Прошу помочь с созданием внешней печатной формы.
Конфигурация Розница 2.1.5, есть типовой документ РасходныйКассовыйОрдер. У документа в модуле менеджера определены 3 печатных формы. Нам требуется по каждой из них сделать внешнюю печатную форму. Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РКО") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "РКО", "Расходный кассовый ордер", СформироватьПечатнуюФормуКО2(МассивОбъектов, ОбъектыПечати)); КонецЕсли; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПечатьПрепроводительнаяВедомостьНакладнаяКСумке") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПечатьПрепроводительнаяВедомостьНакладнаяКСумке", "Препроводительная ведомость к сумке", СформироватьПечатнуюФормуПрепроводительнаяВедомостьНакладнаяКСумке(МассивОбъектов, ОбъектыПечати, ПараметрыПечати)); КонецЕсли; Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "КвитанцияКСумке") Тогда УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "КвитанцияКСумке", "Квитанция к сумке", СформироватьПечатнуюФормуКвитанцияКСумке(МассивОбъектов, ОбъектыПечати)); КонецЕсли; КонецПроцедуры По двум макетам проблем не возникло, но при попытке создать ВПФ для макета ПечатьПрепроводительнаяВедомостьНакладнаяКСумке (второй в списке) возникла сложность. Дело в том, что там помимо прочих передается параметром ПараметрыПечати - это структура, которая содержит некоторые данные формы документа. Эти данные как раз и требуются при печати, поскольку они не сохраняются в объекте, а присутствуют только на форме. Но по стандартам БСП, насколько я понимаю, если я делаю ВПФ с вариантом использования ВызовСерверногоМетода, то моя процедура печати должна иметь такой вид: Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Соответственно, доступа к ПараметрыПечати я не имею, и данные вытащить не могу. Подскажите, как грамотно нужно выстроить структуру моей внешней обработки, чтобы такая печать стала возможной. Спасибо! |
|||
1
aleks_default
19.12.16
✎
17:10
|
А что там передается в ПараметрыПечати? Может проще их определить в твоей процедуре?
|
|||
2
Вафель
19.12.16
✎
17:26
|
делай печать через клиентский вызов
|
|||
3
Alamo-10
19.12.16
✎
18:00
|
(1) Там передается ДанныеФормыСтруктура. На форме документа присутствует ТаблицаЗначений, в которую пользователь вводит количество банкнот различного номинала, после чего эта таблица как раз и выводится в печатную форму. Проблема в том, что таблица эта не хранится в объекте в табличной части, а является реквизитом формы.
|
|||
4
Alamo-10
19.12.16
✎
18:01
|
(2) Я уже интуитивно понимаю, что мне нужен либо клиентский вызов, либо открытие формы (но реально открытие формы мне не требуется), но все равно не понимаю, как в форму моей внешней обработки попадут данные с формы документа? Они передаются через какой-либо параметр, чтобы можно было к ним обратиться в форме моей внешней обработки?
|
|||
5
Вафель
19.12.16
✎
18:03
|
а как они в обычную форму передаются?
|
|||
6
Alamo-10
19.12.16
✎
18:11
|
(5) У типового документа есть команда, в модуле этой команды написано это
&НаКлиенте Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды) Если УправлениеПечатьюКлиент.ПроверитьДокументыПроведены(ПараметрКоманды, ПараметрыВыполненияКоманды.Источник) Тогда ТекстОшибки = ""; ТаблицаОписьСдаваемыхНаличныхДенег = Неопределено; Если ПараметрыВыполненияКоманды.Источник.Элементы.Найти("ТаблицаОписьСдаваемыхНаличныхДенег") = Неопределено Тогда ТекстОшибки = НСтр("ru = 'Печать необходимо выполнять из открытой формы документа.'"); Иначе ТаблицаОписьСдаваемыхНаличныхДенег = ПараметрыВыполненияКоманды.Источник.ТаблицаОписьСдаваемыхНаличныхДенег; КонецЕсли; УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Документ.РасходныйКассовыйОрдер", "ПечатьПрепроводительнаяВедомостьНакладнаяКСумке", ПараметрКоманды, ПараметрыВыполненияКоманды.Источник, Новый Структура("ТаблицаОписьСдаваемыхНаличныхДенег, ТекстОшибки, ЧтоПечатается", ТаблицаОписьСдаваемыхНаличныхДенег, ТекстОшибки, "Накладная")); КонецЕсли; КонецПроцедуры // ОбработкаКоманды() Вот в самом конце последним параметром как раз передается структура со всеми нужными мне данными. По стандартам БСП эта процедура ожидает только 4 параметра: ВнешняяОбработкаОбъект.Печать( ПараметрыИсточника.ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |