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

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

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

После этого всё заработало.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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 = 'Задание на отбор'"),
			ТабДок);
	КонецЕсли;
	
КонецПроцедуры
Показать

После этого всё заработало.
Оставьте свое сообщение
Вакансии
Программист 1С
Кемерово
зарплата от 200 000 руб.
Полный день

Программист 1С
Киров (Кировская обл.)
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 150 000 руб.
Полный день

Архитектор 1С
Москва
зарплата от 250 000 руб.
Полный день

1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день