Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 мар 2025, 18:06

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

Автор Yanawerg, 06 фев 2025, 08:41

0 Пользователей и 1 гость просматривают эту тему.

Yanawerg

Сделал новый макет добавил аналогично существующему уже в базе (поменял названия и всё что нужно что бы находился и заполнялся) но выдаёт эту ошибку.

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

Сам код:

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

ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

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

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

Функция ПечатьМонтажПВХНовый (ТабДок, Ссылка)
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "Монтаж";
Макет = ПолучитьМакет("Монтаж");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
              | МонтажИзделияИзПВХНовый.Ссылка,
              | МонтажИзделияИзПВХНовый.Номер,
              | МонтажИзделияИзПВХНовый.Дата,
              | МонтажИзделияИзПВХНовый.ЗаказПокупателя,
              | МонтажИзделияИзПВХНовый.СуммаПремии,
              | МонтажИзделияИзПВХНовый.СтоимостьМатериалов,
              | МонтажИзделияИзПВХНовый.ПлановаяСуммаПремии,
              | МонтажИзделияИзПВХНовый.ПлановаяСтоимостьМатериалов,
              | МонтажИзделияИзПВХНовый.ДатаЗавершения
              |ИЗ
              | Документ.МонтажИзделияИзПВХНовый КАК МонтажИзделияИзПВХНовый";
Запрос.Параметры.Вставить("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
ТабДокумент.Очистить();
ОбластьШапки.Параметры.Заполнить(Выборка);

Пока Выборка.Следующий() Цикл
ОбластьШапки.Параметры.Заполнить(Выборка);
ТабДокумент.Вывести(ОбластьШапки, Выборка.Уровень());
ВставлятьРазделительСтраниц = Истина;
КонецЦикла;
КонецФункции

Функция СтруктураДополнительныхДанныхФормы() Экспорт

Возврат ХранилищаНастроек.ДанныеФорм.СформироватьСтруктуруДополнительныхДанных("Материалы");

КонецФункции


Где я что не прописал или не верно прописал ?


Отсылает на общую процедуру

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

bsn-chita

Ну для начала у вас функция которая делает табдок ни чего не возвращает. Потом я бы поставил точку останова в начале этой функции и вычислил параметры (то ли там что вы ожидаете).

Yanawerg

bsn-chita, Это помогло, действительно открыл макет.
Но теперь проблема в том что он открыл его по всем существующим документам.
Как сделать что бы только по тому открыл который нужен ?
Я вроде нажал непосредственно в открытом документе что не так ?

bsn-chita

А запрос посмотрел там нет отбора :) все значит правильно работает. Нужно добавить секцию ГДЕ и все же посмотреть параметры по моему в первом передается массив ссылок (МассивОбъектов) если все правильно помню.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск