Добавить внешнюю печатную форму в обработку

1. BoiSaOne 07.06.22 14:30 Сейчас в теме
Добрый день, в УТ есть обработка "УправлениеПоступлением" в ней присутствует стандартная кнопка печати для документов "Приходный ордер на товары", которые расположены в динамическом списке "ОрдераВРаботе", мне нужно чтобы в списке выбора печати в обработке "УправлениеПоступлением" была видна моя внешняя печатная форма, каким образом можно её добавить? Для самого документа я добавил внешнюю печатную форму, форме списка и документа всё работает
По теме из базы знаний
Найденные решения
4. BoiSaOne 08.06.22 09:50 Сейчас в теме
(1)Я сделал через расширение, в модуле менеджера обработки "УправлениеПоступлением" в процедуре "ДобавитьКомандыПечати" добавил свою команду печати
&После("ДобавитьКомандыПечати")
Процедура Расш1_ДобавитьКомандыПечати(КомандыПечати)
	
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.МенеджерПечати = "Документ.ПриходныйОрдерНаТовары";
	КомандаПечати.Идентификатор = "ЗаданиеНаОтборРазмещение";
	КомандаПечати.Представление = НСтр("ru = 'Задание на отбор'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
	КомандаПечати.МестоРазмещения = "ПодменюПечать";
	ТипыОбъектовПечати = Новый Массив;
	ТипыОбъектовПечати.Добавить(Тип("ДокументСсылка.ПриходныйОрдерНаТовары"));
	КомандаПечати.ТипыОбъектовПечати = ТипыОбъектовПечати;
	
КонецПроцедуры
Показать

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

После этого всё заработало.
tetraren; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Airlord 07.06.22 15:28 Сейчас в теме
Добрый день! Расширение в руки - затаскиваем туда обработку и делаем все что хотим - ПФ, модули и т.д.
3. lekonst45 07.06.22 15:34 Сейчас в теме
Добрый день! Проверьте наличие команды "ДобавитьКомандыПечати" в событии "ПриСозданииНаСервере", если отсутствует можно добавить по аналогии с бсп.
4. BoiSaOne 08.06.22 09:50 Сейчас в теме
(1)Я сделал через расширение, в модуле менеджера обработки "УправлениеПоступлением" в процедуре "ДобавитьКомандыПечати" добавил свою команду печати
&После("ДобавитьКомандыПечати")
Процедура Расш1_ДобавитьКомандыПечати(КомандыПечати)
	
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.МенеджерПечати = "Документ.ПриходныйОрдерНаТовары";
	КомандаПечати.Идентификатор = "ЗаданиеНаОтборРазмещение";
	КомандаПечати.Представление = НСтр("ru = 'Задание на отбор'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
	КомандаПечати.МестоРазмещения = "ПодменюПечать";
	ТипыОбъектовПечати = Новый Массив;
	ТипыОбъектовПечати.Добавить(Тип("ДокументСсылка.ПриходныйОрдерНаТовары"));
	КомандаПечати.ТипыОбъектовПечати = ТипыОбъектовПечати;
	
КонецПроцедуры
Показать

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

После этого всё заработало.
tetraren; +1 Ответить
Оставьте свое сообщение

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