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

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

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

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

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

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

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

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


необходимо зарегистрироваться для просмотра ссылки