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

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

Как добавить отбор в отчете 1С: инструкция для пользователя и разработчика

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

Отбор в отчете 1С ограничивает выводимые данные заданными условиями: по организации, контрагенту, номенклатуре, периоду или любому другому реквизиту. Без отбора отчет строится по всей базе, что замедляет формирование и затрудняет анализ. В большинстве конфигураций на базе управляемых форм (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ERP) отборы настраиваются прямо в форме отчета без программирования.

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

Ниже разобраны все три сценария с точными действиями, типичными ошибками и способами проверить, что отбор действительно сработал.

Где в отчете находятся настройки отбора

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

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

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

Как добавить простой отбор через форму настроек

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

Выберите поле, например «Номенклатура». Затем задайте вид сравнения: «Равно», «Не равно», «В списке», «В группе», «Содержит» (для строк) и другие. Для одиночного значения подходит «Равно», для нескольких позиций — «В списке» с добавлением элементов в список значений, для целой папки справочника — «В группе» или «В иерархии».

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

Порядок действий
  1. 1
    Откройте отчет и нажмите «Настройки»
  2. 2
    Перейдите на закладку «Отбор»
  3. 3
    Нажмите «Добавить» и выберите поле из списка
  4. 4
    Установите вид сравнения и значение
  5. 5
    Проверьте, что флажок у элемента отбора включен
  6. 6
    Нажмите «Закрыть и сформировать» и оцените результат

Виды сравнения и когда какой применять

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

Вид сравненияКак работаетКогда применять
РавноТочное совпадение со значениемОдин контрагент, один склад, один документ
В спискеСовпадение с любым элементом спискаНесколько конкретных позиций номенклатуры
В группе / В иерархииЭлемент и все вложенные в папкуЦелая группа номенклатуры или подразделение с подчиненными
СодержитПодстрока в строковом полеПоиск по части наименования
Заполнено / Не заполненоПроверка на пустое значениеДокументы без указанного договора или подразделения

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

Типичные ошибки
01
Снятый флажок у элемента отбора — условие не применяется, отчет показывает все данные
02
Вид сравнения «Равно» вместо «В группе» — из отчета выпадает номенклатура из подпапок
03
Отбор по строковому полю с лишним пробелом в значении — совпадений нет, отчет пустой
04
Противоречащие условия через «И» — например, организация = А и организация = Б одновременно, результат всегда пуст

Как объединять несколько условий и группы отборов

Когда условий несколько, они по умолчанию соединяются логическим «И»: в отчет попадают только записи, удовлетворяющие всем условиям одновременно. Если нужно «ИЛИ» — например, показать продажи либо по складу А, либо по складу Б, — используйте группу условий.

На закладке «Отбор» нажмите «Сгруппировать условия» и выберите тип группы: «Группа И», «Группа ИЛИ», «Группа НЕ». Затем перетащите или добавьте условия внутрь группы. Типичная конструкция: верхний уровень — «И» (период, организация), внутри вложенная «Группа ИЛИ» с двумя складами. Условие «НЕ» инвертирует результат группы — удобно для исключения набора значений.

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

Отбор по периоду: особенности

Период в отчетах 1С обычно задается отдельным полем над таблицей результата — это не совсем отбор, а параметр. Но на закладке «Отбор» можно добавить и условие по полю «Период» или «Дата». Разница принципиальна: параметр периода определяет, за какой интервал вообще запрашиваются данные, а отбор по дате дополнительно фильтрует записи внутри уже полученной выборки.

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

Если отчет с отбором формируется заметно дольше, чем без него, чаще всего условие наложено на вычисляемое или строковое поле с видом сравнения «Содержит». По возможности замените его на отбор по ссылочному полю («Равно» или «В списке») — такие условия выполняются на уровне запроса и работают значительно быстрее.
ПЗ
Практическое замечание

Как сохранить отбор, чтобы не настраивать заново

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

При сохранении можно указать доступность варианта: только для себя или для всех пользователей (последнее требует соответствующих прав). Это удобно, когда единые настройки отбора нужны всему отделу — администратор настраивает вариант один раз, а сотрудники просто выбирают его из списка.

Если вариантов накопилось много, неактуальные удаляйте через «Выбрать вариант» → «Удалить», чтобы не путать пользователей. Перед удалением общего варианта убедитесь, что им никто не пользуется.

Как добавить отбор в СКД при доработке отчета

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

На закладке «Настройки» СКД в режиме разработчика перейдите на «Отбор» и перетащите нужное поле из списка доступных полей слева. Чтобы поле было доступно пользователю в быстрых настройках, в колонке флажков отметьте его включение в пользовательские настройки, а в свойствах поля набора данных проверьте, что не снято ограничение «Условие».

Программно отбор добавляется через объект настроек компоновщика. Пример для типового кода:

Настройки = Отчет.КомпоновщикНастроек.Настройки;

ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Организация");

ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;

ЭлементОтбора.ПравоеЗначение = ВыбраннаяОрганизация;

ЭлементОтбора.Использование = Истина;

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

Как проверить, что отбор работает правильно

Самый надежный способ — сверка с эталоном. Сформируйте отчет без отбора и выпишите итоговые показатели. Затем примените отбор и проверьте: записи, не подходящие под условие, исчезли, а итоги по оставшимся сошлись с ручной выборкой по одному-двум объектам (например, по оборотно-сальдовой ведомости конкретного контрагента).

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

Контрольные точки

Как проверить результат

Флажок у элемента отбора
Норма

Флажок установлен, условие активно

Тревожный признак

Флажок снят — отбор не применяется

Состав данных в результате
Норма

В отчете только записи, подходящие под условие

Тревожный признак

Присутствуют лишние записи или отчет пуст при заведомо существующих данных

Итоги отчета
Норма

Итог по отбору меньше или равен итогу без отбора

Тревожный признак

Итог с отбором больше итога без отбора — ошибка в логике групп

Частые вопросы

Почему нужного поля нет в списке для отбора?

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

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

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

Отбор настроен, но при следующем открытии отчета он пропал. Что делать?

Настройки не были сохранены как вариант. Настройте отбор заново и выберите «Сохранить вариант отчета» (или «Сохранить настройки»), задав имя варианта. При следующем открытии выберите этот вариант из списка.

Чем отличается отбор от параметра отчета?

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

Можно ли исключить значения, а не выбрать их?

Да. Используйте виды сравнения «Не равно», «Не в списке», «Не в группе» или оберните условия в «Группу НЕ». Например, «Склад Не в списке» покажет все документы, кроме перечисленных складов.

Отчет с отбором формируется очень долго. Как ускорить?

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

Итог

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

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