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

1. XiPyPg 16.03.21 09:12 Сейчас в теме
Подскажите где загвоздка не могу сообразить, ругается и все:

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = Новый Структура;
	
	МассивНазначений = Новый Массив;
	МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
	
	ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
	ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
	ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Печать акта'"));
	ПараметрыРегистрации.Вставить("Версия", "1.3.1");
	ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
	ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Печать акта'"));	
	ТаблицаКоманд = ПолучитьТаблицуКоманд();
		
	ДобавитьКоманду(ТаблицаКоманд,
		НСтр("ru = 'Печать акта'"),
		"Акт",
		"ВызовСерверногоМетода",
		Истина,
		"ПечатьMXL");	
		
	ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
	
	Возврат ПараметрыРегистрации;
	
КонецФункции // СведенияОВнешнейОбработке()

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

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

Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм,ОбъектыПечати, ПараметрыВывода) Экспорт
   // ТабДок = 	СформироватьПечатнуюФормуАкта(МассивОбъектов);
	УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Макет1", "Акт", 
						СформироватьПечатнуюФормуАкта(МассивОбъектов));
	
	//ТабДок.Показать();	
КонецФункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. user633533_encantado 12 16.03.21 09:27 Сейчас в теме
(1) Для начала посмотрите в журнал регистрации на предмет ошибок выполнения: у вас тупа может быть избыток параметров в процедуре "Печать" -зависит от версии библиотеки.

И внешние обработки так уже не объявляют: можно сделать это красивее. Смотрите примеры в демке БСП.
2. DenisCh 16.03.21 09:15 Сейчас в теме
В СформироватьПечатнуюФормуАкта() надо смотреть
3. XiPyPg 16.03.21 09:17 Сейчас в теме
Там все ровно, через форму проверил все формируется:

Функция СформироватьПечатнуюФормуАкта(МассивОбъектов)  Экспорт
	Для каждого ТекДок из МассивОбъектов цикл
	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.АвтоМасштаб        = Истина;
	ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	ТабДокумент.ОтображатьСетку = Ложь;
	ТабДокумент.ОтображатьЗаголовки = Ложь;

	//ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УниверсальныйПередаточныйДокумент_ВПФ";
	ТабДокумент.ЭкземпляровНаСтранице = 1;
	Макет = ПолучитьМакет("Макет1");

	
	ДанныеПредставителяОрганизации = НовыеДанныеПредставителя();

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

	Обл.Параметры.СуммаПрописью = ЧислоПрописью(ТекДок.СуммаДокумента, ФормСтрока, ПарПредмета);
	Обл.Параметры.СумаНДС = Строка(ТекДок.Товары.ИТог("СуммаНДС") + ТекДок.Услуги.ИТог("СуммаНДС"));
	ТабДокумент.Вывести(Обл);
	Обл = Макет.ПолучитьОбласть("Подвал");
	Обл.Параметры.ДолжностьИсполнитель = ДанныеПредставителяОрганизации.Должность;
	Обл.Параметры.ИсполнительРуков =  ДанныеПредставителяОрганизации.Представление;
	Обл.Параметры.ИсполнительСокр =  ТекДок.Организация.НаименованиеСокращенное;
	
	Обл.Параметры.ДолжностьЗаказчик = ВЫборка.Должность;
	Обл.Параметры.ЗаказчикСокр = ТекДок.Контрагент.Наименование;
	Обл.Параметры.ЗаказчикРуков = ВЫборка.Фамилия + " "  + Лев(ВЫборка.Имя,1)+". " + Лев(Выборка.Отчество,1) + "." ;
	ТабДокумент.Вывести(Обл);
	КонецЦикла;
	Возврат ТабДокумент;

КонецФункции
Показать
4. N0t_F0und 10 16.03.21 09:21 Сейчас в теме
7. XiPyPg 16.03.21 09:32 Сейчас в теме
(4)
В обработчике печати не был сформирован табличный документ для: Акт
{ОбщийМодуль.УправлениеПечатью.Модуль(1647)}: ВызватьИсключение(ТекстСообщенияОбОшибке);
{ОбщаяФорма.ПечатьДокументов.Форма(492)}: УправлениеПечатью.ПечатьПоВнешнемуИсточнику(
{ОбщаяФорма.ПечатьДокументов.Форма(43)}: КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(234)}: ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, Форма);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(34)}: ВыполнитьОткрытиеПечатнойФормыЗавершение(ОбъектыНазначения, Параметры);
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(482)}: МодульУправлениеПечатьюСлужебныйКлиент.ВыполнитьОткрытиеПечатнойФормы(
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(260)}: ВыполнитьОткрытиеПечатнойФормы(ВыполняемаяКоманда, Форма, ВыполняемаяКоманда.ОбъектыПечати);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(95)}: МодульДополнительныеОтчетыИОбработкиКлиент.ВыполнитьНазначаемуюКомандуПечати(ОписаниеКоманды, Форма);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(20)}: ВыполнитьПодключаемуюКомандуПечатиЗавершение(Истина, ПараметрыВыполнения);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(246)}: ВыполнитьОбработкуОповещения(Обработчик, ПараметрКоманды);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(64)}: ПродолжитьВыполнениеКоманды(ПараметрыВыполнения);
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокументаОбщая.Форма(3701)}: ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
Показать
5. SlavaKron 16.03.21 09:25 Сейчас в теме
Второй параметр процедуры УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию должен быть равен идентификатору команды.
8. XiPyPg 16.03.21 09:33 Сейчас в теме
(5)Второй параметр это имя макет вроде.
9. XiPyPg 16.03.21 09:47 Сейчас в теме
Хз просто что куда смотреть, или еще не проснулся или лыжи не едут.
10. user633533_encantado 12 16.03.21 09:52 Сейчас в теме
(9) Ну для начала поставьте точку останова на процедуре "УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию"

Что там возвращает КоллекцияПечатныхФорм.Найти(ВРег(ИмяМакета), "ИмяВРЕГ");
11. XiPyPg 16.03.21 10:06 Сейчас в теме
(10)Все спасибо разобрался, в индентификатор надо было имя макета впилить.
12. puzo50 16.03.21 11:08 Сейчас в теме
ну и вы же понимаете, что будет возвращаться (ну и печататься) только последний табдок, если выберете 2+ штук.
Оставьте свое сообщение

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