Итак, у нас СпрКафедры, СпрФакультет с реквизитом табличной части Кафедра(СпрКафедра) и СпрАдрес с реквизитами табличной части Факультет(СпрФакультет) и Кафедра(СпрКафедра). Нам необходимо сделать отбор кафедр по факультету в табличной части справочника Адрес.
В форме элемента СпрАдрес для реквизита табличной части "Кафедра" назначаем событие(еще ставим кнопки выбора и списка "Да"):
&НаКлиенте
Процедура ТЧКафедраНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
СЗ=ПолучитьКафНаСервере(Элементы.ТЧ.ТекущиеДанные.Факультет);
ВыбЭлемент=СЗ.ВыбратьЭлемент("Выбрать Кафедру");
ВыбСсылка=ПолучитьСсылкуНаСервере(Строка(ВыбЭлемент));
Элементы.ТЧ.ТекущиеДанные.Кафедра=ВыбСсылка;
КонецПроцедуры
Ну еще две функции:
&НаСервереБезКонтекста
Функция ПолучитьКафНаСервере(Ссылка)
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
| СписокКаф.Кафедра
|ИЗ
|Справочник.Факультет.ТЧ КАК СписокКаф
|ГДЕ
|СписокКаф.Ссылка=&Ссылка";
Запрос.УстановитьПараметр("Ссылка",Ссылка);
ТЗ=Запрос.Выполнить().Выгрузить();
СЗ=Новый СписокЗначений();
СЗ.ЗагрузитьЗначения(ТЗ.ВыгрузитьКолонку(0));
Возврат СЗ;
КонецФункции
&НаСервереБезКонтекста
Функция ПолучитьСсылкуНаСервере(О)
ВыбСсылка=Справочники.Кафедра.НайтиПоНаименованию(СокрЛП(О)).Ссылка;
Возврат ВыбСсылка;
КонецФункции
В итоге, после выбора факультета мы выбираем кафедры. В списке будут отобранные по факультету, а в выборе - все имеющие.
По сути, наша задача выполнена, и отбор идет. Но какой-то не оч красивый способ. Нужен красивый)