Внешние печатные формы, не выводится макет

1. user1057498 06.06.22 10:39 Сейчас в теме
Добрый день. Есть внешняя печатная форма, но при нажатие на печать с клиента, макет на печать не выводится, при этом не каких ошибок нет, не подскажите как исправить
Функция Печать(Идентификатор,назначение,МассивОбъектов) Экспорт 
	
	//Адрес = ;
	//обр = ВнешниеОбработки.Создать(Адрес, Ложь);
	//обр.СсылкаНаОбъект = ЭтотОбъект.СсылкаНаОбъект;
	//Возврат обр.Печать();
	
	ЗаполнитьРеквизитыПечати();
	Если НЕ ПроверитьЗаполнение() Тогда
		Возврат Неопределено;		
	КонецЕсли;           
	
	ТабДок = Новый ТабличныйДокумент;
	Макет = ЭтотОбъект.ПолучитьМакет("ПФ_MXL_УПД");
	
	ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
	СтруктураДанныеПечатиШапки = ДанныеПечатиШапки(назначение);
	ОбластьМакета.Параметры.Заполнить(СтруктураДанныеПечатиШапки);
	//ОбластьМакета.Параметры.ИдентификаторГосКонтракта = "Идентификатор государственного контракта, договора (соглашения) (при наличии): " +
	//													СтруктураДанныеПечатиШапки.ИдентификаторГосКонтракта;
	ТабДок.Вывести(ОбластьМакета);
	
	
	ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
	ТабДок.Вывести(ОбластьМакета);
	ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Области.ЗаголовокТаблицы;
	
	ОбластьМакета = Макет.ПолучитьОбласть("Строка");
	ТаблицаПечатиТоваров = ТаблицаПечатиТоваров(назначение); // быково ТаблицаПечатиТоваров = ТаблицаПечатиТоваров(МассивОбъектов);
	Для каждого СтрокаТаблицы Из ТаблицаПечатиТоваров Цикл
		
		ОбластьМакета.Параметры.Заполнить(СтрокаТаблицы);
		ТабДок.Вывести(ОбластьМакета);			
		
	КонецЦикла; 
	
	ОбластьМакета = Макет.ПолучитьОбласть("Итого");
	ОбластьМакета.Параметры.ИтогоСтоимость = ТаблицаПечатиТоваров.Итог("Стоимость");
	ОбластьМакета.Параметры.ИтогоСуммаНДС = ТаблицаПечатиТоваров.Итог("СуммаНДС");
	ОбластьМакета.Параметры.ИтогоВсего = ТаблицаПечатиТоваров.Итог("Всего");	
	ТабДок.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
	СтруктураДанныеПечатиПодвала = ДанныеПечатиПодвала(назначение);
	ОбластьМакета.Параметры.Заполнить(СтруктураДанныеПечатиПодвала);
	ТабДок.Вывести(ОбластьМакета);
	
	ОбластьМакета = Макет.ПолучитьОбласть("ПодвалНакладной");
	СтруктураДанныеПечатиПодвалаНакладной = ДанныеПечатиПодвалаНакладной(назначение);
	ОбластьМакета.Параметры.Заполнить(СтруктураДанныеПечатиПодвалаНакладной);
	ТабДок.Вывести(ОбластьМакета);	
	
	ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	ТабДок.АвтоМасштаб = Истина;
	ТабДок.КлючПараметровПечати = "MTF-10122, универсальный передаточный документ";
	
	ТабДок.ВерхнийКолонтитул.НачальнаяСтраница = 2;
	ТабДок.ВерхнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
	ТабДок.ВерхнийКолонтитул.ТекстСлева = СтруктураДанныеПечатиШапки.Номер;
	ТабДок.ВерхнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы]";
	ТабДок.ВерхнийКолонтитул.Выводить = Истина;
	
	КоличествоСтраниц = ТабДок.КоличествоСтраниц();
	ПредставлениеКоличестваЛистов = "Документ составлен на " + КоличествоСтраниц + " " +
	ФормаМножественногоЧисла(КоличествоСтраниц, "листе", "листах", "листах");

	ОбластьКоличествоЛистов = ТабДок.НайтиТекст("#КоличествоЛистов");
	ОбластьКоличествоЛистов.Текст = ПредставлениеКоличестваЛистов;	
	
	//ТабДок.Показать(""); //быково
	Возврат ТабДок;
	
КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. petleon 9 06.06.22 16:09 Сейчас в теме
(1) раскомментированная строка "ТабДок.Показать()" тоже ничего не показывает?
6. user1057498 06.06.22 16:26 Сейчас в теме
(4) сней выдает ошибку, что типа её можно только на клиенте использовать
11. petleon 9 06.06.22 16:56 Сейчас в теме
(6) процедуру печать переопределите в форме обработки (вид команды "ВызовКлиентскогоМетода").
12. user1057498 06.06.22 17:10 Сейчас в теме
(11)
ВызовКлиентскогоМетода
пробовал, не помогает
2. VZyryanov 06.06.22 11:08 Сейчас в теме
В БП 3.0 функция Печать в модуле объекта ВПФ выглядит по-другому:
Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	Наименование = "(ИС КФ) М-11";
	НаименованиеДляПользователя = "(ИС КФ) М-11";
	ТабДокументНаПечать = СформироватьТабличныйДокумент(МассивОбъектов);
	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, Наименование) Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
						Наименование, НаименованиеДляПользователя,
						ТабДокументНаПечать);	
	КонецЕсли;
КонецФункции
Показать
3. user1057498 06.06.22 15:52 Сейчас в теме
(2)эта впф не для бп 3.0, а для паевые фонды. Там нету много чего, что есть в бп
5. VZyryanov 06.06.22 16:13 Сейчас в теме
(3) Если реализовано на БСП, то должно быть похоже.
Ваша функция Печать ничего не выводит ни на экран, ни на принтер. Раскомментируйте //ТабДок.Показать(""); Если функция вообще вызывается, то сформированный ТабДок выведется на экран.
7. user1057498 06.06.22 16:27 Сейчас в теме
(5)сней выдает ошибку, что типа её можно только на клиенте использовать , просто сама обработка делалась на файловой базе, и там как раз работала с таб.показать, а на серверной базе выдает ошибку
8. Ravil_ 06.06.22 16:32 Сейчас в теме
(7) ну верни табдок на клиент. Вынеси код на форму, сделай там кнопку да и выведи
9. user1057498 06.06.22 16:37 Сейчас в теме
(8)вот с этим и ковыряюсь, у меня с реквизитами для печати тогда проблема выходит
10. VZyryanov 06.06.22 16:41 Сейчас в теме
(7) Т.е. функция вызывается. Смотрите откуда она вызывается.
В функции СведенияОвнешнейОбработке задано, какой метод вызывается ВызовСерверногоМетода или ВызовКлиентскогоМетода. Соответственно вызывается функция Печать из модуля объекта или модуля формы. У вас в модуле объекта в Печать параметры не такие, как нужно. Наверное, вызывается Печать из модуля формы. В модуле формы и выводите ТабДок.
Оставьте свое сообщение

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