Главная Материалы Программный отбор в динамических списках

Программный отбор в динамических списках

Наряду с возможностью интерактивной установки отбора в динамических списках в 1С Предприятие 8 есть возможность программно устанавливать отбор. Для этого используется свойство Отбор.

Добавление нового элемента отбора осуществляется следующим образом:

ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

Для того, чтобы новый отбор начал работать, необходимо установить у элемента отбора свойства ЛевоеЗначение, ВидСравнения и ПравоеЗначение, а также установить свойству Использование значение Истина.

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;

Кроме простых условий в отборе возможно задавать несколько условий. При чем использовать их можно как по условию И, так и по условиям Или и Не. Для этого используется специальный тип данных ГруппаЭлементовОтбораКомпоновкиДанных.

ГруппаОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;

//далее добавляем первое условие отбора
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель = ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле1");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Значение1;

//далее добавляем второе условие отбора. У нас вид соединения: или 1 условие или 2 условие
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.Родитель ГруппаОтбора;
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Поле2");
ЭлементОтбора.ВидСравнения ВидСравненияКомпоновкиДанных.Больше;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение Значение2;

На уроках нашего курса обучения программированию в среде 1С:Предприятие 8.2 мы обязательно рассмотрим на практике использование программного отбора в динамическом списке.

Количество просмотров: 125639

Комментарии

  • "ЭлементОтбора.Родитель" доступен только для чтения, исправьте
    13 июня 2016 , 14:59
  • Пример корректный (Родитель = ГруппаОтбора).
    19 июня 2016 , 07:57
  • Правильно будет: ЭлементОтбора = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    21 июня 2016 , 07:16