Отчеты и Аналитика · 10 мин
Как добавить отбор в 1С: списки, отчеты и запросы
Как добавить отбор в 1С: настройка в отчетах и списках, отбор через СКД, программный отбор в запросах и динамических списках. Пошаговые инструкции и частые ошибки.
Отбор в 1С — это условие, по которому программа показывает только нужные строки: документы одного контрагента, товары конкретной группы, проводки за период. Добавить отбор можно несколькими способами, и выбор зависит от того, где вы работаете: в форме списка, в отчете на СКД или в программном коде. Путаница между этими сценариями — главная причина, почему «отбор не работает».
В пользовательском режиме отбор добавляется без изменения конфигурации: через кнопку «Настроить список» в журналах документов и справочников или через кнопку «Настройки» в отчетах. В режиме разработки отборы задаются в схеме компоновки данных, в свойствах динамического списка или непосредственно в тексте запроса. Ниже разобраны все основные сценарии с точными действиями.
Перед началом проверьте, какая у вас задача: разово отфильтровать данные для себя, сохранить настройку для коллектива или встроить отбор в конфигурацию. От этого зависит инструмент и уровень прав, которые потребуются.
Отбор в форме списка: журналы документов и справочники
Откройте нужный список — например, «Реализация товаров и услуг» или справочник «Номенклатура». В командной панели формы нажмите «Ещё» и выберите пункт «Настроить список». В типовых конфигурациях на управляемых формах (УТ 11, ERP, БП 3.0) этот пункт доступен практически в любом журнале.
В открывшемся окне на закладке «Отбор» нажмите «Добавить новый элемент». В поле слева выберите реквизит, по которому фильтруете: «Организация», «Контрагент», «Склад» и т.д. Затем задайте вид сравнения — «Равно», «Не равно», «В списке», «Содержит» — и само значение. Нажмите «ОК» или «Завершить редактирование», и список сразу перестроится.
Если нужного реквизита нет в перечне полей отбора, нажмите «Добавить новый элемент» и проверьте, не скрыт ли он: в некоторых формах часть полей доступна через кнопку выбора поля с иерархией. Реквизиты табличных частей (например, «Номенклатура» внутри документа) доступны не во всех списках — это ограничение конкретной формы, а не ошибка.
- 1Откройте список и нажмите «Ещё → Настроить список»
- 2На закладке «Отбор» нажмите «Добавить новый элемент»
- 3Выберите поле, вид сравнения и значение
- 4Нажмите «Завершить редактирование» и проверьте результат
- 5При необходимости сохраните настройку как вариант списка
Отбор в отчете на СКД через «Настройки»
Отчеты в типовых конфигурациях построены на системе компоновки данных (СКД), и отбор в них добавляется через настройки. Откройте отчет, например «Оборотно-сальдовая ведомость» или «Продажи», и нажмите кнопку «Настройки» (или «Показать настройки»). В простом виде настроек доступны период и основные отборы, вынесенные разработчиком.
Если нужного поля нет, переключитесь в расширенный режим: «Ещё → Расширенный» или соответствующая кнопка в окне настроек. На закладке «Отбор» вы увидите полный список доступных полей. Перетащите нужное поле в список отборов или добавьте его кнопкой, задайте вид сравнения и значение. После нажатия «Сформировать» отчет перестроится с учетом условия.
Полезный прием — отбор по полю, которое не выводится в отчет. Например, можно отобрать продажи по статье расходов или по признаку «Проведен», не добавляя эти колонки в таблицу. Достаточно, чтобы поле присутствовало в наборе данных СКД.
Быстрый отбор и поиск без настроек
Для разовой фильтрации полноценная настройка не обязательна. В формах списков работает поиск по строке (поле в командной панели), а также команда «Найти» (Ctrl+F) с возможностью поиска по конкретной колонке. Это быстрее, но не сохраняется и не поддерживает сложные условия.
Ещё один быстрый способ — отбор по текущему значению. Установите курсор на строку с нужным контрагентом, нажмите «Ещё» и найдите команду вида «Отбор по значению» либо используйте контекстное меню ячейки. Во многих типовых формах это добавляет элемент отбора автоматически.
Учтите ограничение: поиск по строке ищет только по отображаемым полям и может не охватывать реквизиты, скрытые из колонок. Для точных условий (диапазоны дат, списки значений, отрицания) используйте полноценный отбор через «Настроить список».
Способы отбора в пользовательском режиме
Подходит для разового поиска по видимым колонкам; не сохраняется и не поддерживает условия «в списке», «не равно»
Универсальный вариант для журналов и справочников; поддерживает сложные условия и сохранение вариантов
Для отчетов; дает доступ ко всем полям набора данных и группировкам условий
Программный отбор: запрос и динамический список
В конфигураторе отбор в запросе задается предложением ГДЕ (WHERE). Условие может быть жестко прописано в тексте или передано через параметр:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Реализация.Ссылка,
| Реализация.Контрагент
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Контрагент = &Контрагент
| И Реализация.Проведен";
Запрос.УстановитьПараметр("Контрагент", ВыбранныйКонтрагент);
Для динамических списков (основа журналов на управляемых формах) отбор добавляется через коллекцию Элементы компоновщика настроек. Типовой прием — установить отбор при создании формы на сервере:
ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.ПравоеЗначение = ТекущаяОрганизация;
ЭлементОтбора.Использование = Истина;
Если отбор должен быть недоступен пользователю для отключения (например, разграничение по организации), используйте свойство РежимОтображения = Недоступный или задавайте условие прямо в тексте запроса динамического списка через ГДЕ — тогда пользователь его не увидит и не снимет.
Отбор в схеме компоновки данных (СКД)
Разработчик задает отборы отчета в конфигураторе: откройте макет схемы компоновки данных отчета, перейдите на закладку «Настройки» и добавьте элементы на закладке «Отбор». Чтобы пользователь видел и мог менять условие, включите флажок «Включать в пользовательские настройки» в свойствах элемента отбора и задайте режим редактирования «Быстрый доступ» — тогда поле появится прямо на форме отчета.
Если условие должно применяться всегда и не зависеть от пользователя, эффективнее перенести его в текст запроса набора данных (ГДЕ) или в связи наборов данных. Такой отбор выполняется на уровне СУБД и не раздувает настройки отчета.
Проверьте результат, сформировав отчет из конфигуратора (кнопка «Открыть» / предпросмотр СКД) и из режима предприятия под обычным пользователем: права на данные могут менять результат, и отбор, «работающий» у разработчика, у пользователя с ограниченными правами даст пустую таблицу.
Как проверить, что отбор применился
В шапке видно примененное условие (поле и значение)
Отчет сформирован, но условия в шапке нет — отбор не применился
Все строки соответствуют условию, количество строк уменьшилось
Список не изменился — отбор добавлен без флажка «Использование»
Сохраненный вариант восстанавливает отбор
Настройка сбрасывается — вариант не сохранен
Типичные ошибки и ограничения
Самая частая ошибка — забытый флажок «Использование» у элемента отбора. Элемент добавлен, но выключен, поэтому список не меняется. В настройках СКД выключенные элементы отображаются бледно — проверяйте это в первую очередь.
Вторая группа ошибок связана с типом значения: отбор по строке «вводится» как текст, а поле имеет ссылочный тип, либо дата задана без учета времени (документы за последний день «пропадают» из-за границы 23:59:59). Для периодов используйте стандартные периоды или параметры «НачалоПериода»/«КонецПериода».
Третья причина «неработающего» отбора — права доступа (RLS). Если на уровне записей пользователю закрыта часть данных, отбор визуально сработает, но результат будет неполным. Это норма для механизма ограничения доступа, а не сбой настройки.
Что важно запомнить
Пользовательские отборы добавляются через «Настроить список» и «Настройки» отчета без изменения конфигурации; программные — через ГДЕ в запросе или Отбор динамического списка. Всегда проверяйте флажок «Использование», тип значения и сохраняйте удачные настройки как варианты.
Частые вопросы
Почему в списке нет кнопки «Настроить список»?
Либо форма списка нестандартная (разработчик не вывел настройки), либо у вас недостаточно прав. Проверьте меню «Ещё» полностью и уточните у администратора, есть ли у роли доступ к настройкам списка. В некоторых формах отбор вынесен отдельными полями прямо на форму.
Как отобрать по нескольким значениям одного поля?
Используйте вид сравнения «В списке» (или «В группе из списка» для иерархических справочников) и добавьте нужные значения в список. Альтернатива — несколько элементов отбора, объединенных в группу «ИЛИ» через кнопку «Сгруппировать условия».
Можно ли сделать отбор, который пользователь не сможет снять?
Да. В динамическом списке задайте условие в тексте запроса через ГДЕ или установите элементу отбора режим отображения «Недоступный». В СКД перенесите обязательное условие в запрос набора данных — пользовательские настройки его не затронут.
Отбор по дате не захватывает документы последнего дня. Что делать?
Причина в том, что дата документа хранится со временем, а «31.12» означает начало дня. Используйте стандартный период, функцию КонецПериода() в запросе или задайте границу как «меньше» первого числа следующего дня.
Как сохранить настройку отбора для всех пользователей?
В списке — через сохранение варианта настройки (доступность зависит от прав). В отчете — «Сохранить вариант отчета» с пометкой «Доступен всем», если у вас есть право сохранения общих вариантов. Пользователи увидят вариант в списке вариантов отчета.
Почему отбор по контрагенту в отчете не находит поле?
Поле может называться иначе («Партнер», «Плательщик») или быть доступно только через расширенный режим настроек. Откройте полный список полей на закладке «Отбор» в расширенном режиме и воспользуйтесь поиском по имени поля.