Back to top

Управляемые формы. Как открыть форму элемента справочника или документа

Опубликовано e-1c@mail.ru - вс, 04/16/2017 - 09:17

Для справочника

Имеется ссылка на элемент справочника: _СпрСсылка

Если форма справочника известна, например "ФормаЭлемента" тогда:

_ИмяСпр = "Номенклатура";
_Ключ = Новый Структура("Ключ", _СпрСсылка);
форма = ПолучитьФорму("Справочник."+_ИмяСпр +".Форма.ФормаЭлемента", _Ключ); 
форма.Открыть();

А если справочнику не назначена основная форма или называется по другому? а это довольно распространённое явление, оказывается тоже можно, используя функцию глобального контекста ОткрытьЗначение(<Значение>) :

ОткрытьЗначение(_СпрСсылка);

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

Для документа

С документом все по той же схеме:

_ИмяДок = "АвансовыйОтчет";
Попытка
	_Ключ = Новый Структура("Ключ", _ДокСсылка);
	форма = ПолучитьФорму("Документ."+_ИмяДок+".Форма.ФормаДокумента", _Ключ);
	форма.Открыть();
Исключение
	Сообщить("С формой документа напутано... ");
	ОткрытьЗначение(_ДокСсылка);
КонецПопытки;	

Надо добавить, что если основная форма документа все таки определена (но не называется "ФормаДокумента") по команде ОткрытьЗначение 1С выберет именно эту форму для отображения, если же значение формы документа в конфигураторе не задано совсем, 1С "сгенерирует" свою.

Forma.png