В обработчике печати не был сформирован табличный документ для

1. 1c_uZer 17.10.17 07:54 Сейчас в теме
Здравствуйте! Имеется печатная форма. Модуль объекта представлен ниже:

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

Возврат ПараметрыРегистрации;
КонецФункции

&НаСервере
Функция ПолучитьТаблицуКоманд() Экспорт
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции

&НаСервере
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL") Экспорт

НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление; 
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;

КонецПроцедуры

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСписанияТоваров") Тогда

		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм, 
			"АктСписанияТоваров",
			НСтр("ru = 'Акт о списании товаров'"),
			СформироватьПечатнуюФормуАктСписанияТоваров(УправлениеПечатью.МакетПечатнойФормы("ПФ_MXL_АктОСписанииТоваров"),МассивОбъектов, ОбъектыПечати));
			
		КонецЕсли;
		
КонецПроцедуры
	
Функция СформироватьПечатнуюФормуАктСписанияТоваров(Макет ,МассивОбъектов, ОбъектыПечати)

	УстановитьПривилегированныйРежим(Истина);
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
	ДопКолонка = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
	ВыводитьДопКолонку = ЗначениеЗаполнено(ДопКолонка);
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Документ.Ссылка КАК Ссылка,
	|	Документ.Номер КАК Номер,
	|	Документ.Дата КАК Дата,
	|	Документ.Склад КАК Склад,
	|	Документ.Подразделение КАК Подразделение,
	|	Документ.Организация КАК Организация,
	|	ПРЕДСТАВЛЕНИЕ(Документ.Склад) КАК СкладПредставление,
	|	ПРЕДСТАВЛЕНИЕ(Документ.Подразделение) КАК ПодразделениеПредставление,
	|	Документ.Организация.НаименованиеСокращенное КАК ОрганизацияПредставление,
	|	Документ.Организация.Префикс КАК Префикс,
	|	Документ.Склад.ТекущийОтветственный КАК Кладовщик,
	|	Документ.Склад.ТекущаяДолжностьОтветственного КАК КладовщикДолжность,
	|	Документ.Ответственный.ФизическоеЛицо КАК Ответственный
	|ИЗ
	|	Документ.СписаниеНедостачТоваров КАК Документ
	|ГДЕ
	|	Документ.Ссылка В(&МассивОбъектов)
	|
	|УПОРЯДОЧИТЬ ПО
	|	Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	СписаниеНедостачТоваровТовары.Ссылка КАК Ссылка,
	|	СписаниеНедостачТоваровТовары.НомерСтроки КАК НомерСтроки,
	|	СписаниеНедостачТоваровТовары.Номенклатура КАК Номенклатура,
	|	СписаниеНедостачТоваровТовары.Характеристика КАК Характеристика,
	|	СписаниеНедостачТоваровТовары.Количество КАК Количество,
	|	" + ?(ВыводитьДопКолонку, "СписаниеНедостачТоваровТовары.Номенклатура." + ДопКолонка +" КАК ДопКолонка,", "") + "
	|	СписаниеНедостачТоваровТовары.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
	|	СписаниеНедостачТоваровТовары.Характеристика.НаименованиеПолное КАК ХарактеристикаПредставление,
	|	ПРЕДСТАВЛЕНИЕ(СписаниеНедостачТоваровТовары.Серия) КАК СерияПредставление,
	|	ПРЕДСТАВЛЕНИЕ(СписаниеНедостачТоваровТовары.Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмеренияПредставление
	|ИЗ
	|	Документ.СписаниеНедостачТоваров.Товары КАК СписаниеНедостачТоваровТовары
	|ГДЕ
	|	СписаниеНедостачТоваровТовары.Ссылка В(&МассивОбъектов)
	|УПОРЯДОЧИТЬ ПО
	|	Ссылка,
	|	НомерСтроки
	|ИТОГИ ПО
	|	Ссылка";
	
	Результаты = Запрос.ВыполнитьПакет();
	ВыборкаПоДокументам = Результаты[0].Выбрать();
	ВыборкаПоТоварам 	= Результаты[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	РеквизитыДокумента 	= Новый Структура("Номер, Дата, Префикс");
	СинонимДокумента 	= НСтр("ru='Акт о списании товаров'");
	
	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеНедостачТоваров_АктОСписанииТоваро­в";
	
	Макет = УправлениеПечатью.МакетПечатнойФормы("ПФ_MXL_АктОСписанииТоваров");
	
	Если ПолучитьФункциональнуюОпцию("ИспользоватьПодразделения") Тогда
		ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	Иначе
		ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокБезПодразделения");
	КонецЕсли;
	
	ОбластьОснование  = Макет.ПолучитьОбласть("Основание");
	
	ОбластьНомераШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
	ОбластьКодовШапка  = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
	ОбластьТоварШапка  = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар");
	ОбластьДанныеШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
	Если Не ВыводитьДопКолонку Тогда
		Макет.Область("Товар").ШиринаКолонки = Макет.Область("Товар").ШиринаКолонки
			+ Макет.Область("КолонкаКодов").ШиринаКолонки;
	КонецЕсли;
	ОбластьНомераСтрока = Макет.ПолучитьОбласть("Строка|НомерСтроки");
	ОбластьКодовСтрока  = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
	ОбластьТоварСтрока  = Макет.ПолучитьОбласть("Строка|Товар");
	ОбластьДанныхСтрока = Макет.ПолучитьОбласть("Строка|Данные");
	
	ОбластьНомераПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы|НомерСтроки");
	ОбластьКодовПодвалТаблицы  = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
	ОбластьТоварПодвалТаблицы  = Макет.ПолучитьОбласть("ПодвалТаблицы|Товар");
	ОбластьДанныхПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы|Данные");
	
	ОбластьПодписи       	= Макет.ПолучитьОбласть("Подписи");
	ОбластьКоличествоВсего 	= Макет.ПолучитьОбласть("КоличествоВсего");
	
	ПервыйДокумент = Истина;
	Пока ВыборкаПоДокументам.Следующий() Цикл
		
		Если Не ПервыйДокумент Тогда
			ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ПервыйДокумент = Ложь;
		
		НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
		
		ЗаполнитьЗначенияСвойств(РеквизитыДокумента, ВыборкаПоДокументам);
		ОбластьЗаголовок.Параметры.Заполнить(ВыборкаПоДокументам);
		ОбластьЗаголовок.Параметры.ТекстЗаголовка = ОбщегоНазначенияУТКлиентСервер.СформироватьЗаголовокДокумента(РеквизитыДокумента, СинонимДокумента);
		ОбластьЗаголовок.Параметры.СкладПредставление = СкладыСервер.ПолучитьПредставлениеСклада(ВыборкаПоДокументам.СкладПредставление);
		ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабДокумент, Макет, ОбластьЗаголовок, ВыборкаПоДокументам.Ссылка);
		ТабДокумент.Вывести(ОбластьЗаголовок);
		
		// Вывод строк.
		Если НЕ ВыборкаПоТоварам.НайтиСледующий(Новый Структура("Ссылка",ВыборкаПоДокументам.Ссылка)) Тогда
			Продолжить;
		КонецЕсли;
		
		// Вывод шапки.
		ТабДокумент.Вывести(ОбластьНомераШапка);
		
		Если ВыводитьДопКолонку Тогда
			ОбластьКодовШапка.Параметры.ДопКолонка = ДопКолонка;
			ТабДокумент.Присоединить(ОбластьКодовШапка);
		КонецЕсли;
		
		ТабДокумент.Присоединить(ОбластьТоварШапка);
		ТабДокумент.Присоединить(ОбластьДанныеШапка);
		
		ВсегоНаименований = 0;
		
		ВыборкаПоСтрокам = ВыборкаПоТоварам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
		Пока ВыборкаПоСтрокам.Следующий() Цикл
			ОбластьНомераСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
			ТабДокумент.Вывести(ОбластьНомераСтрока);
			Если ВыводитьДопКолонку Тогда
				ОбластьКодовСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
				ТабДокумент.Присоединить(ОбластьКодовСтрока);
			КонецЕсли;
			
			// Номенклатура.
			ОбластьТоварСтрока.Параметры.Номенклатура = ВыборкаПоСтрокам.Номенклатура;
			ОбластьТоварСтрока.Параметры.НоменклатураПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
				ВыборкаПоСтрокам.НоменклатураПредставление,
				ВыборкаПоСтрокам.ХарактеристикаПредставление,
				ВыборкаПоСтрокам.СерияПредставление);
			ТабДокумент.Присоединить(ОбластьТоварСтрока);
			// Данные количестве.
			ОбластьДанныхСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
			ТабДокумент.Присоединить(ОбластьДанныхСтрока);
			ВсегоНаименований = ВсегоНаименований + 1;
		КонецЦикла;
		
		// Вывод итогов.
		ТабДокумент.Вывести(ОбластьНомераПодвалТаблицы);
		Если ВыводитьДопКолонку Тогда
			ТабДокумент.Присоединить(ОбластьКодовПодвалТаблицы);
		КонецЕсли;
		ТабДокумент.Присоединить(ОбластьТоварПодвалТаблицы);
		ТабДокумент.Присоединить(ОбластьДанныхПодвалТаблицы);
		ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%'");
		ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", ВсегоНаименований);
		ОбластьКоличествоВсего.Параметры.ИтоговаяСтрока = ТекстИтоговойСтроки;
		ТабДокумент.Вывести(ОбластьКоличествоВсего);
		
		// Вывод подписей.
		ОбластьПодписи.Параметры.Ответственный = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ВыборкаПоДокументам.Ответственный, ВыборкаПоДокументам.Дата);
		ОбластьПодписи.Параметры.Кладовщик = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ВыборкаПоДокументам.Кладовщик, ВыборкаПоДокументам.Дата);
		ОбластьПодписи.Параметры.КладовщикДолжность = СкладыСервер.ДолжностьОтветственногоЛицаСклада(ВыборкаПоДокументам.КладовщикДолжность);
		ТабДокумент.Вывести(ОбластьПодписи);
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаПоДокументам.Ссылка);
		
	КонецЦикла;
	
	Если ПривилегированныйРежим() Тогда
		УстановитьПривилегированныйРежим(Ложь);
	КонецЕсли;
	
	Возврат ТабДокумент;
	
КонецФункции
Показать


Когда я её загружаю в доп отчеты и обработки и пытаюсь вывести на печать у меня появляется ошибка:

{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(247)}: В обработчике печати не был сформирован табличный документ для: ПФ_MXL_АктОСписанииТоваров
			ВызватьИсключение(ТекстСообщенияОбОшибке);


как это исправить?
По теме из базы знаний
Найденные решения
2. harmer 1 17.10.17 11:24 Сейчас в теме
Разные имена макетов, а нужно указать одинаковые

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


УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСписанияТоваров")
Andrei_vin85; t278; houpl; Gadzhalik; simgo83; user802712; Silent64; dav1984; user611515_akorneev; F0x1C; Zlaya-Ferio; GerberT89; 1c_uZer; +13 Ответить
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. harmer 1 17.10.17 11:24 Сейчас в теме
Разные имена макетов, а нужно указать одинаковые

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


УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСписанияТоваров")
Andrei_vin85; t278; houpl; Gadzhalik; simgo83; user802712; Silent64; dav1984; user611515_akorneev; F0x1C; Zlaya-Ferio; GerberT89; 1c_uZer; +13 Ответить
3. 1c_uZer 17.10.17 13:08 Сейчас в теме
(2)теперь он пишет макет не найден.....
4. 1c_uZer 17.10.17 13:38 Сейчас в теме
5. krdnua 5 30.10.23 13:11 Сейчас в теме
СформироватьПечатнуюФормуАктСписанияТоваров(УправлениеПечатью.МакетПечатнойФормы("ПФ_MXL_АктОСписанииТоваров"),МассивОбъектов, ОбъектыПечати)); тут ошибка))
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

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

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день