Не отображаются кнопки "печать/предварительный просмотр etc" в БСП-обработке Печати (ВызовКлиентскогоМетода)

1. AndrewKop 20.06.19 10:50 Сейчас в теме
Не отображается панелька с кнопками быстрого доступа к командам печати в БСП-обработке печати. Из-за особенности логики печати, пришлось использовать "ВызовКлиентскогоМетода" вместо "ВызовСерверногоМетода". Когда был "ВызовСерверногоМетода", все было хорошо.
В случае:
СведенияОбОбработке.Вставить("Вид", "ПечатнаяФорма");
ДобавитьКоманду(ТаблицаКоманд, "!Форма выдаваемого документа", "ВыдаваемыйДокумент", "ВызовКлиентскогоМетода", Ложь, "ПечатьMXL");

Вызывается экспортная процедура "ВыполнитьКлиентскийМетодОбработки" модуля "ДополнительныеОтчетыИОбработкиКлиент".
ФормаОбработки.Печать(ВыполняемаяКоманда.Идентификатор, ОбъектыНазначения);

где ВыполняемаяКоманда.Идентификатор - Строка хранящая идентификатор команды, а ОбъектыНазначения - массив из объектов для которых вызвана команда печать. Больше ничего. Возвращать, как в случае "ВызовСерверногоМетода" ничего не надо (вроде). Почему же эта панель не формируется, я хз.
Прикрепленные файлы:
Найденные решения
3. singlych 20.06.19 11:26 Сейчас в теме
Эта панелька из общей формы печати. В клиентской процедуре печати ее нужно вызывать, передавая туда ваш табдок через коллекцию печатных форм, нужные процедуры где-то в модуле УправлениеПечатьюКлиент. Описание БСП на ИТСе в помощь.
SlavaKron; +1 Ответить
6. SlavaKron 20.06.19 15:02 Сейчас в теме
ТабДоки получить с сервера на клиенте нужно. Для примера:
&НаКлиенте
Процедура ПечатьПротокола(Команда)
	ТабДок = ПечатьПротоколаНаСервере();
	
	КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("ПФ_MXL_ПечатьПротоколаКТУ");
	КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДок;   
	УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
КонецПроцедуры
iCortezik; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Дмитрий74Чел 234 20.06.19 11:19 Сейчас в теме
Потому что когда был серверный метод - у вас не было формы обработки, она формировалась платформой (вернее, БСП). А теперь вы создали форму, и используется она.
Откройте снова вариант с серверным вызовом, поставьте "пауза" в отладке на клиента и на сервера и шагайте - ищите какая форма будет использована. Вполне вероятно что будет какая-то общая форма из БСП.
3. singlych 20.06.19 11:26 Сейчас в теме
Эта панелька из общей формы печати. В клиентской процедуре печати ее нужно вызывать, передавая туда ваш табдок через коллекцию печатных форм, нужные процедуры где-то в модуле УправлениеПечатьюКлиент. Описание БСП на ИТСе в помощь.
SlavaKron; +1 Ответить
4. SlavaKron 20.06.19 11:35 Сейчас в теме
ПечатьДокументов
Открывает форму ПечатьДокументов для коллекции табличных документов.
Синтаксис

Процедура ПечатьДокументов(КоллекцияПечатныхФорм, Знач ОбъектыПечати = Неопределено, ВладелецФормы = Неопределено) Экспорт
Параметры

КоллекцияПечатныхФорм - Массив - коллекция описаний печатных форм, см. НоваяКоллекцияПечатныхФорм();
ОбъектыПечати - СписокЗначений - значение - ссылка на объект;
представление - имя области в которой был выведен объект (выходной параметр);
ВладелецФормы - УправляемаяФорма - форма, из которой выполняется печать.
Пример вызова

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

Тонкий клиент, Толстый клиент

Библиотека стандартных подсистем
5. AndrewKop 20.06.19 14:50 Сейчас в теме
(4) Да, уже нашел. Спасибо всем кто отписался! Единственное только во что не въеду пока:
ПечатьДокументов вызываю на клиенте. Передаю массив КоллекцияПечатныхФорм. Для его создания использую УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм - тоже на клиенте. Но сами ТабДоки формирую на сервере. Там же по логике хотел использовать ВывестиТабличныйДокументВКоллекцию, но он КоллекцияПечатныхФорм требует как ТЗ. Видимо в этой цепочке не хватает какого-то звена. Какого только пока не понял. И скорее всего - это пара извилин в моей башке))
ЗЫ. БСП v2.3.6.
7. AndrewKop 20.06.19 15:17 Сейчас в теме
(5) Все, нашел. В Серверной процедуре формирования ТабДока
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ИмяМакета);
...
Формирование ТабличногоДокумента
...
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ИмяМакета, СинонимИмениМакета, ТабличныйДокумент);
КоллекцияПечатныхФорм = ОбщегоНазначения.ТаблицаЗначенийВМассив(КоллекцияПечатныхФорм);

И на клиенте уже:
УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, ОбъектНазначения, ВладелецФормы);

Спасибо еще раз всем, кто в теме ответил!
6. SlavaKron 20.06.19 15:02 Сейчас в теме
ТабДоки получить с сервера на клиенте нужно. Для примера:
&НаКлиенте
Процедура ПечатьПротокола(Команда)
	ТабДок = ПечатьПротоколаНаСервере();
	
	КоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("ПФ_MXL_ПечатьПротоколаКТУ");
	КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДок;   
	УправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
КонецПроцедуры
iCortezik; +1 Ответить
8. AndrewKop 20.06.19 15:44 Сейчас в теме
(6) Ну да. Так даже проще. Спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот