Критерии отбора 1С

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

Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство ОтборСтрок, которое входит в расширение табличного поля, связанного с табличной частью. Автор статьи: Волшебник | Редакторы:
Последняя редакция №6 от 16.02.06 | История
URL: http://kb.mista.ru/article.php?id=23

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

Как вызвать диалог для выбора значения из списка значений в 8ке?

Форма (Form) ВыбратьИзСписка (ChooseFromList) Синтаксис:
ВыбратьИзСписка(<Список значений>, <Элемент формы>, <Начальное значение>)
Параметры:
<Список значений> (обязательный)
Тип: СписокЗначений. Список значений, содержащий значения, из которых будет осуществляться выбор. <Элемент формы> (необязательный)
Тип: Элемент управления. Элемент формы, около которого будет открыт выпадающий список. Для некоторых элементов (табличный документ, табличное поле) выпадающий список будет показан около активной области. Если не указан, то будет выбран активный элемент формы.
<Начальное значение> (необязательный)
Тип: Число, ЭлементСпискаЗначений. Задает начальный элемент, который будет активным при открытии списка. Если параметр не указан, в списке не будет выбрано начальное значение.
Возвращаемое значение:
Тип: ЭлементСпискаЗначений. Выбранный элемент списка или Неопределено, если пользователь отказался от выбора.
Описание:
Вызывает выпадающий список для выбора значения. Набор значений для выбора задается списком значений. Выпадающий список будет расположен около переданного элемента формы или около его активной области.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Примечание:
Если в списке значений указаны картинки, то они отображаются в выпадающем списке.
Пример:
Список = Новый СписокЗначений; Список.Добавить(«Доставка»); Список.Добавить(«Разгрузка»); Список.Добавить(«Картинка»,,,БиблиотекаКартинок.Картинка1); Вид = ВыбратьИзСписка(Список, Элемент);