Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Печать документа по ссылке

Печать документа по ссылке
Я
   Dmitry_333
 
24.05.18 - 20:54
Доброго всем вечера!

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

СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000033", ТекущаяДата());
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(СсылкаНаДокумент);
КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
Строка = КоллекцияПечатныхФорм.Добавить();
Строка.ИмяВРЕГ = "РАСХОДНАЯНАКЛАДНАЯ";
Строка.ИмяМакета = "РасходнаяНакладная";

ОбъектыПечати = Новый СписокЗначений;
ОбъектыПечати.Добавить(СсылкаНаДокумент, "Документ_1");

Документы.РеализацияТоваровУслуг.Печать(МассивОбъектов, Ложь, КоллекцияПечатныхФорм, ОбъектыПечати, Ложь);

Но все заканчивается ошибкой 
{ОбщийМодуль.УправлениеПечатью.Модуль(54)}: Поле объекта не обнаружено (ТабличныйДокумент)
ОписаниеПечатнойФормы.ТабличныйДокумент = ТабличныйДокумент;

Подскажите, пожалуйста, чего не хватает.
И вообще, может все можно проще сделать и я лишнего нагородил?
 
 
   Cyberhawk
 
1 - 24.05.18 - 23:30
Ну как бы КоллекцияПечатныхФорм у тебя кустарная, обрезанная. Там и хранятся табдоки, если чо
   AlvlSpb
 
2 - 25.05.18 - 00:54
(0) КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
ТЗ это явно не ТабДок
Создавайте макет (таб док) в форме и обращайтесь к нему
   Dmitry_333
 
3 - 25.05.18 - 10:20
(2) Поясните пожалуйста, что значит создать макет, ведь я пытаюсь распечатать стандартный документ, макет которого уже создан и хранится в конфе.
   Dmitry_333
 
4 - 25.05.18 - 10:38
Переписал вот так. Теперь ошибки не выдает, но и на печать ничего не выходит.

СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000033", ТекущаяДата());
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(СсылкаНаДокумент);
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("РасходнаяНакладная");

ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ОбъектыПечати = Новый СписокЗначений;

Документы.РеализацияТоваровУслуг.Печать(МассивОбъектов,,КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
   ildary
 
5 - 25.05.18 - 10:53
(4) вот как делал я (возможно не оптимально, но работает):

    СсылкаНаВПФ      = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию( НаимОтчета, Истина );
    
    ТабДокиМассив    = Новый Массив;
    ПараметрыВывода = Неопределено;
    
    Парам = Новый Структура;
    Парам.Вставить( "ИдентификаторКоманды", ИдОтчета );
    Парам.Вставить( "ОбъектыНазначения"   , ОбъектыПечати );
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм( ИдОтчета );
    
    МодульДополнительныеОтчетыИОбработки = ОбщегоНазначения.ОбщийМодуль( "ДополнительныеОтчетыИОбработки" );
    МодульДополнительныеОтчетыИОбработки.ПечатьПоВнешнемуИсточнику( СсылкаНаВПФ, Парам, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода );
    
    Для Каждого Стр Из КоллекцияПечатныхФорм Цикл
        
        ТабДок = Стр.ТабличныйДокумент;
        
        СтруктураПечати = Новый Структура;
        СтруктураПечати.Вставить( "ТабДок", ТабДок );
        
        ТабДокиМассив.Добавить( СтруктураПечати );
        
    КонецЦикла;
   ildary
 
6 - 25.05.18 - 10:55
Ну и вызов:

            ТабДокиМассив = ЗаполнитьТабличныеДокументы( МассивЗаказКл, НаимОтчета, ИдОтчета );//здесь генерируются таб.доки

        Для Каждого ТабДок Из ТабДокиМассив Цикл//тут вывод таб.доков на экран

            
            СтруктураКоллекции.ТабличныйДокумент = ТабДок.ТабДок;
            
            УправлениеПечатьюКлиент.ПечатьДокументов( Коллекция,, ЭтаФорма );
            
        КонецЦикла;
   ildary
 
7 - 25.05.18 - 10:55
Где ЗаполнитьТабличныеДокументы() - это текст в (5)
   Dmitry_333
 
8 - 25.05.18 - 11:01
ilbary, благодарю. Буду пробовать.
   ildary
 
9 - 25.05.18 - 11:01
На здоровье, только я ilDary.
   Dmitry_333
 
10 - 25.05.18 - 11:31
Извини, ilDary
 
 Рекламное место пустует
   Dmitry_333
 
11 - 25.05.18 - 14:17
Прохожу отладчиком выполнение кода из (4), в модуле менеджера все ок, табличный документ создается и заполняется, но на выходе ничего. Может где-то еще параметр упущен?
   Cyberhawk
 
12 - 25.05.18 - 17:08
Кончай говнокодить уже. Как делать правильно Я сказал выше.
   Dmitry_333
 
13 - 25.05.18 - 18:15
В общем все решилось. Обращение к модулю менеджера была ошибкой, нужно было сразу стучаться в общий модуль "УправлениеПечатьюКлиент".
Вот так заработало:

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

&НаСервере
Функция ПечатьНаСервере()    
    
СсылкаНаДокумент = Документы.РеализацияТоваровУслуг.НайтиПоНомеру("0000-000033", ТекущаяДата());
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(СсылкаНаДокумент);

Возврат МассивОбъектов

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует