|
Печать документа по ссылке | ☑ | ||
---|---|---|---|---|
0
Dmitry_333
24.05.18
✎
20:54
|
Доброго всем вечера!
Написал вот код печати документа, сделал, как пишут, обращение к процедуре Печать() менеджера объекта, параметры завел согласно тем видам, что в этой процедуре. СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000033", ТекущаяДата()); МассивОбъектов = Новый Массив; МассивОбъектов.Добавить(СсылкаНаДокумент); КоллекцияПечатныхФорм = Новый ТаблицаЗначений; КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ"); КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета"); Строка = КоллекцияПечатныхФорм.Добавить(); Строка.ИмяВРЕГ = "РАСХОДНАЯНАКЛАДНАЯ"; Строка.ИмяМакета = "РасходнаяНакладная"; ОбъектыПечати = Новый СписокЗначений; ОбъектыПечати.Добавить(СсылкаНаДокумент, "Документ_1"); Документы.РеализацияТоваровУслуг.Печать(МассивОбъектов, Ложь, КоллекцияПечатныхФорм, ОбъектыПечати, Ложь); Но все заканчивается ошибкой {ОбщийМодуль.УправлениеПечатью.Модуль(54)}: Поле объекта не обнаружено (ТабличныйДокумент) ОписаниеПечатнойФормы.ТабличныйДокумент = ТабличныйДокумент; Подскажите, пожалуйста, чего не хватает. И вообще, может все можно проще сделать и я лишнего нагородил? |
|||
1
Cyberhawk
24.05.18
✎
23:30
|
Ну как бы КоллекцияПечатныхФорм у тебя кустарная, обрезанная. Там и хранятся табдоки, если чо
|
|||
2
AlvlSpb
25.05.18
✎
00:54
|
(0) КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
ТЗ это явно не ТабДок Создавайте макет (таб док) в форме и обращайтесь к нему |
|||
3
Dmitry_333
25.05.18
✎
10:20
|
(2) Поясните пожалуйста, что значит создать макет, ведь я пытаюсь распечатать стандартный документ, макет которого уже создан и хранится в конфе.
|
|||
4
Dmitry_333
25.05.18
✎
10:38
|
Переписал вот так. Теперь ошибки не выдает, но и на печать ничего не выходит.
СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000033", ТекущаяДата()); МассивОбъектов = Новый Массив; МассивОбъектов.Добавить(СсылкаНаДокумент); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("РасходнаяНакладная"); ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечати = Новый СписокЗначений; Документы.РеализацияТоваровУслуг.Печать(МассивОбъектов,,КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); |
|||
5
ildary
25.05.18
✎
10:53
|
(4) вот как делал я (возможно не оптимально, но работает):
СсылкаНаВПФ = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию( НаимОтчета, Истина ); ТабДокиМассив = Новый Массив; ПараметрыВывода = Неопределено; Парам = Новый Структура; Парам.Вставить( "ИдентификаторКоманды", ИдОтчета ); Парам.Вставить( "ОбъектыНазначения" , ОбъектыПечати ); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм( ИдОтчета ); МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль( "ДополнительныеОтчетыИОбработки" ); МодульДополнительныеОтчетыИОбработки.ПечатьПоВнешнемуИсточнику( СсылкаНаВПФ, Парам, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода ); Для Каждого Стр Из КоллекцияПечатныхФорм Цикл ТабДок = Стр.ТабличныйДокумент; СтруктураПечати = Новый Структура; СтруктураПечати.Вставить( "ТабДок", ТабДок ); ТабДокиМассив.Добавить( СтруктураПечати ); КонецЦикла; |
|||
6
ildary
25.05.18
✎
10:55
|
Ну и вызов:
ТабДокиМассив = ЗаполнитьТабличныеДокументы( МассивЗаказКл, НаимОтчета, ИдОтчета ); //здесь генерируются таб.доки Для Каждого ТабДок Из ТабДокиМассив Цикл //тут вывод таб.доков на экран СтруктураКоллекции.ТабличныйДокумент = ТабДок.ТабДок; УправлениеПечатьюКлиент.ПечатьДокументов( Коллекция,, ЭтаФорма ); КонецЦикла; |
|||
7
ildary
25.05.18
✎
10:55
|
Где ЗаполнитьТабличныеДокументы() - это текст в (5)
|
|||
8
Dmitry_333
25.05.18
✎
11:01
|
ilbary, благодарю. Буду пробовать.
|
|||
9
ildary
25.05.18
✎
11:01
|
На здоровье, только я ilDary.
|
|||
10
Dmitry_333
25.05.18
✎
11:31
|
Извини, ilDary
|
|||
11
Dmitry_333
25.05.18
✎
14:17
|
Прохожу отладчиком выполнение кода из (4), в модуле менеджера все ок, табличный документ создается и заполняется, но на выходе ничего. Может где-то еще параметр упущен?
|
|||
12
Cyberhawk
25.05.18
✎
17:08
|
Кончай говнокодить уже. Как делать правильно Я сказал выше.
|
|||
13
Dmitry_333
25.05.18
✎
18:15
|
В общем все решилось. Обращение к модулю менеджера была ошибкой, нужно было сразу стучаться в общий модуль "УправлениеПечатьюКлиент".
Вот так заработало: &НаКлиенте Процедура ОбработкаКоманды() МассивОбъектов = ПечатьНаСервере(); УправлениеПечатьюКлиент.ВыполнитьКомандуПечатиНаПринтер("Документ.РеализацияТоваровУслуг", "РасходнаяНакладная", МассивОбъектов, Новый Структура("Тип", "РасходнаяНакладная")); КонецПроцедуры &НаСервере Функция ПечатьНаСервере() СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000033", ТекущаяДата()); МассивОбъектов = Новый Массив; МассивОбъектов.Добавить(СсылкаНаДокумент); Возврат МассивОбъектов КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |