8.х Вывод на печать объектов по ссылкам

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Paranoik0007, 28 июл 2016.

  1. TopicStarter Overlay
    Paranoik0007
    Offline

    Paranoik0007

    Регистрация:
    28 июл 2016
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Добрый день! помогите пожалуйста реализовать решение:
    Редакция 3.0 (3.0.43.252), внешняя обработка, формируется список, получаю ссылки на полученные объекты, при нажатии на команду нужно вывести на печать все объекты каждой строки. Ткните пальцем где копать, уже весь интернет облазил... я надеялся что всё будет просто, наподобие ...ПолучитьОбъект().Печать("названиемакета")... а на деле всё слишком замудрёно надо делать... [​IMG]

    Процедура, на которой остановился:

    &НаСервере
    Процедура ПечатьДокументовЛИЦНаСервере()
    Для каждого Строка из Объект.СписокЗагружаемыхДокументовЛИЦ Цикл
    Если ЗначениеЗаполнено(Строка.Документ) И ЗначениеЗаполнено(Строка.ДокументСФ) И ЗначениеЗаполнено(Строка.ДокументСчет) Тогда Иначе Продолжить КонецЕсли;
    Документ = Строка.Документ.ПолучитьОбъект();
    ДокументСФ = Строка.ДокументСФ.ПолучитьОбъект();
    ДокументСчет = Строка.ДокументСчет.ПолучитьОбъект();
    //ФормаДокумента = Документ.ПолучитьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта");
    //ФормаДокументаСФ = ДокументСФ.ПолучитьФорму("Документ.СчетФактураВыданный.ФормаОбъекта");
    //ФормаДокументаСчет = ДокументСчет.ПолучитьФорму("Документ.СчетНаОплатуПокупателю.ФормаОбъекта");
    КонеЦцикла;
    КонецПроцедуры
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    В менеджерах документов есть процедура Печать - пользуйтесь ей
  3. Yuriy_Alexandrovich
    Offline

    Yuriy_Alexandrovich Профессионал в 1С Команда форума

    Регистрация:
    15 сен 2011
    Сообщения:
    1.275
    Симпатии:
    76
    Баллы:
    54
    Доброго,
    если вы делаете внешнюю печатную форму, с использованием "серверного метода"
    тогда в модуле обработки у вас должна быть процедура :
    Код:
    // Процедура печати
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    в одном из параметров, " МассивОбъектов" содержаться ссылки на объекты, выбранные пользователем в форме (если решение типовое) списка (выделение через shift или ctrl)
    --- Объединение сообщений, 29 июл 2016 ---
    Если вы используете вызов "килентского метода" вы используете процедуру "Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт" в которой, по аналогии "МассивОбъектов" содержит ссылки на выбранные объекты

    А дальше, все зависит от логики реализованной вами в соотв. процедурах
  4. TopicStarter Overlay
    Paranoik0007
    Offline

    Paranoik0007

    Регистрация:
    28 июл 2016
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Друзья, пытаюсь вывести вот таким кодом:

    &НаСервере
    Процедура ПечатьДокументовЛИЦНаСервере()
    Для каждого Строка из Объект.СписокЗагружаемыхДокументовЛИЦ Цикл
    Если ЗначениеЗаполнено(Строка.Документ) И ЗначениеЗаполнено(Строка.ДокументСФ) И ЗначениеЗаполнено(Строка.ДокументСчет) Тогда Иначе Продолжить КонецЕсли;
    Документ = Строка.Документ.ПолучитьОбъект();
    ДокументСФ = Строка.ДокументСФ.ПолучитьОбъект();
    ДокументСчет = Строка.ДокументСчет.ПолучитьОбъект();
    //потом печатаем акты
    МассивДокумента = Новый Массив();
    МассивДокумента.Добавить(Документ);
    ПараметрыПечати = Новый Структура;
    КоллекцияПечатныхФормДокумента = Новый ТаблицаЗначений;
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("ИмяВРЕГ");
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("ИмяМакета");
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("ИмяФайлаПечатнойФормы");
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("Картинка");
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("Экземпляров");
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("ПолныйПутьКМакету");
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("СинонимМакета");
    КоллекцияПечатныхФормДокумента.Колонки.Добавить("ТабличныйДокумент");
    КоллекцияПечатныхФормДокументаСтрока = КоллекцияПечатныхФормДокумента.Добавить();
    КоллекцияПечатныхФормДокументаСтрока.ИмяВРЕГ = "Акт";
    КоллекцияПечатныхФормДокументаСтрока.ИмяМакета = "Акт";
    КоллекцияПечатныхФормДокументаСтрока.Экземпляров = 2;
    КоллекцияПечатныхФормДокументаТабДок = КоллекцияПечатныхФормДокумента.Получить(0).ТабличныйДокумент;
    КоллекцияПечатныхФормДокументаТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);
    ОбъектыПечатиДокумента = Новый СписокЗначений;
    ПараметрыВыводаДокумента = Новый Структура("ДоступнаПечатьПоКомплектно,ПараметрыОтправки");
    ПараметрыВыводаДокумента.ПараметрыОтправки = Новый Структура("Получатель,Текст,Тема");

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



    И в итоге выдает вот такую ошибку, не могу понять что не так....
    {Форма.Форма.Форма(847)}: Значение не является значением объектного типа (Напечатать)
    КоллекцияПечатныхФормДокументаТабДок.Напечатать(РежимИспользованияДиалогаПечати.НеИспользовать);


    что это может быть?

Поделиться этой страницей