Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Обработка печати на клиенте ( УправлениеПечатьюКлиент.ВыполнитьКомандуПечати )

Обработка печати на клиенте ( УправлениеПечатьюКлиент.ВыполнитьКомандуПечати )
Я
   lexushka
 
04.12.17 - 15:54
Добрый день
Прошу прощения за название темы - очень хотелось ключевое слово УправлениеПечатьюКлиент.ВыполнитьКомандуПечати в ней поставить

Проблема

Есть внешняя печатная форма для УТ11 для печати Транспортной накладной
Там при вызове печати таких документов проверяется, а сформированы ли транспортные накладные, задаются вопросы и формируются…

Весь этот функционал не хотелось потерять

В итоге ВПФ вызывается как

ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();

НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Товарно-транспортная накладная (1-Т)'");
НоваяКоманда.Идентификатор = "ТТН";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();

Ну в основной форме обработки 

&НаКлиенте
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт

Все красиво вроде бы, но

Изначально это была обычная печатнаф форма с вызовом серверного метода
То есть:

Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ТТН") Тогда
  УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ТТН",
  НСтр("ru='Товарно-транспортная накладная (1-Т)'"),
  СформироватьПечатнуюФормуТТН(МассивОбъектов, ОбъектыПечати, ПараметрыПечати));
  ФормированиеПечатныхФорм.ЗаполнитьПараметрыОтправки(ПараметрыПечати.ПараметрыОтправки,
                                                      МассивОбъектов, КоллекцияПечатныхФорм);
КонецЕсли;

Соответственно, понасоздавав отсутствующие транспортные накладные я попытался напечатать их, передав вызов как 

РеквизитФормыВЗначение("Объект").Печать(МассивОбъектов, УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ИдентификаторКоманды),ОбъектыПечати, ПараметрыВывода);

Код отрабатывает и даже Табличный докуемнт созадет, но не показывает :/    

Попытка изучить документацию по БСП вывела меня на процедуру
УправлениеПечатьюКлиент.ВыполнитьКомандуПечати

Но как-то мы с ней не задружились и мне по ее мотивам пришлось напистаь свой код:
&НаКлиенте
Процедура ВыполнитьКомандуПечати(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ВладелецФормы, ПараметрыПечати = Неопределено) Экспорт
    
    // Проверим количество объектов.

    Если НЕ ПроверитьКоличествоПереданныхОбъектов(МассивОбъектов) Тогда
        Возврат;
    КонецЕсли;
    
    // Получим ключ уникальности открываемой формы.

    КлючУникальности = Строка(Новый УникальныйИдентификатор);
    
    ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати,ИсточникДанных,ПараметрыИсточника");
    ПараметрыОткрытия.ИмяМенеджераПечати = "";
    ПараметрыОткрытия.ИменаМакетов         = ИменаМакетов;
    ПараметрыОткрытия.ПараметрКоманды     = МассивОбъектов;
    ПараметрыОткрытия.ПараметрыПечати     = ПараметрыПечати;
    ПараметрыОткрытия.ИсточникДанных     = ИмяМенеджераПечати;
    ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения", ИменаМакетов, МассивОбъектов);;


    
    // Откроем форму печати документов.

    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);
    
КонецПроцедуры

Он даже работает, но есть у меня чувство, что должна быть возможность сделать необходимое без собственного ведосипеда…

Не посоветуете?

Спасибо
 
 

Список тем форума
Рекламное место пустует  Рекламное место пустует
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит Тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует