Отбор строк табличной части

08.06.2018

Теги: 1С:ПредприятиеТаблицаФормыУправляемаяФормаЭлементФормы

Часто возникает задача показать только нужные строки в табличной части документа или справочника. Для этого можно использовать свойство ОтборСтрок, которое входит в расширение табличного поля, связанного с табличной частью. Для обычных форм использовать его очень просто:

// установить отбор
ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Установить(ЗначениеОтбора);
// отключить отбор
ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Установить(,Ложь);

Или второй вариант:

ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Использование = Истина;
ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.ВидСравнения = ВидСравнения.Равно;
ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок.ИмяКолонки.Значение = ЗначениеОтбора;

А теперь конкретные примеры:

// выбрать строки с ценой = 100
ЭлементыФормы.Товары.ОтборСтрок.Цена.Установить(100);
 
// выбрать строки с ценой 100 и опр. валютой
ЭлементыФормы.Товары.ОтборСтрок.Валюта.Установить(ВалютаУпр);
ЭлементыФормы.Товары.ОтборСтрок.Цена.Установить(200);
 
// выбрать строки с ценой >= 100 (неравенство)
ЭлементыФормы.Товары.ОтборСтрок.Цена.Использование = Истина;
ЭлементыФормы.Товары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.БольшеИлиРавно;
ЭлементыФормы.Товары.ОтборСтрок.Цена.Значение = 100;
 
// выбрать строки с ценой от 100 до 200 (интервал)
ЭлементыФормы.Товары.ОтборСтрок.Цена.Использование = Истина;
ЭлементыФормы.Товары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.Интервал;
ЭлементыФормы.Товары.ОтборСтрок.Цена.ЗначениеС = 100;
ЭлементыФормы.Товары.ОтборСтрок.Цена.ЗначениеПо = 200;
 
// выбрать строки с определенными товарами по списку
ЭлементыФормы.Товары.ОтборСтрок.Товар.Использование = Истина;
ЭлементыФормы.Товары.ОтборСтрок.Товар.ВидСравнения = ВидСравнения.ВСписке;
ЭлементыФормы.Товары.ОтборСтрок.Товар.Значение.Добавить(ПервыйТовар);
ЭлементыФормы.Товары.ОтборСтрок.Товар.Значение.Добавить(ВторойТовар);
ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.

С помощью этого свойства можно реализовать подчиненные (связанные) табличные части. При смене текущей строки в первой табличной части, вторая табличная часть показывает только связанную информацию. Например, таким образом можно реализовать работу с комплектами: первая табличная часть — комплекты, вторая — состав комплекта.

Во второй табличной части должна быть колонка — идентификационный признак, связывающий ее с первой табличной частью. Таких колонок может быть несколько (составной ключ). В событии ПриАктивизацииСтроки для первого табличного поля пишем:

ЭлементыФормы.СоставКомплекта.ОтборСтрок.Комплект.Установить(Комплект);

Для управляемых форм используется ФиксированнаяСтруктура:

ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок = Новый ФиксированнаяСтруктура("Поставщик", Поставщик);

Отбор по двум колонкам:

ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок = Новый ФиксированнаяСтруктура(
    "Номенклатура,Поставщик",
    Номенклатура,
    Поставщик
);

Или второй вариант:

ПараметрыОтбора = Новый Структура();
ПараметрыОтбора.Вставить("Номенклатура", Номенклатура);
ПараметрыОтбора.Вставить("Поставщик", Поставщик);
ЭлементыФормы.ИмяТабличногоПоля.ОтборСтрок = Новый ФиксированнаяСтруктура(ПараметрыОтбора);

Поиск: 1С:Предприятие • Обычная форма • Отбор строк • Таблица формы • Табличная часть • Управляемая форма • Элемент формы

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.