Отбор данных в списках и запросах 1С:Предприятие 8.3
Содержание
Чтобы сделать выборку в 1С 8.3, откройте нужный список (справочник, журнал документов
, регистр) и нажмите Ещё → Настроить список. На вкладке Отбор добавьте поле, выберите условие — Равно, В списке, Содержит, Больше — и задайте значение. Список сразу покажет только подходящие строки. Для разовой выборки по одному значению хватит правого клика по ячейке; для сложных условий и выгрузки в таблицу нужен запрос.
Что выбрать, зависит от задачи. Найти в журнале все документы одного контрагента — это быстрый отбор в две секунды. Собрать остатки на складе по группе товаров на конкретную дату — расширенный отбор по периоду. Выгрузить данные сразу из нескольких таблиц с расчётами — только запрос. Ниже разобраны все три уровня, от самого простого к самому мощному.
| Задача | Инструмент | Где |
|---|---|---|
| Найти строки по одному значению | Отбор по текущей колонке | Правый клик в списке |
| Несколько условий сразу | Настройка списка, вкладка Отбор | Ещё → Настроить список |
| Отбор по дате и периоду | Поле периода + условие Интервал | Командная панель списка |
| Выгрузка и расчёты по нескольким таблицам | Запрос | Консоль запросов |
Быстрый отбор в списке справочника или документа
Самый частый случай — нужно оставить в списке только строки с нужным значением. Три способа, по возрастанию гибкости.
Правый клик по ячейке. Встаньте на ячейку с нужным значением (например, на колонку «Контрагент» в журнале «Реализации») и в контекстном меню выберите команду отбора по текущей колонке. Список тут же свернётся до строк с этим же контрагентом. Рядом есть команда отмены отбора — она его снимает.
Поиск по списку. Нажмите Ctrl+F или кнопку поиска в командной панели, введите фрагмент текста. Это именно поиск-подсветка, он подходит, когда вы не знаете точное значение, а помните часть названия или номер.
Настройка списка. Для постоянного или составного отбора откройте Ещё → Настроить список. Это главный инструмент: здесь собираются все условия, сортировка и оформление.
Быстрый отбор по колонке и поиск сбрасываются при закрытии формы. Чтобы отбор сохранился, задавайте его через Настроить список — такую настройку можно запомнить (см. раздел про сохранение ниже).
📌 Где искать команду настройки списка в разных конфигурациях на 8.3 (интерфейс «Такси»):
- 🧾 Бухгалтерия 3.0, ЗУП 3.1, УТ 11 — кнопка
Ещёв правом верхнем углу списка, пунктНастроить список. - 🧩 Если списков открыто несколько, каждый настраивается отдельно: настройка привязана к конкретной форме, а не ко всей программе.
Расширенный отбор: условия и операторы сравнения
Вкладка Отбор в настройке списка — это конструктор условий. Слева дерево доступных полей (реквизиты объекта и связанные с ним), справа — выбранные условия. Добавляете поле, выбираете вид сравнения и значение.
Основные операторы, которые доступны в типовых списках:
| Условие | Когда применять |
|---|---|
Равно / Не равно | Точное совпадение по одному значению |
В списке / Не в списке | Несколько значений сразу (три склада, пять контрагентов) |
В группе / В группе из списка | Значение входит в выбранную группу справочника |
Содержит / Не содержит | Фрагмент текста в наименовании или комментарии |
Больше, Меньше, ≥, ≤ | Числа, суммы, даты |
Интервал | Диапазон «от и до» — суммы или даты |
Заполнено / Не заполнено | Проверка на пустое значение реквизита |
Несколько условий работают по логике «И»: строка попадёт в выборку, только если выполнены все. Чтобы отобрать реализации на сумму больше 100 000 по группе товаров «Бытовая техника», добавьте два условия — Сумма Больше 100000 и Номенклатура В группе Бытовая техника.
Оператор Содержит ищет подстроку без учёта регистра, но чувствителен к лишним пробелам. «Ромашка » и «Ромашка» для него — разные строки. Если отбор по тексту ничего не находит, проверьте, нет ли пробела в начале или конце значения.
Условие можно временно отключить, не удаляя: у каждой строки отбора есть флажок. Это удобно, когда вы подбираете комбинацию и хотите быстро проверить, что даёт каждое условие по отдельности.
Ещё → Настроить список, вкладка Отбор. Задайте все условия и сохраните настройку, чтобы не вводить заново.Настройки, раздел Отборы. Логика та же, что в списке, плюс группировки и итоги.Отбор по дате и периоду
Даты — отдельная история, потому что в журналах документов и в регистрах есть встроенный период, а в справочниках его нет.
В журналах документов. В командной панели есть выбор периода (кнопка с календарём или поле «Период»). Выберите стандартный интервал — «Этот месяц», «Этот квартал», «Этот год» — или задайте произвольные даты «с» и «по». Это отсекает документы по дате проведения и работает быстрее, чем условие на поле «Дата», потому что опирается на основной порядок журнала.
Через вкладку «Отбор». Если нужен нестандартный диапазон или отбор по дате внутри сложного условия, добавьте поле Дата с оператором Интервал и укажите границы. Для одной даты подойдёт Больше или равно в паре с Меньше.
При выборе интервала по датам помните про время. Документ от 31 числа с временем 23:59:30 попадёт в интервал «по 31 число» только если верхняя граница включает конец дня. В стандартном выборе периода 1С это учитывает автоматически, а вот при ручном условии Меньше или равно 31.12 время обнуляется до начала суток — документы за последний день выпадут. Задавайте верхнюю границу первым числом следующего периода с условием Меньше.
Периодические регистры сведений. У периодического регистра (курсы валют, цены номенклатуры, кадровая история) каждая запись привязана к дате. В списке такого регистра период отбирает записи по полю периода. Если нужно значение, действующее на конкретную дату, а не все записи, — это уже не отбор списка, а срез. Срез на дату (последнее значение до указанного момента) получают либо специальной командой получения актуальных данных в форме, либо запросом к виртуальной таблице среза.
Как сохранить настройки отбора и вернуться к ним
Настроенный отбор не обязательно задавать заново при каждом открытии.
- Настройте отбор и сортировку так, как нужно.
- В меню
Ещёвыберите сохранение настройки — программа предложит дать ей имя (например, «Долги по рознице»). - При следующем открытии списка выберите сохранённую настройку из меню
Ещё— отбор применится целиком.
Сохранённые настройки привязаны к пользователю: ваши отборы не видят коллеги, и наоборот. Это удобно — у каждого бухгалтера свой набор рабочих выборок.
Отдельно стоит отметить поведение «запоминания» формы. По умолчанию 1С запоминает положение списка между сеансами: закрыли с активным отбором — при следующем входе он нередко остаётся. Если список внезапно показывает не все данные, первым делом проверьте, не висит ли на нём забытый отбор.
Если коллега жалуется, что «пропали документы», почти всегда виноват сохранённый или забытый отбор. Откройте Настроить список, посмотрите вкладку Отбор и снимите лишние условия. Данные никуда не делись — их просто скрыл фильтр.
Выборка данных запросом через консоль запросов
Когда нужно собрать данные из нескольких таблиц, посчитать итоги или выгрузить результат в таблицу — возможностей списка не хватает. Здесь работает язык запросов.
Консоль запросов — это внешняя обработка. В типовые конфигурации она обычно не входит: её берут из поставки ИТС или из средств разработчика и открывают в режиме 1С:Предприятие через Файл → Открыть. Запускать консоль и выполнять запросы к рабочей базе должен человек, понимающий, что делает: запрос только читает данные и ничего не меняет, но может ощутимо нагрузить сервер.
Простой запрос — выбрать непомеченную номенклатуру из конкретной группы:
ВЫБРАТЬ
Номенклатура.Наименование,
Номенклатура.Артикул,
Номенклатура.ЕдиницаИзмерения
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
Номенклатура.ПометкаУдаления = ЛОЖЬ
И Номенклатура.Родитель = &Группа
УПОРЯДОЧИТЬ ПО
Номенклатура.Наименование
Разберём по частям:
- 🔹
ВЫБРАТЬ— перечисляете поля, которые нужны в результате. - 🔹
ИЗ ... КАК— таблица-источник и её псевдоним. - 🔹
ГДЕ— условия отбора, та же логика, что на вкладкеОтбор, но без ограничений интерфейса. - 🔹
&Группа— параметр. Его значение задаётся в консоли перед выполнением, чтобы не прописывать ссылку прямо в тексте. - 🔹
УПОРЯДОЧИТЬ ПО— сортировка результата.
Отбор «одно из нескольких значений» в запросе делают через В:
ГДЕ
Реализация.Склад В (&Склады)
В параметр &Склады передают список из нескольких складов. Для диапазона дат — пара условий:
ГДЕ
Реализация.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
Для оборотов и остатков не обращайтесь к документам напрямую — используйте виртуальные таблицы регистров (Остатки, Обороты, ОстаткиИОбороты). Они уже агрегируют данные и работают в разы быстрее, чем перебор движений документов.
Результат запроса в консоли выводится таблицей, которую можно отсортировать по колонкам и сохранить во внешний файл для дальнейшей работы в Excel.
Почему отбор не работает: разбор частых ситуаций
Чаще всего «сломанный» отбор — это не ошибка программы, а особенность данных или условия.
Ещё → Настроить список, вкладка Отбор, снимите лишние условия и расширьте период.Равно вместо В группе. Равно ищет точное совпадение с самой группой, а не с элементами внутри неё. Поменяйте оператор на В группе.Как ускорить выборку по большим спискам
На базе в сотни тысяч документов неудачный отбор заметно тормозит. Несколько приёмов, которые ускоряют выборку в разы.
- ⚡ Сначала период, потом остальное. Отбор по периоду отсекает основную массу данных по индексу. Условие на период плюс дополнительные фильтры работает быстрее, чем фильтры без ограничения даты.
- ⚡ Отбирайте по индексированным полям. Ссылочные реквизиты (контрагент, склад, организация) индексированы и фильтруются быстро. Отбор по текстовому комментарию через
Содержитидёт перебором всех строк — он медленный на больших объёмах. - ⚡ Не тяните всё подряд в запрос. В
ВЫБРАТЬперечисляйте только нужные поля, а не всю таблицу. Ограничивайте результат черезПЕРВЫЕ N, если нужны не все строки. - ⚡ Виртуальные таблицы вместо движений. Для остатков и оборотов берите виртуальные таблицы регистров — они агрегируют данные на стороне СУБД.
- ⚡ Избегайте отбора по вычисляемым выражениям. Условие на функцию или расчёт в
ГДЕне может опереться на индекс, и запрос переходит к полному сканированию.
Если список открывается долго даже без отбора, дело часто не в выборке, а в условном оформлении формы или в большом числе колонок. Проверьте вкладку Условное оформление в настройке списка — тяжёлые правила замедляют отрисовку.
Для регулярных выгрузок, которые повторяются каждый день, разовый отбор в списке — не лучший путь. Такие задачи оформляют отчётом на системе компоновки данных: настройки отбора в нём сохраняются как варианты, а результат можно вывести в удобной группировке и выгрузить по расписанию.
Частые вопросы
Чем отбор в списке отличается от выборки запросом?
Как отобрать документы сразу по нескольким контрагентам?
В списке и отметьте нужных контрагентов. В запросе то же самое делается через В (&СписокКонтрагентов).Почему после отбора по группе не видно товаров внутри неё?
Равно вместо В группе. Равно сравнивает значение с самой группой как с элементом, а В группе включает все элементы внутри неё и вложенных групп.Можно ли сохранить отбор, чтобы он применялся при каждом открытии списка?
Ещё. Она привязывается к вашему пользователю и выбирается из списка сохранённых настроек при открытии формы.