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

В 1С Предприятии 8.2 формы списка объектов конфигурации построены с помощью динамического списка. Пользователь может самостоятельно задать произвольные отборы в любом списке.

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

В этом случае можно использовать возможность установки отбора из встроенного языка. Чтобы установить отбор по нескольким реквизитам спиcка, нужно сначала создать группу элементов отбора, а затем добавить в нее собственно сами элементы отбора, которые будут связаны логическим союзом И , ИЛИ , НЕ в зависимости от типа группы.

Рассмотрим пример, когда список номенклатуры отбирается по реквизитам списка, соединенным логическим союзом И .

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

Создадим форму списка номенклатуры. Добавим в форму реквизиты Производитель (типа СправочникСсылка.Производители ) и Поставщик (типа СправочникСсылка.Поставщики ) и поместим их над таблицей списка. В эти поля мы будем вводить значения для отбора.

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

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

В этом обработчике сначала в цикле обходится коллекция всех элементов и групп элементов отбора для основного реквизита формы Список (типа ДинамическийСписок ). И удаляются все элементы отбора, созданные программно ( Представление = «Программный отбор» ). Затем создается группа элементов отбора ГруппаОтбора для реквизита Список с типом логической связи ГруппаИ . И если в полях Производитель и Поставщик содержится не пустая ссылка на справочник, то эти поля добавляются в элементы отбора, принадлежащие группе отбора.

В результате, задав в полях Производитель и Поставщик нужные значения, мы получим отбор в списке номенклатуры сразу по обоим реквизитам списка Производитель и Поставщик .

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

Если задано только одно из полей отбора, то отбор в списке будет выполняться только по одному реквизиту ( Производитель или Поставщик ).

Демонстрационный пример находится в каталоге 1CITS/EXE/FAQ/БыстрыйОтборПоНесколькимПолям.dt. Пример выполнен на версии платформы 8.2.9.356.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Потребовалось нам в списке документов «ЗаказКлиента» сделать отбор. Например где у контрагента долг больше 10000р.

Реализуем это
Найдем форму «ФормаСпискаДокументов» документа «заказКлиента».

Откроем настройку списка.

Настроим отбор как показано на рисунке и укажем нужное представление отбора

Все, запускаем 1с и пользуемся нашим отбором.

Если же мы сами хотим выбирать по какому значению долга нам фильтровать то настраиваем отбор так:

и тогда мы сможем сами указывать сумму долга

Отбор на форме динамического списка программно.
Отбор является свойством динамического списка. Добавим в свойство отбора новый элемент:

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

  • Главная
  • В помощь 1с программисту
  • 1С отборы на управляемой форме. 1С отбор в динамическом списке на форме.

Google+

  • © 2019 Услуги 1С программиста. Доработка и обслуживание 1С. Удаленное программирование по всей России. Платформы 7.7 8.2 8.3 , битрикс.

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