helpf.pro
Регистрация

v8: Внешняя обработка и печать

stanislavyakuza
11.08.2014 10:31Прочитано: 12869

Добрый день!Подскажите пожалуйста. Возникла необходимость сделать внешнюю обработку из "печать этикеток" Розница 2.0.На форме обработки есть кнопка "Печать" ниже код.

Код 1C v 8.2 УП
 
&НаКлиенте
Процедура Печать(Команда)
    ОчиститьСообщения();
    Объект.НажатаПечать = Истина;
    Если Объект.Товары.НайтиСтроки(Новый Структура("Выбран", Истина)).Количество() = 0 Тогда
        ПоказатьПредупреждение(,НСтр("ru = 'Не выбрано ни одного товара'"));
        Возврат;
    КонецЕсли;
    
    Если ЭтаФорма.ПроверитьЗаполнение() Тогда
        ПараметрКоманды = Новый Массив;   // Добавим объект обработки печати ценников и этикеток в массив параметров печати.
        ПараметрКоманды.Добавить(Объект); // В дальнейшем будем обращаться к объекту через ПараметрКоманды[0]
        
        РежимПечати = "Ценники,Этикетки";
        Если Объект.Режим = "ПечатьЦенников" Тогда
           РежимПечати = "Ценники";
        ИначеЕсли Объект.Режим = "ПечатьЭтикеток" Тогда
            РежимПечати = "Этикетки";
        КонецЕсли;
        
        УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(
            "Обработка.ПечатьЭтикетокИЦенников", // Для вызова метода менеджера обработки "Печать".
            РежимПечати,
           ПараметрКоманды,
            ЭтаФорма, // Форма владелец
            Новый Структура("Режим", Объект.Режим));
    КонецЕсли;
КонецПроцедуры


Процедура ВыполнитьКомандуПечати открывает "ОбщаяФорма.ПечатьДокументов" с параметрами и запускает процедуру "Печать" из менеджера обработки.

Так как у внешней обработки отсутствует менеджер я перенес код в модуль объекта обработки.

А далее как запустить существующие процедуры с помощью формы "ПечатьДокументов" не знаю.

Анализировал код формы "ПечатьДокументов" там проверяется если заполнен параметр ИстичникДанных тогда вызывается процедура

"ПечатьПоВнешнемуИсточнику". Но как с ней работать тоже не понятно.

Заранее спасибо за любую помощь.

Yandex
Возможно, вас также заинтересует
Реклама на портале
stanislavyakuza
11.08.2014 10:33Ответ № 1
Код 1C v 8.2 УП
 Код из формы ПечатьДокументов.&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    Перем КоллекцияПечатныхФорм, ПараметрыВывода;
    
    // Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
    Если Параметры.Свойство("АвтоТест") Тогда
        Возврат;
    КонецЕсли;
    
    Если Параметры.Свойство("ИсточникДанных") Тогда
        
        Если НЕ УправлениеПечатьюПереопределяемый.ПечатьПоВнешнемуИсточнику(
                    Параметры.ИсточникДанных,
                    Параметры.ПараметрыИсточника,
                    КоллекцияПечатныхФорм,
                    ОбъектыПечати,
                    ПараметрыВывода) Тогда
            Отказ = Истина;
            Возврат;
        КонецЕсли;
        
        КлючНастроек = Неопределено;
    Иначе
        
        ИмяМенеджераПечати = Параметры.ИмяМенеджераПечати;
        ИменаМакетов       = Параметры.ИменаМакетов;
        ПараметрКоманды    = Параметры.ПараметрКоманды;
        ПараметрыПечати    = Параметры.ПараметрыПечати;
        
        УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, ПараметрКоманды, ПараметрыПечати,
            КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
        
        КлючНастроек = Параметры.ИмяМенеджераПечати + "-" + Параметры.ИменаМакетов;
        
    КонецЕсли;
....................................
КонецПроцедуры;
stanislavyakuza
27.08.2014 11:27Ответ № 2
Вопрос закрыт!
Подсказка: Щелникни по Имени пользователя напротив ответа, и тем самым покажешь, что сообщение адресовано ему.
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.