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