|
В обработчике печати не был сформирован табличный документ | ☑ | ||
---|---|---|---|---|
0
Rizhij_Nikitos
04.07.12
✎
12:19
|
Сижу парюсь с подключаемыми внешними печатными формами для упавляемой УТ 11.0.8.8.
В примере по этой теме есть такая штука, когда после того как выполнен запрос, выполняется строка ФормированиеПечатныхФорм.ЗаполнитьТабличныйДокументСчетЗаказ(ТабличныйДокумент, Запрос, ОбъектыПечати, Тип); Которая, якобы, заполняет переданный табличный документ из запроса(я правда не очень понимаю по какому макету это делается и как это вообще работает), однако, в новой редакции нет стандартной функции в общем модуле ФормированиеПечатныхФорм.ЗаполнитьТабличныйДокументСчетЗаказ, да и макет я свой хочу использовать и самостоятельно перебрать запрос да засунуть куда что надо. В общем виде выглядит все примерно так: УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; Запрос = Новый Запрос(); Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов); Запрос.Текст = Пишем запрос Дальше в оригинале происходит магическая: ФормированиеПечатныхФорм.ЗаполнитьТабличныйДокументСчетЗаказ(ТабличныйДокумент, Запрос, ОбъектыПечати, Тип); Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КонецЕсли; Возврат ТабличныйДокумент; А я делаю это руками, то есть: Выборка=Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Макет=ПолучитьМакет("Макет"); Область=Макет.ПолучитьОбласть("Шапка"); Область.Параметры.Номер=Выборка.Номер; Область.Параметры.Наименование=Выборка.Наименование; Область.Параметры.Килент=Выборка.ПартнерСсылка; ТабличныйДокумент.Вывести(Область); Выборка.Сбросить(); Область=Макет.ПолучитьОбласть("Данные"); Пока Выборка.Следующий() Цикл Область.Параметры.НомерСтроки=Выборка.НомерСтроки; Область.Параметры.Товар=Выборка.НоменклатураНаименование; Область.Параметры.ЕдиницаИзмерения=Выборка.УпаковкаЕдиницаИзмеренияНаименование; Область.Параметры.Код=Выборка.НоменклатураКод; Область.Параметры.Изготовитель=Выборка.НоменклатураАртикул; Область.Параметры.Отпустить=Выборка.Количество; ТабличныйДокумент.Вывести(Область); КонецЦикла; Область=Макет.ПолучитьОбласть("Подвал"); ТабличныйДокумент.Вывести(Область); И так же выполняю Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КонецЕсли; Возврат ТабличныйДокумент; На что получаю ошибку: {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(69)}: В обработчике печати не был сформирован табличный документ для: Упаковочный лист ВызватьИсключение(ТекстСообщенияОбОшибке); Кто таким занимался, может подскажете - что не так или как лучше сделать, иначе? |
|||
1
Pro-tone
модератор
04.07.12
✎
12:22
|
Я бы советовал ЗаполнитьТабличныйДокументСчетЗаказ() перенести в модуль печ.формы и делать там что захочешь (устанавливать макеты, например)
|
|||
2
sanja26
04.07.12
✎
12:23
|
парметры наверно не так используются
|
|||
3
Rizhij_Nikitos
04.07.12
✎
12:30
|
(1) Дело в том, что ЗаполнитьТабличныйДокументСчетЗаказ() в УТ 11.0.8.8 НЕТ.
|
|||
4
Rizhij_Nikitos
04.07.12
✎
12:30
|
(2) да, я сам докопался уже до параметров, проверяю. Если запашет, я отпишу, закроем тему.
|
|||
5
Pro-tone
модератор
04.07.12
✎
12:37
|
(3) ну так скопируй всю процедуру к себе в модуль печформы, вызывай и колбась ее. Отлаживать намного легче даже.
|
|||
6
Rizhij_Nikitos
04.07.12
✎
12:47
|
(5) это точно не выход.
Кстати нашел как отлаживать внешние печатные формы в конфигураторе в управляемых приложениях безо всяких обработок. Надо поставить точку останова в Общий модуль - ДополнительныеОтчетыИОбработки - Процедура ПечатьПоВнешнемуИсточнику - строка ВнешняяОбработкаОбъект.Печать И по Ф11 залезем в свою обработину. |
|||
7
Pro-tone
модератор
04.07.12
✎
12:48
|
(6) это точно выход. Потому что процедуру ты можешь тогда менять так как тебе надо, а не как прописано в общем модуле. Дело твое в общем.
|
|||
8
Rizhij_Nikitos
04.07.12
✎
12:54
|
(7) Как минимум мне эта процедура не нужна, потому что она по своему заполняет табличный документ, а мне надо по моему макету это сделать.
|
|||
9
sanja26
04.07.12
✎
12:56
|
Процедура Печать(МассивОбъектов,
КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина; //Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураВыданный1137") Тогда ТабличныйДокумент = ПечатьСчетаФактуры(МассивОбъектов, ОбъектыПечати); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, "СчетФактураВыданный1137_МЕТРО", "СчетФактураВыданный1137_МЕТРО", ТабличныйДокумент ); //КонецЕсли; //Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетФактураВыданный1137ПечатьВВалюте") Тогда // ПечатьСчетаФактуры(МассивОбъектов, ОбъектыПечати, Истина)); //КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |