Запуск внешних отчетов и внешних обработок из программного кода

Часть внешних обработок и отчетов хотелось бы запускать из программного кода. Вот почти штатный способ это сделать. Это примерно как у улитки, у которой всё с собой (всё в базе).

 

 

            СсылкаНаОбъект = Справочники.ВнешниеОбработки.НайтиПоКоду(«000000019»);

            ЭтоОбработка = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Обработка, Истина, Ложь);
           
ЭтоОтчет = ?(СсылкаНаОбъект.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет
, Истина, Ложь);

            Если НЕ (ЭтоОбработка ИЛИ ЭтоОтчет) Тогда
                Возврат;
            КонецЕсли;

            ИмяФайла = ПолучитьИмяВременногоФайла();
           
ДвоичныеДанные = СсылкаНаОбъект.ХранилищеВнешнейОбработки.Получить
();
           
ДвоичныеДанные.Записать(ИмяФайла
);

            Попытка
                Если ЭтоОбработка Тогда
                   
Форма = ВнешниеОбработки.ПолучитьФорму(ИмяФайла
);
                Иначе
                   
Форма = ВнешниеОтчеты.ПолучитьФорму(ИмяФайла
);
                КонецЕсли;

                Если Не Форма = Неопределено Тогда
                    
Форма.Открыть();
                Иначе
                   
Сообщить(«Форма открываемой обработки или отчета не определена.», СтатусСообщения.БезСтатуса
);
                КонецЕсли;
            Исключение
                Если
ЭтоОбработка
Тогда
                   
Предупреждение(
«Выбранный файл не является внешней обработкой.
                                    |Либо, данная обработка не предназначена для
                                    |запуска в этой конфигурации.»
);
                Иначе
                   
Предупреждение(
«Выбранный файл не является внешним отчетом.
                                    |Либо, данный отчет не предназначена для
                                    |запуска в этой конфигурации.»
);
                КонецЕсли;
            КонецПопытки;

            УдалитьФайлы(ИмяФайла);



Спасибо alexk-is за Разукрашку на регулярных выражениях.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *