Каталог решений - Как открыть или получить форму внешней обработки/отчета из другой формы обработки/отчета (Управляемые формы). Очередной пример

Как открыть или получить форму внешней обработки/отчета из другой формы обработки/отчета (Управляемые формы). Очередной пример

Как открыть или получить форму внешней обработки/отчета из другой формы обработки/отчета (Управляемые формы). Очередной пример

В наличии

Описание проблемы: в управляемых формах 1С: Предприятия 8.2. невозможно вызвать другую форму объекта (внешняя обработка, отчет и т.п.) привычным методом обычных форм.

Категория:

Описание

Описание проблемы: в управляемых формах 1С: Предприятия 8.2. невозможно вызвать другую форму объекта (внешняя обработка, отчет и т.п.) привычным методом обычных форм (ПолучитьФорму(«ФормаОбработки», ЭтаФорма).ОткрытьМодально();), так как необходимо указывать полный путь к форме. Почему девелоперы 1С так сделали, выяснять бесполезно, ибо неисповедимы пути господни компании Нуралиева и Ко.
В сети предлагаются несколько решений. От примитивного ОткрытьФорму(«ВнешняяОбработка.ИмяОбработки.Форма.ИмяФормы»);, до навороченных с помещением обработки во временное хранилище с последующим подключением, вызовом WScript.Shell, и всё это с использованием кучи серверных процедур.

Предлагаю ещё один, на этот раз совсем простой и универсальный метод определения полного пути к форме объекта, полностью клиентский, основанный на замещении имени текущей формы переданным значением. Преимуществом  метода является то, что при внедрении внешней обработки/отчёта в конфигурацию или переименовании объекта, не требуется изменять вызовы форм. 

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

 

// Возвращает полный путь к форме внешней обработки, отчета или любого объекта метаданных в виде
// ВнешняяОбработка.ИмяВнешнейОбработки.Форма.ИмяФормы
// ВнешнийОтчет.ИмяВнешнегоОтчета.Форма.ИмяФормы
// Документ.ИмяОбъекта.Форма.ИмяФормы
//
// ** coded by Sergey (aka Porutchik) * 2012, http://forum.aeroion.ru/
//
// Параметры
//  ИмяФормы  — — имя формы объекта
//
// Возвращаемое значение:
//      — полный путь к форме
//
&НаКлиенте
Функция ПолучитьПолноеИмяФормы(ИмяФормы)

    СимволТочка = «.»;
   
ПозицияТочки = СтрДлина(ЭтаФорма.ИмяФормы);
    Пока
Сред(ЭтаФорма.ИмяФормы, ПозицияТочки, 1) <> СимволТочка Цикл ПозицияТочки = ПозицияТочки — 1; КонецЦикла; //
   
Возврат Лев(ЭтаФорма.ИмяФормы, ПозицияТочки) + ИмяФормы;

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

Пример использования:

        ПараметрыФормы = Новый Структура(); 
        ОткрытьФормуМодально(ПолучитьПолноеИмяФормы(«ИмяФормыОбработки»), ПараметрыФормы, ЭтаФорма);

 

Использование функции в существующих работах:

//sale.itcity.ru/public/122215/

//sale.itcity.ru/public/121248/

//sale.itcity.ru/public/88286/

//sale.itcity.ru/public/85228/

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