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