ВПФ для не проведенных документов

1. denis-sqluev 02.03.18 07:55 Сейчас в теме
Здравствуйте!

в УТ 11 делаю ВПФ для Возвратов поставщику. Через команду Файл - Открыть эта обработка работает.

Не могу настроить, чтобы при добавлении ее в 1С, она работала.
Пишет Печатная форма недоступна.

Еще делал основываясь на статье http://infostart.me/public/656149/
в этом случае просто открывает пустую форму.

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
	Если ТипЗнч(МассивОбъектов) = Тип("СписокЗначений") Тогда
		МассивОбъектов = МассивОбъектов.ВыгрузитьЗначения();
	КонецЕсли;
		
	ИмяМакета = "ПФ_MXL_ВозвратПоставщику";
	ПараметрыВывода.Вставить("ИмяМакета", ИмяМакета);		
	
	ссылкаДок = МассивОбъектов[0];
	//управляем именем сохранения файла
	имяФСохр = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ссылкаДок.Номер) + " " + СокрЛП(ссылкаДок.Метаданные().Синоним) + " " + СокрЛП(ссылкаДок.Контрагент);	
	
	УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,	"ПФ_MXL_ВозвратПоставщику",	НСтр("ru='Возврат товаров'"),
		СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати, Неопределено, ПараметрыВывода),,, имяФСохр);
	
КонецПроцедуры
Показать


Подскажите, пожалуйста, с решением проблемы.


Заранее спасибо!
+
По теме из базы знаний
Найденные решения
5. BackinSoda 05.03.18 09:46 Сейчас в теме
(4) в модуле формы поменяй процедуру на эту :
&НаСервере
Процедура ЗаполнитьНаСервере()
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	МассивСсылок = Новый Массив;
	МассивСсылок.Добавить(объект.СсылкаНаОбъект);	
	ТабличныйДокумент = ОбработкаОбъект.СформироватьПечатнуюФорму(МассивСсылок, Новый СписокЗначений);
КонецПроцедуры


а в модуле объекта переименуй все "СсылкаНаОбъект" на "СсылкаНаОбъект2" чтоб не путать параметры, и добавь эту строку
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВозвратТоваровПоставщику_Накладная";
	
	Для Каждого СсылкаНаОбъект2 из МассивОбъектов Цикл
		
		Запрос = Новый Запрос(

ну и в конце закрой цикл
	УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
			
		КонецЦикла;
	КонецЦикла;

	Возврат ТабличныйДокумент;

зы: подчеркнул только те строки что надо добавить
+
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Spektr 1000 02.03.18 09:17 Сейчас в теме
Делал так:
1.Добавить форму, в модуле формы добавить процедуру Печать:
&НаКлиенте
Процедура Печать(ИмяКоманды, МассивОбъектов, ПараметрыПечати = неопределено, КоллекцияПечатныхФорм = неопределено, ОбъектыПечати = неопределено, ПараметрыВывода = неопределено) Экспорт

ВыполняемаяКоманда = Параметры;

ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");
ПараметрыОткрытия.ИсточникДанных = ВыполняемаяКоманда.ДополнительнаяОбработкаСсылка;
ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения");
ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды;

ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ВыполняемаяКоманда.ОбъектыНазначения;
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);

КонецПроцедуры // Печать()
Показать

2.В модуле обработки в функции СведенияОВнешнейОбработке() в параметрах вызова функции ДобавитьКоманду указать "ВызовКлиентскогоМетода":
Функция СведенияОВнешнейОбработке() Экспорт

ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;

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

// Администратор 07.08.2015
//ДобавитьКоманду(ТаблицаКоманд, "ЗаказКлиента_СчетНаОплату", "ЗаказКлиента_СчетНаОплату", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
// Печать непроведенного документа
ДобавитьКоманду(ТаблицаКоманд, "ЗаказКлиента_СчетНаОплату", "ЗаказКлиента_СчетНаОплату", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
// Администратор

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

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

КонецФункции
Показать
+
3. denis-sqluev 02.03.18 11:24 Сейчас в теме
(2) пишет
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(398)}: Метод объекта не обнаружен (Печать)
ФормаОбработки.Печать(ВыполняемаяКоманда.Идентификатор, ОбъектыНазначения);
+
4. denis-sqluev 05.03.18 07:44 Сейчас в теме
(2)Забыл параметры добавить на форме.

Теперь пишет Печатная форма не доступна
Прикрепленные файлы:
Возврат поставщику без проведения.epf
+
5. BackinSoda 05.03.18 09:46 Сейчас в теме
(4) в модуле формы поменяй процедуру на эту :
&НаСервере
Процедура ЗаполнитьНаСервере()
	ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
	МассивСсылок = Новый Массив;
	МассивСсылок.Добавить(объект.СсылкаНаОбъект);	
	ТабличныйДокумент = ОбработкаОбъект.СформироватьПечатнуюФорму(МассивСсылок, Новый СписокЗначений);
КонецПроцедуры


а в модуле объекта переименуй все "СсылкаНаОбъект" на "СсылкаНаОбъект2" чтоб не путать параметры, и добавь эту строку
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВозвратТоваровПоставщику_Накладная";
	
	Для Каждого СсылкаНаОбъект2 из МассивОбъектов Цикл
		
		Запрос = Новый Запрос(

ну и в конце закрой цикл
	УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
			
		КонецЦикла;
	КонецЦикла;

	Возврат ТабличныйДокумент;

зы: подчеркнул только те строки что надо добавить
+
6. denis-sqluev 05.03.18 10:04 Сейчас в теме
(5) Получилось !!!
Спасибо большое!!!
+
Внимание! Тема сдана в архив

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