Внешняя печатная форма (управляемое приложение)

1. user920004 25.04.18 13:00 Сейчас в теме
Добрый день! Пробую делать внешнюю печатную форму на основе имеющейся . Создала обработку, подключила, из документа по общей кнопке печать формы работает нормально. Для дальнейших экспериментов нужно открывать ее через файл и печатать от туда. Для этого добавила форму на ней сделала кнопку печать, по которой должна вызываться функция печати из модуля объекта, и выбор документа. При попытке печати выдается ошибка "Метод объекта не обнаружен (ПечатьФормаМ13) ", где "ПечатьФормаМ13" - это имя функции печати из общего модуля.

Функция ПолучитьОбъектОбработки()
	ОбъектОбработки = РеквизитФормыВЗначение("Объект");
	ЗаполнитьЗначенияСвойств(ОбъектОбработки, Объект);
	Возврат ОбъектОбработки;
КонецФункции


&НаКлиенте
Процедура Печать(Команда)
	
	ТабличныйДокумент = ПечатьНаСервере ();
	ТабличныйДокумент.Показать("Ок");
	
КонецПроцедуры

&НаСервере
	
	Функция ПечатьНаСервере()
	// Вставить содержимое обработчика.
	УстановитьПривилегированныйРежим(Истина);
	ОбработкаПФ = ПолучитьОбъектОбработки();
	
	МассивОбъектов = Новый Массив;
	МассивОбъектов.Добавить(Документ);
	ОбъектыПечати = Новый СписокЗначений;
	
	Возврат ОбработкаПФ.ПечатьФормаМ13(МассивОбъектов, ОбъектыПечати);
КонецФункции
Показать


Вот то что в модуле формы
По теме из базы знаний
Найденные решения
3. user705522_constantin_h 35 26.04.18 10:43 Сейчас в теме
ПечатьФормаМ13 экспортная?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Fe9_min 50 26.04.18 08:25 Сейчас в теме
Вы не правильно обращаетесь к процедуре модуля объекта.
Сделайте форму как в обработке, что я прикрепил.
Должен быть у обработке реквизит "СсылкаНаОбъект" с типом - ваш документ из которого собираетесь печатать.

про:
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("ПФ_АктПриемаОбразцов_Проб");

ПФ_АктПриемаОбразцов_Проб - текст должн быть таким же как и в процедуре СведенияОВнешнейОбработке() модуля объекта в строке:
НоваяКоманда.Идентификатор = "ПФ_АктПриемаОбразцов_Проб"; //Внешняя печатная форма

А так же как в процедуре Печать(...):
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
	"ПФ_АктПриемаОбразцов_Проб",
	"Акт приема образцов (проб)",
	ТабличныйДокумент);
Прикрепленные файлы:
ПФ_АктПриемаОбразцов(проб).epf
3. user705522_constantin_h 35 26.04.18 10:43 Сейчас в теме
ПечатьФормаМ13 экспортная?
4. user920004 27.04.18 11:48 Сейчас в теме
(3)Константин, да в этом была проблема. Забыла сделать ее экспортной.
5. Healer 1 27.04.18 12:02 Сейчас в теме
Вообще для внешних печатных форм в БП 3.0 обязательно необходимо наличие функции "СведенияОВнешнейОбработке": без неё Вы просто не подключите внешнюю печатную форму. Надеюсь, не забыли про неё?
6. Healer 1 27.04.18 12:03 Сейчас в теме
Пример такой функции:

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
	ПараметрыРегистрации.Вставить("Версия", "1.0");
	ПараметрыРегистрации.Вставить("Назначение", Новый Массив);
	ПараметрыРегистрации.Назначение.Добавить("Документ.ПоступлениеТоваровУслуг");
	ПараметрыРегистрации.Назначение.Добавить("Документ.РеализацияТоваровУслуг");
	ПараметрыРегистрации.Вставить("Наименование", "Акт о приемке товаров (ТОРГ-1)");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
	ПараметрыРегистрации.Вставить("Информация", "Акт о приемке товаров (ТОРГ-1)");
	ПараметрыРегистрации.Вставить("ВерсияБСП", "");
	
	РеквизитыТабличнойЧасти = Метаданные.Справочники.ДополнительныеОтчетыИОбработки.ТабличныеЧасти.Команды.Реквизиты;
	
	ТаблицаКоманд = Новый ТаблицаЗначений;
	ТаблицаКоманд.Колонки.Добавить("Представление", РеквизитыТабличнойЧасти.Представление.Тип);
	ТаблицаКоманд.Колонки.Добавить("Идентификатор", РеквизитыТабличнойЧасти.Идентификатор.Тип);
	ТаблицаКоманд.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
	ТаблицаКоманд.Колонки.Добавить("ПоказыватьОповещение", РеквизитыТабличнойЧасти.ПоказыватьОповещение.Тип);
	ТаблицаКоманд.Колонки.Добавить("Модификатор", РеквизитыТабличнойЧасти.Модификатор.Тип);
	ТаблицаКоманд.Колонки.Добавить("Скрыть",      РеквизитыТабличнойЧасти.Скрыть.Тип);
	
	НоваяКоманда = ТаблицаКоманд.Добавить();
  	НоваяКоманда.Представление = "Акт о приемке товаров (ТОРГ-1)";
  	НоваяКоманда.Идентификатор = "ТОРГ-1";
  	НоваяКоманда.Использование = "ВызовСерверногоМетода";
  	НоваяКоманда.ПоказыватьОповещение = Истина;
  		
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	ПараметрыРегистрации.Вставить("Разрешения", Новый Массив);

	Возврат ПараметрыРегистрации;

КонецФункции
Показать
7. Healer 1 27.04.18 12:04 Сейчас в теме
Функция должна находиться в модуле объекта обработки.
8. user920004 28.04.18 09:14 Сейчас в теме
(7)Да она у меня была в модуле объекта. И внешняя печатная форма подключилась нормально и работала из Документа (Перемещение Товаров) . Но мне нужно было сделать печать через Файл - Открыть. Для этого я делала форму с кнопкой. И вот по этой кнопке печать не работала, потому что я забыла функцию печати в модуле объекта сделать экспортной.
Оставьте свое сообщение

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