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

Рис. 4.59. Показатели производительности
ПРИМЕЧАНИЕ
Заметим, что при первом открытии формы могут быть лишние серверные вызовы за счет кеширования платформой необходимой информации о форме.
Кроме того, можно открывать форму отчета РеестрОказанныхУслуг без параметров, а значения параметров Отбор и СформироватьПриОткрытии устанавливать в обработчике события формы ПриСозданииНаСервере. Но для этого, во-первых, нужно создавать форму отчета, а во-вторых, проверять в этом обработчике значение параметра Отбор. Так как, в общем случае, отчет может быть открыт без отбора.