Быстрый старт · 12 мин
Что такое отбор в 1С и как им пользоваться
Разбираем, что такое отбор в 1С, как настроить отбор в списках, отчётах и динамических списках, какие виды сравнения существуют и как исправить типичные ошибки.
Отбор в 1С — это механизм фильтрации данных, который показывает пользователю не всю информацию из базы, а только ту часть, которая соответствует заданным условиям. С помощью отбора можно, например, вывести в списке документов только накладные за конкретный месяц, а в отчёте по продажам — только сделки определённого менеджера. Без отбора работать с большими объёмами данных было бы практически невозможно: пришлось бы вручную искать нужные записи среди тысяч строк.
Механизм отбора встроен практически во все объекты платформы 1С: списки справочников и документов, отчёты, динамические списки, журналы, обработки. При этом логика работы везде одинаковая: пользователь выбирает поле, указывает условие сравнения и задаёт значение, с которым сравниваются данные. Отличается только интерфейс настройки и место, где применяется фильтр.
Понимание того, как устроен отбор, важно и для рядовых пользователей, и для разработчиков. Пользователю это даёт быстрый доступ к нужной информации без обращения к программисту, а разработчику — возможность строить гибкие отчёты и формы с предустановленными фильтрами. Ниже разберём виды отборов, способы их настройки, типичные ошибки и ограничения.
Где в 1С применяется отбор
Чаще всего пользователь сталкивается с отбором в списках: справочниках (номенклатура, контрагенты, сотрудники) и журналах документов (реализации, поступления, платёжные поручения). В типовых конфигурациях на управляемых формах над списком обычно есть строка поиска и кнопки быстрых отборов, а полная настройка доступна через меню «Ещё» → «Настроить список».
Вторая большая область — отчёты. Практически любой отчёт в 1С построен на системе компоновки данных (СКД), и в нём отбор вынесен в отдельную закладку настроек. Например, в отчёте «Продажи» можно отобрать данные по организации, складу, контрагенту или группе номенклатуры. Настройки отчёта можно сохранять как варианты, чтобы не повторять настройку каждый раз.
Третья область — динамические списки и программный код. Разработчик может задать отбор в свойствах динамического списка формы, в запросе или через объект «ОтборКомпоновкиДанных». Для пользователя такие отборы выглядят как предустановленные фильтры, которые он может либо менять, либо нет — в зависимости от того, как настроена форма.
Из чего состоит условие отбора
Любое условие отбора состоит из трёх элементов. Первый — поле, то есть реквизит объекта, по которому фильтруем: «Организация», «Дата», «Сумма», «Контрагент». Второй — вид сравнения, определяющий, как именно сопоставлять значение поля с заданным. Третий — значение (или список значений), с которым сравниваем.
Виды сравнения зависят от типа поля. Для ссылочных полей доступны «Равно», «Не равно», «В списке», «Не в списке», «В группе» (для иерархических справочников — отберёт элементы внутри выбранной папки со всеми вложенными), «В группе из списка». Для строк есть «Содержит», «Начинается с», «Подобно». Для дат и чисел — «Больше», «Меньше», «Больше или равно», интервалы. Для дат также доступен вид «В периоде» с указанием начала и конца.
Условия можно группировать. По умолчанию несколько условий объединяются по «И»: документ должен удовлетворять всем условиям одновременно. Если нужна логика «ИЛИ», в настройках списка или отчёта создаётся группа условий с типом «Или». Есть также группы «Не» для отрицания целого набора условий. Неправильная группировка — одна из главных причин того, что отбор «не работает» так, как ожидалось.
Реквизит объекта: дата, контрагент, склад, сумма
Равно, в списке, содержит, больше, в периоде
Конкретный элемент, список значений или границы периода
И — все условия сразу, Или — хотя бы одно
Как настроить отбор в списке документов или справочника
В типовых конфигурациях на управляемом интерфейсе (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP и другие) порядок действий одинаков. Откройте нужный список, затем в меню «Ещё» выберите пункт «Настроить список». Откроется окно настроек, где на закладке «Отбор» можно добавить условия: выбрать поле из списка доступных, задать вид сравнения и значение.
Часто используемые поля (организация, контрагент, период) уже вынесены в шапку списка — их достаточно заполнить, и список отфильтруется автоматически. Если нужного поля нет ни в шапке, ни в списке доступных полей настройки, значит, разработчик конфигурации не включил его в состав доступных для отбора — это ограничение самой формы, а не ошибка пользователя.
После настройки проверьте результат: количество строк в списке должно уменьшиться, а в показанных записях значения отобранного поля должны соответствовать условию. Если список стал пустым, хотя данные точно есть, первым делом проверьте период отбора и лишние «забытые» условия от прежних настроек.
- 1Откройте список документов или справочника
- 2Нажмите «Ещё» и выберите «Настроить список»
- 3На закладке «Отбор» нажмите «Добавить» и выберите поле
- 4Укажите вид сравнения (равно, в списке, в периоде и т.д.)
- 5Задайте значение и нажмите «Завершить редактирование»
- 6Проверьте, что список показывает только нужные записи
Отбор в отчётах и сохранение настроек
В отчётах на СКД отбор находится в настройках отчёта: кнопка «Настройки» (или «Показать настройки»), закладка «Отбор». Принцип тот же, что и в списках, но есть важные отличия. Во-первых, отчёт может отбирать данные по полям, которых нет в самом списке объекта, — например, по валюте документа или по признаку проведения. Во-вторых, в отчётах часто используются параметры: «Период», «Организация» — они отличаются от отбора тем, что подставляются прямо в запрос и обязательны к заполнению.
Полезная возможность — сохранение варианта отчёта. Настроив отбор один раз, нажмите «Сохранить вариант отчёта» и задайте понятное имя, например «Продажи по розничным клиентам». В следующий раз достаточно выбрать сохранённый вариант, и все условия применятся автоматически. Это особенно удобно для регулярной отчётности с фиксированным набором фильтров.
Если отчёт формируется долго, первое, что стоит сделать, — сузить отбор: ограничить период, указать конкретную организацию или склад вместо «все». Отчёт без отборов заставляет систему обрабатывать всю таблицу данных, что на больших базах занимает заметное время и нагружает сервер.
Отбор в динамических списках и программная установка
Динамический список — это список, данные которого формируются запросом. Разработчик может задать отбор двумя способами: фиксированный, который пользователь не видит и не может отключить, и пользовательский, доступный для изменения через «Настроить список». Фиксированный отбор применяют, когда форма по смыслу должна показывать только часть данных — например, список только незакрытых заказов.
В коде отбор устанавливается через коллекцию элементов отбора компоновки данных. Типичный фрагмент выглядит так: получить «Список.КомпоновщикНастроек.Настройки.Отбор», добавить элемент, указать левое значение (поле), вид сравнения и правое значение, затем включить использование. Аналогично настраивается отбор при открытии формы выбора — через параметры формы, чтобы пользователь видел уже отфильтрованный список.
Для обычного пользователя важно понимать следствие: если список «упорно» не показывает часть документов при любых настройках, возможно, на форме стоит фиксированный отбор, заложенный разработчиком. Снять его пользовательскими средствами нельзя — потребуется доработка формы или использование другого списка (например, полного журнала документов).
Как выбрать способ отбора
Типичные ошибки и как их исправить
Самая частая жалоба — «отбор не работает, список пустой». В большинстве случаев причина не в программе, а в настройках: задан период, в котором нет документов; осталось старое условие от предыдущей настройки; условия объединены по «И», хотя требовалось «ИЛИ». Проверяйте список условий целиком, а не только то, которое добавили последним.
Вторая типичная ситуация — отбор по строковому полю с видом «Равно» не находит записи, хотя значение «вроде бы такое же». Причины: лишние пробелы в начале или конце строки, разный регистр введённых символов, неразрывные пробелы, скопированные из других программ. Для поиска по строкам надёжнее использовать вид сравнения «Содержит» с коротким уникальным фрагментом.
Третья группа ошибок — производительность. Отбор по нетипичному полю, не входящему в индексы, или условие «Содержит» по длинному тексту на большой таблице может выполняться долго. Если список «зависает» после установки отбора, попробуйте сначала сузить выборку по периоду или организации, а уже потом применять тяжёлые условия.
Ограничения и когда отбора недостаточно
Отбор работает только по тем полям, которые доступны в настройке конкретного списка или отчёта. Если нужного поля нет, пользователь не сможет добавить его сам — потребуется доработка конфигурации: включение поля в состав доступных полей динамического списка или изменение запроса отчёта. Это штатная ситуация, а не неисправность.
Ещё одно ограничение — права доступа. Если у пользователя нет прав на определённые документы или справочники, отбор по ним может быть недоступен, а сами данные не отобразятся даже при корректном условии. Прежде чем искать ошибку в настройках, убедитесь, что у пользователя есть доступ к нужным объектам.
Наконец, отбор не заменяет поиск и группировку. Если нужно не отфильтровать, а свернуть данные (посчитать итоги по менеджерам, складам, периодам), правильный инструмент — отчёт с группировками. Если нужно найти конкретный документ по номеру или фрагменту — быстрее воспользоваться строкой поиска в списке, а не строить условие отбора.
Как проверить, что отбор настроен правильно
В списке условий только нужные, без старых остатков
Есть забытые условия от прошлых настроек
Группа «И» или «ИЛИ» соответствует задаче
Условия по «И» дают пустой результат, хотя по отдельности работают
Показанные записи соответствуют значению отбора
В списке записи, не подходящие под условие, или список пуст
Список/отчёт обновляется за приемлемое время
Долгое ожидание — стоит сузить период и убрать тяжёлые условия
Частые вопросы об отборе в 1С
Чем отбор отличается от поиска в списке?
Поиск находит записи по совпадению текста в отображаемых колонках и обычно показывает результат временно. Отбор — это устойчивое условие по конкретным полям: он остаётся активным, пока его не снять, и работает точнее, так как сравнивает значения реквизитов, а не видимый текст.
Как сбросить все отборы в списке?
Откройте «Ещё» → «Настроить список» и удалите все условия на закладке «Отбор», затем очистите поля быстрого отбора в шапке списка. В некоторых конфигурациях есть команда «Установить стандартные настройки», возвращающая настройки списка к исходному состоянию.
Почему отбор по дате не находит документы за нужный день?
Чаще всего дело во времени: дата документа хранится с точностью до секунды, и условие «Равно» по дате без времени может не совпасть. Используйте вид сравнения «В периоде» с указанием начала и конца дня либо стандартный период «Сегодня».
Можно ли сохранить настройку отбора, чтобы не настраивать каждый раз?
В отчётах — да, через сохранение варианта отчёта. В списках настройки обычно запоминаются автоматически для текущего пользователя. Если настройки «слетели», возможно, выполнялась очистка пользовательских настроек администратором.
Что делать, если нужного поля нет в списке доступных для отбора?
Это ограничение формы или запроса отчёта, установленное разработчиком. Пользовательскими средствами добавить поле нельзя. Варианты: использовать другой отчёт или журнал, где поле доступно, либо обратиться к разработчику для доработки состава доступных полей.
Влияет ли отбор на сами данные в базе?
Нет. Отбор меняет только отображение: какие записи показывать в списке или включать в отчёт. Данные в базе остаются нетронутыми, поэтому экспериментировать с условиями безопасно — снять отбор можно в любой момент.
Что важно запомнить
Отбор в 1С — это фильтр вида «поле — вид сравнения — значение», который ограничивает показываемые данные, не изменяя их. Настраивается через «Ещё — Настроить список» или настройки отчёта; условия объединяются по «И» или «ИЛИ». Большинство проблем решается проверкой состава условий, периода и вида сравнения.