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

Получение произвольной формы внешней обработки в управляемом приложении

Получение произвольной формы внешней обработки в управляемом приложении

В наличии

В 8.2 1С подложила разработчикам достаточно большую свинью — получить одну форму внешнего отчета из другой напрямую не получается, т.к. необходимо указать полный путь к форме. Для решения проблемы требуется подключить отчет к конфигурации. Всю голову сломал, пока дошел до данной реализации, надеюсь кому-нибудь поможет…

Категория:

Описание

 

 

Прописываем в форме следующий код:

 

&НаКлиенте

 

Функция ПолучитьФормуВнешнегоОтчета(ИмяФормы)

 

    АдресХранилища = "";

 

    ИмяОтчета = ПолучитьИмяВнешнегоОтчета();

 

    Результат = ПоместитьФайл(АдресХранилища, ИмяОтчета, , Ложь);

 

    ИмяВнешнегоОтчета = ПодключитьВнешнийОтчет(АдресХранилища);

 

    Возврат ПолучитьФорму("ВнешнийОтчет."+ИмяВнешнегоОтчета +".Форма.ФормаСотрудника",,ЭтаФорма);

 

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



&НаСервере

 

Функция ПолучитьИмяВнешнегоОтчета()

 

    Возврат РеквизитФормыВЗначение("Отчет").ИспользуемоеИмяФайла;

 

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

 

&НаСервере

 

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

 

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

 

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

 


Затем получаем форму на клиенте вызовом процедуры ПолучитьФормуВнешнегоОтчета(ИмяФормы), где ИмяФормы — строка с именем нужной формы.

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

Идея сыровата, но может кому поможет…

has been added to your cart:
Оформление заказа