Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Печать Отчета на принтер прграммно          
Constantus Подменю пользователя
сообщение 10.03.17, 14:46
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, форумчане!

УТ 10.3.20.1, Моби-С 5.5, "ABBYY Ukraine", обычные

Для вывода на экран результата отчета применяется следующий код:

 обработка_печати = Отчеты.ПечатьТоваровИзРейса1.Создать();
обработка_печати.Рейс = Рейс;
обработка_печати.ДатаПечати = Рейс.ДатаДоставки;
обработка_печати.БезСумм = БезСумм;
обработка_печати.ТолькоИтоги = ТолькоИтоги;
            
форма = обработка_печати.ПолучитьФорму();
форма.ЭлементыФормы.Рейс.Доступность = Ложь;
форма.Открыть();


Как вывести Отчет сразу на принтер???

Flexy Подменю пользователя
сообщение 10.03.17, 14:52
Сообщение #2

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Покажите код, который формирует табличный документ в обработке печати.

Constantus Подменю пользователя
сообщение 10.03.17, 14:58
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Flexy @ Сегодня, 17:52 * ,


Процедура ПриОткрытии()
    // Вставить содержимое обработчика.
    
    для Каждого Вариант из СхемаКомпоновкиДанных.ВариантыНастроек Цикл
        ЭлементыФормы.ВариантОтчета.СписокВыбора.Добавить(Вариант.Имя, Вариант.Представление);    
    КонецЦикла;
    
    Если БезСумм Тогда
        КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти("БезСумм").Настройки);
    ИначеЕсли ТолькоИтоги Тогда
        КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти("ТолькоИтоги").Настройки);
    Иначе
        КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.ВариантыНастроек.Найти("Основной").Настройки);
    КонецЕсли;    

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

    Настройки = КомпоновщикНастроек.Настройки;
    
    ПараметрСКД = Настройки.ПараметрыВывода.Элементы.Найти("Заголовок");
    ПараметрСКД.Значение = "Подбор товаров к отгрузке: " + Рейс.Экспедитор.Наименование + " " + Формат(ДатаПечати,"ДЛФ=D");
    ПараметрСКД.Использование = Истина;
    

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки,,Тип("ГенераторМакетаКомпоновкиДанных"));//ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки); //ВнешнийНабор

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.ОтображатьПроцентВывода = Истина;
    ПроцессорВывода.УстановитьДокумент(ЭлементыФормы.Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

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


Flexy Подменю пользователя
сообщение 10.03.17, 15:02
Сообщение #4

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Процедура ПриОткрытии() Экспорт
...
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
Если ПечатьНаПринтер Тогда
ТабДок.Напечатать();
КонецЕсли;
...


обработка_печати = Отчеты.ПечатьТоваровИзРейса1.Создать();
обработка_печати.Рейс = Рейс;
обработка_печати.ДатаПечати = Рейс.ДатаДоставки;
обработка_печати.БезСумм = БезСумм;
обработка_печати.ТолькоИтоги = ТолькоИтоги;
// Flexy
форма = обработка_печати.ПолучитьФорму();
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Печатать сразу на принтер?", Режим);
Если Ответ = КодВозвратаДиалога.Да Тогда
обработка_печати.ПечатьНаПринтер = Истина;
Форма.ПриОткрытии();
Возврат;
КонецЕсли;
//-----        

форма.ЭлементыФормы.Рейс.Доступность = Ложь;
форма.Открыть();


Сообщение отредактировал Flexy - 10.03.17, 15:10

Спасибо сказали: Constantus,

Constantus Подменю пользователя
сообщение 10.03.17, 15:14
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Flexy @ Сегодня, 17:52 * ,


Благодарю за наводку. В Отчете добавил реквизит "НаПринтер". Передал его значение:

обработка_печати.НаПринтер = ПечатьНаПринтер;


В отчете добавил код:

    Если НаПринтер Тогда
        ТабДок.Напечатать();
    КонецЕсли;


Далее при вызове печати изменил код:

             форма = обработка_печати.ПолучитьФорму();

             форма.ЭлементыФормы.Рейс.Доступность = Ложь;
             форма.Открыть();
             Если ПечатьНаПринтер Тогда
                   форма.Закрыть();
             КонецЕсли;


Вроде работает, но на сколько оптимален?

Flexy Подменю пользователя
сообщение 10.03.17, 15:16
Сообщение #6

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Зачем открывать форму?
Сделайте процедуру ПриОткрытии Экспортной.
Процедура ПриОткрытии() Экспорт

И вызывайте из той формы от куда идет вызов обработки:
 обработка_печати.ПечатьНаПринтер = Истина;
Форма.ПриОткрытии(); // тут отработает алгоритм из процедуры "ПриОткрытии" формы обработки печати.
Возврат;


Сообщение отредактировал Flexy - 10.03.17, 15:19

Constantus Подменю пользователя
сообщение 10.03.17, 15:16
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Flexy @ Сегодня, 18:02 * ,

Почти угадал icon_beer17.gif

Благодарю!!!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 14:18
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!