Вывод печатной формы с клиентским взаимодействием (вопрос пользователю)

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

КонецПроцедуры

в инете я нашла только одну более-менее подходящую информацию по этому вопросу. но не очень поняла как это реализовывать
https://infostart.ru/public/502742/

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


&НаСервере
Функция Проверка(ОбъектыНазначенияМассив)
	Возврат ПолучитьРеализацииНаДатуВыгрузки(ОбъектыНазначенияМассив[0], ОбъектыНазначенияМассив[0].Контрагент);
КонецФункции		

&НаКлиенте
Процедура ПослеЗакрытияВопроса(Результат, Параметры) Экспорт
 
    Если Результат = КодВозвратаДиалога.Да Тогда
		
		СформмироватьПечатнуюФормуНаСервере(Параметры); //вызывается функция в модуле объекта

	ИначеЕсли Результат = КодВозвратаДиалога.Нет Тогда
		
		СформмироватьПечатнуюФормуНаСервере(Параметры);

	КонецЕсли;	
 
КонецПроцедуры

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

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