Как открыть форму существующего объекта?

13.05.2018

Теги: 1С:ПредприятиеКлючОткрытьЗначениеОткрытьФормуПараметрТекущаяСтрока

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

Например, если из формы списка организаций нужно открыть форму той организации, на которой находится курсор, сделать это можно следующим способом:

СсылкаНаЭлементСправочника = Элементы.Список.ТекущаяСтрока;
ПараметрыФормы = Новый Структура("Ключ", СсылкаНаЭлементСправочника);
ОткрытьФорму("Справочник.Организации.ФормаОбъекта", ПараметрыФормы);

Ссылку на интересующий элемент справочника мы получаем через текущую строку списка:

СсылкаНаЭлементСправочника = Элементы.Список.ТекущаяСтрока;

Параметры формы передаем в виде структуры, где имя элемента структуры соответствует имени параметра формы, а значение — это то значение, в которое мы хотим установить параметр формы.

Если требуется открыть не основную, а произвольную форму объекта, созданную в конфигураторе, вместо стандартного имени основной формы (ФормаОбъекта) указывается слово Форма и через точку за ним — имя формы, созданной в конфигураторе. Например:

СсылкаНаЭлементСправочника = Элементы.Список.ТекущаяСтрока;
ПараметрыФормы = Новый Структура("Ключ", СсылкаНаЭлементСправочника);
ОткрытьФорму("Справочник.Организации.Форма.УниверсальнаяФормаОбъекта", ПараметрыФормы);

Следует заметить, что в том случае, когда кроме ссылки на объект никакие параметры в открываемую форму передавать не нужно и нужна именно основная форма существующего объекта, можно использовать более простой способ — открывать форму с помощью функции глобального контекста ОткрытьЗначение():

ОткрытьЗначение(Элементы.Список.ТекущаяСтрока);

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

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

Справка

ОткрытьФорму(
    ИмяФормы,
    Параметры,
    Владелец,
    Уникальность,
    Окно,
    НавигационнаяСсылка,
    ОписаниеОповещенияОЗакрытии,
    РежимОткрытияОкна
)

Параметры:

  • ИмяФормы (обязательный, тип Строка). Имя формы. Образуется как полный путь к объекту метаданных Форма (например, "Справочник.Контрагенты.Форма.ФормаОбъекта", "ОбщаяФорма.ФормаСохраненияФайла") или как полный путь к прикладному объекту, дополненный именем формы по умолчанию (например, "Справочник.Товары.ФормаВыбора").
  • Параметры (необязательный, тип Структура). Параметры формы. Ключ структуры — имя параметра, а значение — значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
  • Владелец (необязательный). Владелец формы — форма или элемент управления другой формы.
  • Уникальность (необязательный, тип Произвольный). В данном параметре может быть задан некоторый ключ, значение которого будет использоваться для поиска уже открытых форм. Если будет найдена форма с таким же ключом уникальности, вместо открытия новой формы будет активизирована найденная форма. Ложь — искать форму с ключом уникальности по умолчанию, Истина — не искать форму вообще, любое другое значение устанавливает ключ уникальности, по которому будет произведен поиск. Значение по умолчанию Ложь.
  • Окно (необязательный, тип ОкноКлиентскогоПриложения, ВариантОткрытияОкна). Окно приложения, в котором будет открыта форма. Окном может быть только основное окно приложения или вспомогательное окно формы. Если указан тип ВариантОткрытияОкна, окно формы будет создано согласно выбранному варианту.
  • НавигационнаяСсылка (необязательный, тип Строка, Неопределено). Если содержит значение, отличное от Неопределено, то это значение присваивается свойству НавигационнаяСсылка формы, полученной в результате вызова данного метода, и свойство АвтоНавигационнаяСсылка этой формы устанавливается в Ложь. Значение по умолчанию Неопределено.
  • ОписаниеОповещенияОЗакрытии (необязательный, тип ОписаниеОповещения). Содержит описание процедуры, которая будет вызвана при закрытии формы со следующими параметрами:
    • значение, переданное при вызове метода Закрыть() открываемой формы,
    • значение, которое было указано при создании объекта ОписаниеОповещения.
    Если параметр не указан, то по завершению никакая процедура вызвана не будет.
  • РежимОткрытияОкна (необязательный, тип РежимОткрытияОкнаФормы). Указывает режим открытия окна формы. Значение по умолчанию Неопределено.

Описание:

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

Поиск: 1С:Предприятие • Ключ • Открыть значение • Открыть форму • Параметр • Текущая строка

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.