1С установить отбор динамического списка программно

Часто возникают ситуации, когда в 1С 8.3 нужно произвести отбор в таблице определенных строк по определенным критериям. Рассмотрим, как это сделать в динамическом списке и в таблице значений.

Отборы в динамическом списке 1С 8.3

Тут мы имеем два пути: создать отбор на форме списка и установить отбор программно.

Отбор в настройка формы

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

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

Установка отбора в динамическом списке 1С программно

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

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

Получите 267 видеоуроков по 1С бесплатно:

Таким образом, мы создаем простой отбор. Кроме простого, можно задать условия по нескольким полям. Для этого используем тип данных «ГруппаЭлементовОтбораКомпоновкиДанных»:

Отборы в таблице значений 1С

Тут у нас также имеется несколько вариантов.

  • Можно просто перебрать таблицу в цикле и выбрать нужные строки либо скрыть ненужные. Считаю этот способ самым неоптимальным, но для новичков пойдет.
  • Второй способ – использовать метод таблицы «НайтиСтроки». Иногда очень хороший способ, но есть серьезный недостаток. Это единственный тип для сравнения – «Равно».
  • Третий вариант отбора – мой любимый, так как лишен в итоге всех недостатков. В этом варианте я использую «ПостроительЗапроса». Вот пример:
Читайте также:  Яндекс вертикали что это

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

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

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

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

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

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

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

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

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

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

Читайте также:  Яндекс такси api документация

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

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

Для установки отбора в динамическом списке используется свойство Отбор.

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

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

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

Похожие FAQ

Еще в этой же категории

Как настроить отбор строк? 2
Часто возникает задача показать только нужные строки в табличной части документа или справочника (или другого объекта). Для этого можно использовать замечательное свойство: в обычном приложении параметр для ОтборСтрок – Отбор. в управляемом Посмотреть все в категории Работа с Формой (Диалог) и её элементами

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

Adblock detector