gifts2017

Функция для печати пользовательских внешних печатных форм

Опубликовал Иван (Powervalid) в раздел Программирование - Практика программирования

Данная функция позволяет печатать пользовательские внешние печатные формы. Работает в УТ, в других конфах не проверял.

В функцию передается Ссылка на объект для которого есть внешняя печатная форма в справочнике "Дополнительные внешние печатные формы",Имя внешней формы как она задана в справочнике, количество экземпляров на печать, печать на принтер ,имя принтера.

 

Процедура НапечататьВнешнююФорму (СсылкаНаОбъект,ИмяВнешнийФормы,КоличествоЭкземпляров,НаПечать = Ложь,ИмяПринтера = "") Экспорт

     Запрос = Новый Запрос;

     Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ

     |    ВнешниеОбработкиПринадлежность.Ссылка КАК Ссылка,

     |    ВнешниеОбработкиПринадлежность.ЗаменяемаяПечатнаяФорма КАК ЗаменяемаяПечатнаяФорма, 

     |    ВнешниеОбработкиПринадлежность.Ссылка.ВидОбработки КАК ВидОбработки,

     |    ВнешниеОбработкиПринадлежность.НомерСтроки

     |ИЗ

     |    Справочник.ВнешниеОбработки.Принадлежность КАК ВнешниеОбработкиПринадлежность

     |ГДЕ

     |    

     |    ВнешниеОбработкиПринадлежность.СсылкаОбъекта = &Ссылка

     |    И (ВнешниеОбработкиПринадлежность.Ссылка.ВидОбработки = &ВидОбработкиПечатнаяФорма)

     |    И (НЕ ВнешниеОбработкиПринадлежность.ЗаменяемаяПечатнаяФорма ССЫЛКА Справочник.ВнешниеОбработки)

     |    И (НЕ ВнешниеОбработкиПринадлежность.Ссылка.ПометкаУдаления)

     |    И ВнешниеОбработкиПринадлежность.Ссылка.Наименование = &АктОтгрузки    ";

     

     ЭтоДокумент = Документы.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаОбъект));

     ЭтоСправочник = Справочники.ТипВсеСсылки().СодержитТип(ТипЗнч(СсылкаНаОбъект));

     Если ЭтоДокумент Тогда

         Запрос.УстановитьПараметр("Ссылка", Документы[СсылкаНаОбъект.Метаданные().Имя].ПустаяСсылка());   //СсылкаНаОбъект.Метаданные()          

     КонецЕсли;

     Если ЭтоСправочник Тогда

         Запрос.УстановитьПараметр("Ссылка", Справочники[СсылкаНаОбъект.Метаданные().Имя].ПустаяСсылка());

     КонецЕсли;

     Запрос.УстановитьПараметр("ВидОбработкиПечатнаяФорма", Перечисления.ВидыДополнительныхВнешнихОбработок.ПечатнаяФорма);     

     Запрос.УстановитьПараметр("АктОтгрузки", ИмяВнешнийФормы);                                                           

     Выборка = Запрос.Выполнить().Выбрать();

     Выборка.Следующий();

     СтруктураРасшифровки = Новый Структура("ВидПечатнойФормы, СсылкаНаВнешнююОбработку, ЗаменяемаяПечатнаяФорма, НомерСтроки", 

     Выборка.ВидОбработки,Выборка.Ссылка, Выборка.ЗаменяемаяПечатнаяФорма, Выборка.НомерСтроки);

     

     ТабДок = УниверсальныеМеханизмы.НапечататьВнешнююФорму(СсылкаНаОбъект,СтруктураРасшифровки);

    ТабДок.ИмяПринтера = ИмяПринтера;

    ТабДок.КоличествоЭкземпляров = КоличествоЭкземпляров;

    Если Не НаПечать Тогда

        ТабДок.Показать();

    Иначе

        Попытка

            ТабДок.Напечатать();

        Исключение

            Сообщить(ОписаниеОшибки());

        КонецПопытки

    КонецЕсли;

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

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа