1с открыть форму внешней обработки
Делал на днях внешнюю обработку, в которой было несколько отдельных форм. И в один момент понял, что с ходу у меня не получается открыть произвольную форму внешней обработки, которую я разрабатывал. А точнее я просто не знал как это сделать!
Немного покопавшись в интернете, я понял: для того что бы открыть форму внешней обработки, к ней нужно обратиться через прикладной объект ‘ВнешняяОбработка’. Причем имя обработки будет соответствовать её имени в свойствах обработки:
Зная имя обработки и имена всех её формы, мы можем легко открыть и получить нужную форму внешней обработки:
1 2 3 4 5 6 7 8 9 |
&НаКлиенте Процедура ОткрытьФорму2(Команда) Форма2 = ПолучитьФорму("ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма2"); Форма2.Открыть(); ОткрытьФорму("ВнешняяОбработка.ВнешняяОбработка2.Форма.Форма2"); КонецПроцедуры |
На ‘инфостарте’ нашел более универсальное решение: не нужно каждый раз писать полный путь, нижеуказанный код сам его построит:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
&НаКлиенте Процедура ОткрытьФорму2(Команда) Форма2 = ПолучитьФорму(ПолучитьПолноеИмяФормы("Форма2")); ОткрытьФорму(ПолучитьПолноеИмяФормы("Форма2")); КонецПроцедуры &НаКлиенте Функция ПолучитьПолноеИмяФормы(ИмяФормы) СимволТчк = "."; ПозицияТочки = СтрДлина(ЭтаФорма.ИмяФормы); Пока НЕ Сред(ЭтаФорма.ИмяФормы, ПозицияТочки, 1) = СимволТчк Цикл ПозицияТочки = ПозицияТочки - 1; КонецЦикла; Возврат Лев(ЭтаФорма.ИмяФормы, ПозицияТочки) + ИмяФормы; КонецФункции |
Вот такая у нас сегодня получилась небольшая заметка о том, как можно получить форму внешней обработки. Всем Удачи!