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