В начало

Отбор сотрудников по должности с запросом на УФ

 

            Пример создания отбора сотрудников по должности из справочника «Должности» в приложении «1С: Предприятие» на управляемых формах (УФ).

 

 

Рис. Структура справочников «Должности» и «Сотрудники»

 

            Далее приведены фрагменты справочников в пользовательском режиме.

 

Рис. Формы списка справочников «Должности» и «Сотрудники»

 

            В конфигураторе перейдём в справочник «Должности» и создадим команду «Поиск сотрудников на должности» с видом «Гиперссылка».

Рис. Форма элемента справочника «Должности» в конфигураторе

 

            Затем в обработчике нажатия кнопки опишем запрос и отбор для вывода формы выбора, в которой будут показаны сотрудники, соответствующие текущей должности.

 

Листинг. Модуль формы элемента справочника «Должности»

&НаСервереБезКонтекста

Функция СписокСотрудниковИзЗапроса(СсылкаНаДолжность)

            Запрос = Новый Запрос;

            Запрос.Текст =

                        "ВЫБРАТЬ

                        |          Сотрудники.Ссылка КАК Ссылка,

                        |          Сотрудники.Должность КАК Должность

                        |ИЗ

                        |          Справочник.Сотрудники КАК Сотрудники

                        |ГДЕ

                        |          Сотрудники.Должность = &Должность";

                                                      

            Запрос.УстановитьПараметр("Должность", СсылкаНаДолжность);

            Результат = Запрос.Выполнить();

            Выгрузка = Результат.Выгрузить().ВыгрузитьКолонку("Ссылка");

            СЗ = Новый СписокЗначений;

            СЗ.ЗагрузитьЗначения(Выгрузка);

           

            Возврат СЗ;

КонецФункции

 

 

&НаКлиенте

Процедура ПоискСотрудниковНаДолжности(Команда)

            ПФ = Новый Структура;

            НК = Новый НастройкиКомпоновкиДанных;

           

            Отбор = НК.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

            Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");

            Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;

            Отбор.ПравоеЗначение = СписокСотрудниковИзЗапроса(Объект.Ссылка);

            Отбор.Использование = Истина;

            Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;

           

            ПФ.Вставить("ФиксированныеНастройки", НК);

            ОткрытьФорму("Справочник.Сотрудники.ФормаВыбора", ПФ);                       

КонецПроцедуры

 

            Запускаем режим отладки, переходим в справочник «Должности», выбираем должность «Аналитик» и переходим по гиперссылке «Поиск сотрудников на должности».

Рис. Поиск сотрудников на должности «Аналитик»

 

            Проверяем по справочнику сотрудники.

Рис. Форма списка справочника «Сотрудники», выделены строчки с аналитиками

 

            Все верно, отбор работает корректно, задача выполнена.