В начало

Отбор элементов связанного справочника

 

            Стоит задача по выбору элементов справочника «Собрания жильцов», связанного со справочником-владельцем «Общая база». Если бы нужно было выводить связанные элементы в неком документы, то все сводилось бы к настройкам «Связи параметров выбора» реквизита «СобранияЖильцов» в справочнике «ОбщаяБаза». Но поскольку нужно выводить элементы связанного справочника, соответствующие элементам справочника-владельца, то нужна процедура вывода формы выбора.

 

Рис. Справочник-владелец «Общая база»

 

 

Рис. Справочник «Собрания жильцов»

 

            Переходим в справочник «Общая база», создаем форму элемента, после чего создаем событие «НачалоВыбора» для элемента формы «СобранияЖильцов».

 

Рис. Форма элемента справочника «Общая база»

 

            Понадобится только клиентская часть обработчика. Пишем код, как в листинге, который показан далее.

 

Листинг 1. Обработчик «НачалоВыбора» в модуле формы выбора справочника «Общая база»

&НаКлиенте

Процедура СобранияЖильцовНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

            СтандартнаяОбработка = Ложь;    

           

            ПараметрыОтбора = Новый Структура("Владелец", Объект.Ссылка);

            ПараметрыФормы = Новый Структура("Отбор", ПараметрыОтбора);

           

            ОткрытьФорму("Справочник.МКД_СобранияЖильцов.ФормаВыбора", ПараметрыФормы);

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

 

            В данном обработчике перво-наперво отключаем стандартную обработку. Затем создаем две структуры, одну – для открытия формы, а другую – для отбора элементов справочника «Собрания жильцов» по владельцу. Далее проверяем работу и исправляем ошибки.

Запускаемся в пользовательском режиме. Открываем справочник «Общая база» кликаем по элементу справочника и выбираем «Собрания жильцов». В результате выводятся только элементы, относящиеся к данному владельцу, т.е. для улицы Старая Басманная будут выведены собрания на Басманной улице и никакие другие.

Рис. Результат работы обработчика «НачалоВыбора»

 

             Задача выполнена.