Книга: Разработка интерфейса прикладных решений на платформе "1С:Предприятие 8"
Назад: Произвольная форма
Дальше: Открыть список, чтобы курсор был на нужном элементе

Форма существующего объекта

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

У расширения справочника есть параметр Ключ. Если в этот параметр передать ссылку на существующий элемент справочника, то будет открыта форма именно этого элемента, а не нового.

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

Листинг 3.6. Открытие основной формы существующего объекта

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

ПараметрыФормы = Новый Структура("Ключ", СсылкаНаЭлементСправочника);

ОткрытьФорму("Справочник.Организации.ФормаОбъекта", ПараметрыФормы);

Примечание

Пример можно посмотреть в демонстрационной базе «Открытие форм», список организаций, команда Открыть форму элемента. Это локальная команда формы списка справочника Организации.

Чтобы получить ссылку на выделенный элемент списка, мы обращаемся к элементу формы Список и получаем его свойство ТекущаяСтрока.

Затем мы создаем структуру ПараметрыФормы для передачи параметров в открываемую форму. В этой структуре будет единственный элемент с ключом Ключ и значением полученной ссылки.

После этого открывается форма объекта в соответствии с переданной структурой параметров.

В заключение следует заметить, что в том случае, когда кроме ссылки на объект никакие параметры в открываемую форму передавать не нужно и нужна именно основная форма существующего объекта, можно использовать более простой способ – с помощью функции глобального контекста ПоказатьЗначение() (листинг 3.7).

Листинг 3.7. Использование метода «ПоказатьЗначение()»

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

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

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

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

Пример, подробно описывающий эту ситуацию, можно посмотреть в разделе .

Назад: Произвольная форма
Дальше: Открыть список, чтобы курсор был на нужном элементе