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

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

Синтаксис использования:

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

Если в первом случае вопросов возникнуть не должно, то по второму распишу подробнее.

Предположим есть табличная часть «Товары» с колонками:

  • Наименование
  • Характеристика
  • Количество
  • Цена
  • Сумма

и нам требуется сделать отбор всех стульев в колонке «Наименование».

Наименование Характеристика Количество Цена Сумма
Стул Красный 5 100 500
Стол Стеклянный 1 200 200
Стул Зеленый 2 150 300

Отбор получится такой:

Строка

включает отбор по колонке «Наименование». Если установить значение «Ложь», то отбор будет снят. Если бы мы делали отбор не программно, а через фильтры, то установка галочки напротив названия колонки как раз аналогично этой строке кода:

отборстрок

Строка

отвечает за способ сравнения. Может принимать следующие значения:

  • Больше (Greater)
  • БольшеИлиРавно (GreaterOrEqual)
  • ВИерархии (InHierarchy)
  • ВСписке (InList)
  • ВСпискеПоИерархии (InListByHierarchy)
  • Интервал (Interval)
  • ИнтервалВключаяГраницы (IntervalIncludingBounds)
  • ИнтервалВключаяНачало (IntervalIncludingLowerBound)
  • ИнтервалВключаяОкончание (IntervalIncludingUpperBound)
  • Меньше (Less)
  • МеньшеИлиРавно (LessOrEqual)
  • НеВИерархии (NotInHierarchy)
  • НеВСписке (NotInList)
  • НеВСпискеПоИерархии (NotInListByHierarchy)
  • НеРавно (NotEqual)
  • НеСодержит (NotContains)
  • Равно (Equal)
  • Содержит (Contains)
Набор видов сравнения меняется в зависимости от типа поля, по которому выполняется отбор. Например в нашем поле «Наименование» с типом СправочникСсылка.Номенклатура можно использовать только «Равно», «Не равно», «В списке» и «Не в списке».
Строка

устанавливает значение по отбора. В нашем случае это товар из справочника номенклатура.

Если бы значений в табличной части было больше и потребовалось бы отобрать стулья и столы, то ВидСравнения был бы равен «В списке», а значение — список значений.

или

Второй вариант короче, но первый для меня более наглядный.

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

Если понадобилось перебрать строки, вошедшие в отбор, то это можно сделать, только заново перебрав все строки и проверив условие отбора для каждой строки. Перебрать строки табличного поля, которые сейчас на экране — невозможно.

 

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *