1С:Предприятие 8
Система программ

Как открыть форму списка подчиненного справочника с отбором по владельцу?

09.06.2012

В 1С Предприятии 8.2 реализована механика перехода к подчиненной информации. В результате платформа автоматически предоставляет команду перехода к списку подчиненного справочника и вставляет ее в форму справочника-владельца в панель навигации в группу Перейти.

Однако, в форму списка платформа по-умолчанию такую команду не вставляет. Но разработчик может сделать это самостоятельно.

Для этого нужно открыть список глобальных параметризуемых команд: Команды - Глобальные команды- Параметризуемые

И перетащить команду перехода к подчиненному справочнику, например, в командную панель формы: Элементы - Список - <Имя подчиненного справочника> (Элементы.Список.ТекущиеДанные.Ссылка).

Скачать демонстрационный пример (платформа 8.2.15.310).  

Аналогичные действия можно выполнить и программно.

Для этого в обработчике команды следует открыть форму подчиненного справочника с отбором по владельцу. Сначала создается параметр формы Отбор, который затем передаётся в процедуру ОткрытьФорму(). В процессе открытия формы будет установлен отбор по указанному владельцу.

При этом, если вы в помещаете команду перехода к подчиненному списку в форму элемента, то значение владельца - это Объект.Ссылка, а если в форму списка, то значение владельца - это Элементы.Список.ТекущаяСтрока.

Например, процедура в модуле формы элемента справочника Контрагенты, которая открывает форму списка подчиненного справочника ДоговорыВзаиморасчетов, может выглядеть следующим образом:

ЗначениеОтбора = Новый Структура("Владелец", Объект.Ссылка);
ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Справочник.ДоговорыВзаиморасчетов.ФормаСписка", ПараметрыФормы);
А если нужно открыть форму списка справочника подчиненного текущему элементу списка справочника владельца, обработчик нажатия соответствующей кнопки будет выглядеть следующим образом:
ЗначениеОтбора = Новый Структура("Владелец", Элементы.Список.ТекущаяСтрока);
ПараметрыФормы = Новый Структура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Справочник.ДоговорыВзаиморасчетов.ФормаСписка", ПараметрыФормы);  

Скачать демонстрационный пример (платформа 8.2.15.310).