Программный запуск зарегистрированной внешней обработки или отчёта

Версия для печатиPDF-версия

Если у вас в базе имеются зарегистрированные внешние обработки или отчёты, то иногда может возникнуть необходимость запускать их программно. Например, открыть внешний отчёт при нажатии на кнопку в интерфейсе пользователя.

Предлагаю универсальную процедуру для открытия внешних обработок/отчетов по коду элемента справочника ВнешниеОбработки.

Процедура ОткрытьВнешнююОбработку(Код = "") Экспорт 
	// Ищем элемент справочника Внешние обработки по переданному коду
	ОбработкаСсылка = Справочники.ВнешниеОбработки.НайтиПоКоду(Код);
	Если Не ЗначениеЗаполнено(ОбработкаСсылка) Тогда 
		 Сообщить("Не найдена зарегистрированная внешняя обработка с кодом " + Код);
		 Возврат;
	КонецЕсли;	 
	// Получаем внешнюю обработку/отчёт из найденного элемента справочника	
	ДвоичныеДанные = ОбработкаСсылка.ХранилищеВнешнейОбработки.Получить();
	// Сохраняем обработку во временный файл на диске
	ИмяФайла = ПолучитьИмяВременногоФайла();
	ДвоичныеДанные.Записать(ИмяФайла);
	// Получаем менеджер
	Менеджер = ?(ОбработкаСсылка.ВидОбработки = Перечисления.ВидыДополнительныхВнешнихОбработок.Отчет, ВнешниеОтчеты, ВнешниеОбработки);
	// Получаем и открываем основную форму обработки/отчёта
	Форма = Менеджер.ПолучитьФорму(ИмяФайла);
	Форма.Открыть();
	// Удаляем временный файл с диска
	УдалитьФайлы(ИмяФайла);
	
КонецПроцедуры

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

Полезность материала: 
3
Ваша оценка: Нет Средняя: 3 (2 оценок)
Оцените полезность материала
© При копировании материалов сайта ссылка на оригинал обязательна.