К статье
Практический материал

Отчеты и Аналитика · 10 мин

Как настроить отбор в 1С: списки, отчёты и динамические списки

Как настроить отбор в 1С: списки, отчёты, динамические списки и СКД. Условия, сравнение вариантов, типичные ошибки и ответы на частые вопросы.

Отбор в 1С — это механизм, который показывает пользователю только те записи, которые соответствуют заданным условиям. Он применяется в списках документов и справочников, в отчётах, в динамических списках и при обмене данными. Правильно настроенный отбор экономит время: вместо пролистывания тысяч строк вы сразу видите нужные документы за период, по контрагенту или по статусу.

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

Отбор в списках документов и справочников

Самый частый сценарий — отфильтровать журнал документов или список справочника. Откройте нужный список, затем в меню «Ещё» выберите пункт «Настроить список». В открывшемся окне на вкладке «Отбор» добавьте условие: укажите поле (например, «Организация» или «Дата»), вид сравнения и значение.

Вид сравнения определяет логику фильтрации. «Равно» подходит для точного совпадения, «В списке» позволяет выбрать сразу несколько значений, «Содержит» ищет подстроку в текстовых полях, «Больше или равно» и «Меньше» удобны для дат и сумм. Несколько условий по умолчанию объединяются логическим «И» — записи должны удовлетворять всем условиям одновременно.

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

Порядок действий
  1. 1
    Откройте список документов или справочника
  2. 2
    В меню «Ещё» выберите «Настроить список»
  3. 3
    На вкладке «Отбор» добавьте условие: поле, вид сравнения, значение
  4. 4
    Нажмите «Завершить редактирование» или «ОК»
  5. 5
    Проверьте, что над списком появилась строка с описанием отбора

Быстрый отбор и поиск без настроек

Для разовых задач не обязательно открывать полную настройку списка. Во многих конфигурациях над списком есть строка поиска и быстрые отборы по ключевым полям — например, по контрагенту или по периоду. Достаточно начать вводить значение, и список отфильтруется автоматически.

Ещё один быстрый приём — отбор по текущему значению. Установите курсор на ячейку с нужным значением (например, на конкретном контрагенте) и в меню «Ещё» выберите вариант отбора по значению в колонке, если он доступен в вашей конфигурации. Это быстрее, чем вручную заполнять условие.

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

Отбор в отчётах

В отчётах на базе системы компоновки данных (СКД) отбор настраивается через кнопку «Настройки» или «Настроить». В окне настроек перейдите на вкладку «Отбор» и добавьте нужные поля из левой части окна — там перечислены все доступные для отбора реквизиты.

Полезная возможность СКД — вынос отбора в «быстрые настройки». Если отчётом пользуются регулярно, отметьте ключевые условия (период, организация, склад) как быстрые: они появятся прямо в шапке отчёта, и пользователю не придётся каждый раз открывать полные настройки. В типовых конфигурациях быстрые отборы часто уже выведены, остаётся только заполнить значения.

Здесь же можно сохранить вариант отчёта с настроенным отбором — кнопка «Сохранить вариант» или аналогичная. В следующий раз отчёт откроется сразу с вашими условиями. Это удобно для регламентных задач: ежемесячная сверка по конкретному контрагенту, остатки по конкретному складу.

Отбор в динамических списках и запросах

Для разработчика основной инструмент — отбор в запросе динамического списка. В конфигураторе откройте свойства динамического списка, включите произвольный запрос и добавьте условия в секцию ГДЕ. Чтобы пользователь мог менять условия сам, используйте параметры виртуальных таблиц и конструкции с параметрами запроса.

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

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

Главное правило при работе с произвольными запросами: условия, которые пользователь должен видеть и менять, выносятся в отбор компоновки, а не зашиваются жёстко в текст запроса. Жёсткие условия в ГДЕ оставляйте только для технологических ограничений, которые не должны изменяться.

Сравнение способов отбора

Выбор способа зависит от задачи и уровня доступа. Ниже — сопоставление основных вариантов.

СпособКто применяетКогда подходитОграничение
«Настроить список»ПользовательФильтрация журналов и справочниковУсловия не сохраняются между сеансами во всех конфигурациях
Быстрый поискПользовательРазовый поиск по подстрокеМедленно на больших списках
Настройки отчёта (СКД)ПользовательРегулярная аналитика, сохранение вариантовНабор полей ограничен разработчиком
Программный отборРазработчикПредопределённые условия, роли, доработкиТребует изменения конфигурации или расширения
Маршрут решения

Как выбрать действие

Нужно разово найти документы по контрагенту или датеИспользуйте «Ещё — Настроить список» или быстрый поиск
Отчёт с одними условиями нужен регулярноНастройте отбор в отчёте и сохраните вариант
Список должен быть отфильтрован всегда, без участия пользователяЗадайте программный отбор в модуле формы или расширении

Проверка результата и типичные ошибки

После настройки отбора убедитесь, что он работает так, как задумано. Контрольные признаки: над списком отображается строка условий; количество записей уменьшилось, но не обратилось в ноль без причины; при снятии отбора записи возвращаются. Если записей ноль — проверьте вид сравнения: частая ситуация, когда вместо «В иерархии» выбрано «Равно» и группа не даёт вложенных элементов.

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

Типичные ошибки
01
Забытый отбор: пользователь не видит часть данных и считает, что документы потерялись — проверяйте строку условий над списком
02
Условие «Равно» вместо «В иерархии» для групп справочника — вложенные элементы не попадают в выборку
03
Несколько условий объединены «И», хотя нужно «ИЛИ» — список пустеет, потому что запись не может соответствовать противоречивым условиям
04
Отбор по строковому полю с лишними пробелами в значении — совпадение не находится
05
Жёсткое условие в тексте запроса динамического списка — пользователь не может его отключить

Ограничения и когда нужен специалист

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

Другое дело — программная настройка. Изменение запросов динамических списков и схем компоновки требует аккуратности: ошибка в запросе может замедлить работу всей базы, особенно если условие обрабатывается без использования индексов. Перед изменением типовой конфигурации сделайте резервную копию и по возможности используйте расширения вместо прямой доработки — это сохранит возможность обновления.

Обращение к специалисту оправдано, когда нужного поля нет в доступных отборах, когда требуется сложная логика с группами «И/ИЛИ/НЕ», а также когда отбор должен применяться автоматически при открытии формы для определённых пользователей или ролей.

Итог

Что важно запомнить

В пользовательском режиме отбор задаётся через «Ещё — Настроить список» и настройки отчётов, для регулярных задач сохраняйте варианты. Проверяйте результат по строке условий и контрольным данным. Программные отборы и изменение запросов делайте только с резервной копией и лучше через расширение.

Часто задаваемые вопросы

Почему список документов пуст, хотя документы точно есть?

Почти всегда причина в активном отборе. Посмотрите на строку условий над списком и отключите её. Также проверьте установленный период: если журнал показывает только текущий день, документы других дат не видны.

Как отобрать документы сразу по нескольким контрагентам?

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

Чем отличается «Содержит» от «Равно» при отборе по наименованию?

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

Можно ли сохранить настроенный отбор списка, чтобы не задавать его каждый раз?

В отчётах — да, через сохранение варианта отчёта. Для обычных списков возможность зависит от конфигурации: в ряде типовых решений настройки списка сохраняются автоматически, в других — сбрасываются при закрытии. Гарантированный способ — попросить разработчика задать отбор программно.

Почему в отборе отчёта нет нужного мне поля?

Разработчик отчёта не включил это поле в настройки схемы компоновки данных. Пользователь добавить его не может — нужна доработка отчёта в конфигураторе: поле добавляется в набор данных и разрешается для отбора.

Опасно ли экспериментировать с отборами?

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