На самом деле более эффективно открывать форму методом ОткрытьФорму(), при этом передавая в нее параметры. Параметры будут доступны в обработчике события формы выбора ПриСозданииНаСервере, где и нужно управлять состоянием формы при ее открытии.
Для этого изменим обработчик команды Подбор документа ПриходнаяНакладная следующим образом (листинг 4.22).
Листинг 4.22. Обработчик команды «Подбор»
&НаКлиенте
Процедура Подбор(Команда)
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("МножественныйВыбор", Истина);
ПараметрыФормы.Вставить("РежимОтображения", "Дерево");
ОткрытьФорму("Справочник.Товары.ФормаВыбора", ПараметрыФормы, Элементы.Товары);
КонецПроцедуры
В этом обработчике мы создаем структуру ПараметрыФормы и добавляем в нее элементы МножественныйВыбор со значением Истина и РежимОтображения со значением Дерево.
Причем МножественныйВыбор – это стандартный параметр, поставляемый расширением формы для динамического списка, который при открытии формы выбора устанавливает соответствующее свойство для таблицы динамического списка. Это платформа делает автоматически.
А параметр РежимОтображения мы создаем сами, чтобы передать в обработчик события ПриСозданииНаСервере формы выбора справочника режим отображения таблицы динамического списка в виде дерева.
Затем мы открываем основную форму выбора справочника Товары как подчиненную таблице Товары формы документа ПриходнаяНакладная методом ОткрытьФорму(), который производит одно обращение к серверу.
Для анализа параметра РежимОтображения создадим форму выбора справочника Товары и обработчик события формы ПриСозданииНаСервере. Заполним его следующим образом (листинг 4.23).
Листинг 4.23. Обработчик события «ПриСозданииНаСервере»
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.РежимОтображения = "Дерево" Тогда
Элементы.Список.Отображение = ОтображениеТаблицы.Дерево;
КонецЕсли;
КонецПроцедуры
В этом обработчике мы анализируем значение параметра РежимОтображения и в соответствии с ним устанавливаем свойство Отображение таблицы формы Список в значение системного перечисления ОтображениеТаблицы.Дерево.
ПРИМЕЧАНИЕ
Этот пример можно посмотреть в демонстрационной конфигурации «05 (вар. 2) Управление открываемой формой путем передачи параметров».
Запустим «1С:Предприятие», откроем приходную накладную и нажмем кнопку Подбор. После этого форма выбора из справочника товаров будет открыта в режиме множественного выбора, и иерархический список товаров будет представлен в виде дерева. При нажатии кнопки Выбрать выделенные записи из справочника товаров будут добавлены в табличную часть приходной накладной.
Как мы видим, функциональность прикладного решения будет такой же, как и в первом случае, но производительность будет выше, так как для открытия формы выбора при помощи метода ОткрытьФорму() потребовался только один вызов сервера (рис. 4.41).

Рис. 4.41. Показатели производительности
ПРИМЕЧАНИЕ
Заметим, что при первом открытии формы могут быть лишние серверные вызовы за счет кеширования платформой необходимой информации о форме.