В начало

Контрагенты с динамическим списком

            Есть справочник «Контрагенты». Справочник имеет две формы: элемента и списка. Необходимо организовать в этом справочнике вывод динамического списка с контактной информацией с выбором по конкретному контрагенту. Данные необходимо получать из регистра сведений «КонтактнаяИнформация», который имеет два измерения: Контрагент и ВидКонтактнойИнформации и один ресурс – ЗначениеКонтактнойИнформации.

Рис. 1. Внешний вид справочника «Контрагенты» в пользовательском режиме 

Рис. 1. Внешний вид справочника «Контрагенты» в пользовательском режиме

           

На форме элемента необходимо добавить реквизит с типом динамический список,  перенести его в интерфейс и обозвать «КонтактнаяИнформация».

Рис. 2. Регистр сведений «КонтактнаяИнформация»

Рис. 2. Регистр сведений «КонтактнаяИнформация»

 

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

 

Листинг 1. Процедура «ПриОткрытии»

&НаКлиенте

Процедура ПриОткрытии(Отказ)

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

            ЭОевоеЗначение = Новый ПолеКомпоновкиДанных("Контрагент");

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

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

            ЭОравоеЗначение = Объект.Ссылка; 

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

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

 

            Таким образом, теперь при выборе элемента справочника «Контрагенты», внизу формы элемента будет выводится вся контактная информация, соответствующая данному конкретному контрагенту.

Рис. 3. Динамический список с реквизитами на форме элемента справочника «Контрагенты»

Рис. 3. Динамический список с реквизитами на форме элемента справочника «Контрагенты»

 

ПРИМЕЧАНИЕ: все реквизиты и данные приведены исключительно для примера.