HelpF.pro

Как программно открыть внешнюю обработку?

В версии 8.2 приложение не работает непосредственно с локальными файлами, расположенными на компьютере. Файлы должны находиться на сервере.

Поэтому для открытия внешней обработки нужно выполнить следующую последовательность действий:
Передать файл внешней обработки на сервер
Подключить внешнюю обработку
Открыть форму внешней обработки

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

В четвертом параметре этого метода указывается признак интерактивного режима выбора файла внешней обработки. Если этот параметр Истина, то появляется диалог выбора файла, в котором можно выбрать файл для помещения в хранилище. В нашем примере этот параметр - Ложь, а путь к файлу, данные из которого будут помещены во временное хранилище, явно задан во втором параметре метода.

При вызове метода ПоместитьФайл() первым его параметром, АдресХранилища, мы указываем пустую строку. После выполнения метода в нее будет помещен путь к файлу внешней обработки во временном хранилище. Этот путь мы используем для того, чтобы подключить внешнюю обработку.

Подключение внешней обработки выполняется на сервере методом Подключить() менеджера внешних обработок. В качестве параметра ему передается путь к файлу внешней обработки во временном хранилище - АдресХранилища. Возвращает этот метод имя подключенной внешней обработки, - ИмяОбработки, - которое мы используем для того, чтобы открыть форму этой обработки.

Для открытия формы внешней обработки используется метод глобального контекста ОткрытьФорму(), в который передается имя формы в виде следующей строки: "ВнешняяОбработка."+ ИмяОбработки +".Форма". В приведенном варианте открывается основная форма обработки. Можно открыть также и неосновную форму обработки - об этом рассказывается в вопросе Как получить неосновную форму обработки?.
Копировать в буфер обмена

Код 1C v 8.2 УП
 &НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

//Помещаем обработку во временном хранилище

АдресХранилища = "";
Результат = ПоместитьФайл(АдресХранилища, "C:\ВнешняяОбработка.epf", , Ложь);
ИмяОбработки = ПодключитьВнешнююОбработку(АдресХранилища);

// Откроем форму подключенной внешней обработки

ОткрытьФорму("ВнешняяОбработка."+ ИмяОбработки +".Форма");

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

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

Возврат ВнешниеОбработки.Подключить(АдресХранилища);

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

При работе в внешними обработками нужно учитывать, что по-умолчанию они запускаются в безопасном режиме исполнения программного кода. Это значит, что некоторые возможности встроенного языка будут для них недоступны. Если есть уверенность, что внешняя обработка не содержит вредоносного кода, ее можно подключить в обычном режиме исполнения программного кода. Для этого используется третий параметр метода Подключить() менеджера внешних обработок.
Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1397.html