Как открыть форму внешней обработки или отчета программно

Как открыть форму внешней обработки или отчета программно

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

Программное открытие внешней обработки

Программное открытие внешней обработки состоит из нескольких этапов:

  1. Помещение внешней обработки во временное хранилище;
  2. Передача внешней обработки на сервер;
  3. Подключение внешней обработки на сервере;
  4. Открытие формы подключенной обработки на клиенте.

Рассмотрим описанные действия на примере. Открытие обработки производится при нажатии на кнопку (процедура КомандаОткрытьВнешнююОбработку()).

&НаКлиенте
Процедура КомандаОткрытьВнешнююОбработку(Команда)

    // Создание описания оповещения. В указанную процедуру будет передано управление после помещения файла во временное хранилище
    ОписаниеОповещения = Новый ОписаниеОповещения("ПоместитьФайлВХранилищеЗавершение", ЭтотОбъект);
    // Этап 1. Помещение обработки во временное хранилище
    НачатьПомещениеФайла(ОписаниеОповещения, , "D:\МояОбработка.epf", Ложь);

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

&НаКлиенте
Процедура ПоместитьФайлВХранилищеЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт

    // Этап2. Передача адреса временного хранилища на сервер для подключения обработки
    ИмяВнешнейОбработки = ПодключитьВнешнююОбработкуНаСервере(Адрес);
    // Этап 4. Откроем форму подключенной внешней обработки
    ОткрытьФорму("ВнешняяОбработка." + ИмяВнешнейОбработки + ".Форма");

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

&НаСервере
Функция ПодключитьВнешнююОбработкуНаСервере(АдресХранилища)

    // Этап 3. Подключение внешней обработки из временного хранилища
    Возврат ВнешниеОбработки.Подключить(АдресХранилища);

КонецФункции

Для передачи файлов с клиента на сервер (и наоборот) предназначено временное хранилище. Помещение файла во временное хранилище осуществляется методом

    НачатьПомещениеФайла(<ОписаниеОповещенияОЗавершении>, <Адрес>, <НачальноеИмяФайла>, <Интерактивно>, <УникальныйИдентификаторФормы>)

После успешного помещения файла во временное хранилище происходит передача управления в процедуру, указанную в описании оповещения (параметр <ОписаниеОповещенияОЗавершении>).

Далее вызывается серверная процедура ПодключитьВнешнююОбработкуНаСервере(), в которой осуществляется подключение внешней обработки функцией Подключить() менеджера внешних обработок. В первом параметре содержится адрес временного хранилища с внешней обработкой. Функция возвращает имя подключенной внешней обработки, по которому к ней можно будет обращаться.

Заключительным этапом осуществляется открытие внешней обработки методом ОткрытьФорму().

Данный код будет отрабатывать без ошибок даже в том случае, если у пользователя нет прав на открытие внешних обработок.

В представленном примере внешняя обработка должна храниться по фиксированному пути и иметь определенное имя: «D:\МояОбработка.epf». Для предоставления пользователю возможности интерактивно выбрать внешнюю обработку необходимо немного доработать код:

    НачатьПомещениеФайла(ОписаниеОповещения, , , Истина);

Программное открытие внешнего отчета

Алгоритм программного открытия формы внешнего отчета идентичен открытию формы внешней обработки. Отличие заключается в том, что для подключения отчета необходимо использовать тип ВнешниеОтчетыМенеджер вместо типа ВнешниеОбработкиМенеджер.

Рассмотрим пример. Открытие отчета производится при нажатии на кнопку (процедура КомандаОткрытьВнешнийОтчет()):

&НаКлиенте
Процедура КомандаОткрытьВнешнийОтчет(Команда)

    // Создание описания оповещения. В указанную процедуру будет передано управление после помещения файла во временное хранилище
    ОписаниеОповещения = Новый ОписаниеОповещения("ПоместитьФайлВХранилищеЗавершение", ЭтотОбъект);
    // Этап 1. Помещение отчета во временное хранилище
    НачатьПомещениеФайла(ОписаниеОповещения, , "D:\МойОтчет.erf", Ложь);

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

&НаКлиенте
Процедура ПоместитьФайлВХранилищеЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт

    // Этап2. Передача адреса временного хранилища на сервер для подключения обработки
    ИмяВнешнегоОтчета = ПодключитьВнешнийОтчетНаСервере(Адрес);
    // Этап 4. Откроем форму подключенной внешней обработки
    ОткрытьФорму("ВнешнийОтчет." + ИмяВнешнегоОтчета + ".Форма");

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

&НаСервере
Функция ПодключитьВнешнийОтчетНаСервере(АдресХранилища)

    // Этап 3. Подключение внешней обработки из временного хранилища
    Возврат ВнешниеОтчеты.Подключить(АдресХранилища);

КонецФункции

 

Смотри также:

Программное получение информации о компьютере и конфигурации
Как получить список открытых окон 1С
Как установить отбор в табличной части программно

Добавить комментарий

Ваш e-mail не будет опубликован.