1с отбор в табличной части документа

Использовать его очень просто:

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

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

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

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

———
//выбрать строки с ценой = 100
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.Установить(100);

———
//выбрать строки с ценой 100 и опр. валютой
ЭлементыФормы.тпТовары.ОтборСтрок.Валюта.Установить(ВалютаУпр);
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.Установить(200);

———
//выбрать строки с ценой >= 100 (неравенство)
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.Использование = Истина;
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.БольшеИлиРавно;
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.Значение = 100;

———
//выбрать строки с ценой от 100 до 200 (интервал)
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.Использование = Истина;
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.ВидСравнения = ВидСравнения.Интервал;
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.ЗначениеС = 100;
ЭлементыФормы.тпТовары.ОтборСтрок.Цена.ЗначениеПо = 200;

———
//выбрать строки с определенными товарами по списку

ЭлементыФормы.тпТовары.ОтборСтрок.Товар.Использование = Истина;
ЭлементыФормы.тпТовары.ОтборСтрок.Товар.ВидСравнения = ВидСравнения.ВСписке;
ЭлементыФормы.тпТовары.ОтборСтрок.Товар.Значение.Добавить(Товар1);
ЭлементыФормы.тпТовары.ОтборСтрок.Товар.Значение.Добавить(Товар2);
———

Подчиненные табличные части в 8.0

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

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

В событии ПриАктивизацииСтроки для первого табличного поля пишем:

При добавлении новой строки во вторую табличную часть, нужно следить за тем, чтобы идентификационная колонка была установлена.

————
Обращаю ваше внимание, что при таком отборе не используются индексы и для больших табличных частей возможно замедление работы.

Еще раз напомню, что ОтборСтрок входит в расширение табличного поля табличной части, т.е. табличное поле должно быть связано с табличной частью. Если же оно связано с динамическим списком типа СправочникСписок, то здесь нужно использовать свойство Отбор для объекта типа СправочникСписок.

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

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

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

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

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

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

Иногда в зависимости от каких-то действий пользователя необходимо программно установить отбор в табличной части. Рассмотрим как это сделать.

Наиболее часто программно наложить отбор на табличную часть (ТЧ) требуется:

  • Для предоставления пользователю дополнительных интерфейсных возможностей наложения отбора. Например, в документе «Пересчет товаров» флаг для отображения только строк, в которых есть расхождения.
  • При использовании двух взаимосвязанных ТЧ. Т.е. когда при активизации строки в главной ТЧ, в подчиненной ТЧ выводятся только связанные с этой строкой данные. При таком подходе в обоих табличных частях должны быть колонки, по которым будет производиться связывание строк (ключ).

В качестве примера взаимосвязанных табличных частей можно привести обработку, в которой есть две ТЧ: «Контрагенты» и «Договоры». В первой отображаются контрагенты, во второй — договоры этих контрагентов. При активизации строки с контрагентом должен выводиться список договоров только текущего контрагента. Для связи двух ТЧ в каждой присутствует колонка-ключ «Контрагент», по которой производится связь. Отбор на ТЧ с договорами накладывается в событии ПриАктивизацииСтроки () при позиционировании на контрагенте.

Для наложения отбора на табличную часть используется расширение табличных частей — свойство ОтборСтрок , которое позволяет установить отбор по значению одной или нескольких колонок. Свойству ОтборСтрок может быть присвоено значение Неопределено или значение типа ФиксированнаяСтруктура . Значение Неопределено присваивается для снятия отборов. В случае использования фиксированной структуры в качестве ключа указывается имя реквизита ТЧ, а в качестве значения — значение для отбора.

Приведем примеры наложения отборов:

Остались вопросы?
Спросите в комментариях к статье.

Оцените статью
Добавить комментарий