Отбор и поиск документов в 1С 8.3: от фильтра списка до запроса

· 10 мин

Содержание

Чтобы выбрать документы в 1С 8.3, откройте их список и задайте отбор: период — Ещё → Установить период, поиск по любой колонке — Ещё → Расширенный поиск (Alt+F), сложные условия — на вкладке «Отбор» в настройке списка из того же меню «Ещё». Если условие касается товаров внутри документа, проводок или данных из нескольких видов документов, интерфейса уже мало: нужен запрос.

Способы идут от простых к сложным: сначала для бухгалтера, потом для программиста. Всё описанное работает на платформе 8.3 в интерфейсе «Такси» и не зависит от конкретной типовой конфигурации: примеры даны на документах БП 3.0, но в УТ 11 и ЗУП 3.1 механика та же.

Быстрый отбор документов прямо в списке

Список документов в 1С — это динамический список. У него четыре штатных инструмента отбора, и они складываются друг с другом.

🔹 Строка поиска в правом верхнем углу списка. Наберите номер, часть названия контрагента или сумму — 1С оставит строки, где найдено совпадение хотя бы в одной видимой колонке. Сочетание клавиш — Ctrl+F.

🔹 Период. Команда Ещё → Установить период ограничивает список датами. Это первое, что стоит сделать в базе за несколько лет: список открывается быстрее, а поиск не перебирает лишнее.

🔹 Расширенный поиск (Ещё → Расширенный поиск, Alt+F). Выберите колонку, введите значение и вариант сравнения: «по началу строки», «по части строки» или «точное совпадение». Удобно для номеров вида 0000-000123: ищите по части 123.

🔹 Отбор по значению в ячейке. Встаньте на нужную ячейку, например на контрагента «Альфа», и нажмите Alt+F: значение текущей ячейки подставится в поиск само. Список сожмётся до документов этого контрагента.

Во многих формах БП 3.0 над списком есть ещё быстрые поля отбора — «Организация», «Контрагент», «Склад». Они работают так же и сохраняются между сеансами.

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

Несколько документов выделяют мышью с зажатым Ctrl (по одному) или Shift (диапазон). Выделенные строки можно разом провести, распечатать или пометить на удаление командами списка.

Настройка списка: условия по любым реквизитам

Когда условий больше одного или нужен реквизит, которого нет в колонках, откройте в меню «Ещё» настройку списка. Окно состоит из вкладок «Отбор», «Сортировка», «Условное оформление» и «Группировка».

На вкладке «Отбор»:

  1. Слева раскройте список доступных полей. Там все реквизиты шапки документа, даже скрытые из колонок: «Ответственный», «Комментарий», «Договор», «Валюта документа».
  2. Перетащите поле вправо или дважды щёлкните по нему.
  3. Выберите вид сравнения: «Равно», «Не равно», «В списке», «В группе», «Заполнено», «Не заполнено», «Содержит», «Больше», «Меньше».
  4. Укажите значение и нажмите «Завершить редактирование».

Условия можно объединить в группы «И», «ИЛИ», «НЕ». Пример: все реализации, где контрагент «Альфа» ИЛИ «Бета», сумма больше 100 000 и комментарий не заполнен.

ЗадачаПолеВид сравнения
Документы конкретного менеджераОтветственныйРавно
Без комментарияКомментарийНе заполнено
Только по группе покупателейКонтрагентВ группе
Крупные суммыСумма документаБольше или равно
Несколько договоров сразуДоговорВ списке

Дополнительные реквизиты

Если в базе используются дополнительные реквизиты (в БП включаются в Администрирование → Общие настройки, флажок «Дополнительные реквизиты и сведения»), отбор по ним делается двумя путями.

  • 📌 В настройке списка такие реквизиты появляются в доступных полях отдельной группой — для документов, у которых они заведены.
  • 📌 Если в списке их нет, выручает запрос: значения хранятся в табличной части ДополнительныеРеквизиты самого документа, колонки Свойство и Значение.
ВЫБРАТЬ
	ДопРекв.Ссылка КАК Документ
ИЗ
	Документ.РеализацияТоваровУслуг.ДополнительныеРеквизиты КАК ДопРекв
ГДЕ
	ДопРекв.Свойство = &Свойство
	И ДопРекв.Значение = &Значение

Настроенный отбор можно сохранить: Ещё → Сохранить настройки. Вернуть список к исходному виду — Ещё → Установить стандартные настройки.

Как найти документы по товару или услуге внутри

Самый частый вопрос: «в каких документах была эта номенклатура?». Отбор по шапке тут не поможет, потому что товар лежит в табличной части.

Способ 1. Места использования

Откройте карточку номенклатуры и выполните Ещё → Места использования. Откроется перечень всех объектов, где она встречается: поступления, реализации, перемещения, инвентаризации. Работает для любой ссылки — контрагента, договора, склада, основного средства.

Минус: выводится всё подряд, без периода и без количества.

Способ 2. Отчёт по регистру

Для проведённых документов надёжнее отчёт. В БП 3.0 подойдут «Оборотно-сальдовая ведомость по счёту» (41, 10, 43) с расшифровкой до документа и «Карточка счёта» с отбором по субконто «Номенклатура». Двойной щелчок по сумме открывает документ.

Способ 3. Полнотекстовый поиск

Если включён полнотекстовый поиск (в БП — Администрирование → Общие настройки, раздел «Полнотекстовый поиск данных»), строка поиска в заголовке окна найдёт документы, где слово встречается в любом реквизите, включая табличные части. Индекс нужно обновлять: в настройке задаётся расписание.

Способ 4. Запрос к табличной части

Программисту проще всего обратиться к табличной части напрямую:

ВЫБРАТЬ РАЗЛИЧНЫЕ
	Товары.Ссылка КАК Документ,
	Товары.Ссылка.Дата КАК Дата,
	Товары.Ссылка.Контрагент КАК Контрагент
ИЗ
	Документ.РеализацияТоваровУслуг.Товары КАК Товары
ГДЕ
	Товары.Номенклатура = &Номенклатура
	И Товары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И Товары.Ссылка.Проведен
УПОРЯДОЧИТЬ ПО
	Дата

РАЗЛИЧНЫЕ здесь обязателен: если товар встречается в документе в двух строках, без него документ попадёт в результат дважды.

Выборка документов запросом: шаблоны на каждый день

Запрос пишут в конфигураторе, во внешней обработке или в консоли запросов. Базовая выборка документов по периоду и контрагенту:

ВЫБРАТЬ
	Док.Ссылка,
	Док.Номер,
	Док.Дата,
	Док.СуммаДокумента
ИЗ
	Документ.РеализацияТоваровУслуг КАК Док
ГДЕ
	Док.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И Док.Контрагент = &Контрагент
	И НЕ Док.ПометкаУдаления

Выполнение из кода:

Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(ДатаНачала));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(ДатаОкончания));
Запрос.УстановитьПараметр("Контрагент", Контрагент);

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
	Сообщить(СтрШаблон("%1 от %2 на сумму %3",
		Выборка.Номер, Формат(Выборка.Дата, "ДЛФ=D"), Выборка.СуммаДокумента));
КонецЦикла;

Полезные приёмы в условиях:

  • ⚙️ Док.Контрагент В (&СписокКонтрагентов) — несколько значений сразу; параметр — массив или список значений.
  • ⚙️ Док.Контрагент В ИЕРАРХИИ (&Группа) — все контрагенты группы и её подгрупп.
  • ⚙️ ПОДОБНО "%аренд%" — поиск подстроки в строковом реквизите, например в комментарии.
  • ⚙️ ВЫБРАТЬ ПЕРВЫЕ 10 — когда нужен только образец, а не вся таблица.

Короткий путь без запроса — метод менеджера Документы.РеализацияТоваровУслуг.Выбрать(ДатаНачала, ДатаОкончания). Он перебирает документы в хронологическом порядке, но отбор третьим параметром принимает только по индексируемым реквизитам. Для любых других условий берите запрос.

Какой инструмент выбрать для вашей задачи?

Отбор по статусу: проведённые, помеченные, без проводок

В списке статус виден по пиктограмме слева от строки: зелёная галочка — документ проведён, без галочки — записан, но не проведён, крестик — помечен на удаление. Для отбора в настройке списка используйте поля «Проведен» и «Пометка удаления» с видом сравнения «Равно» и значением «Да» или «Нет».

В запросе это реквизиты Проведен и ПометкаУдаления:

ГДЕ
	НЕ Док.Проведен
	И НЕ Док.ПометкаУдаления

Такой отбор показывает «зависшие» черновики — то, что менеджер записал и забыл провести.

Проведён, но без движений

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

ВЫБРАТЬ
	Док.Ссылка
ИЗ
	Документ.РеализацияТоваровУслуг КАК Док
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный КАК Проводки
		ПО Док.Ссылка = Проводки.Регистратор
ГДЕ
	Док.Проведен
	И Док.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И Проводки.Регистратор ЕСТЬ NULL

Для документов, которые двигают только регистры накопления (например, в УТ 11), в соединении указывают соответствующий регистр. Сами проводки любого документа пользователь видит кнопкой «Показать проводки и другие движения документа» (значок Дт/Кт) в форме документа или списка.

Обработка уже отобранных документов

Отбор редко нужен ради самого списка. Обычно дальше документы надо что-то с ними сделать.

  • 🛠 Изменить реквизит у многих документов. Выделите строки и выполните Ещё → Изменить выделенные. Откроется обработка группового изменения реквизитов: укажите поле, например «Ответственный», и новое значение.
  • 🛠 Перепровести. Выделенные документы проводятся командой «Провести» в списке.
  • 🛠 Выгрузить в Excel. Ещё → Вывести список — 1С сформирует табличный документ по текущему отбору, его можно сохранить в xlsx.
  • 🛠 Свой отчёт. Если одна и та же выборка нужна каждый месяц, запрос оформляют во внешний отчёт на СКД. В БП 3.0 его подключают в Администрирование → Печатные формы, отчеты и обработки, в УТ 11 — в НСИ и администрирование, после чего пользователь сам меняет параметры периода и отбора.

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

Для разовых сложных выборок программисты держат под рукой консоль запросов — внешнюю обработку, где запрос пишется и выполняется прямо в пользовательском режиме. Для нестандартных команд вроде открытия любых объектов включите «Все функции»: главное меню → Сервис → Параметры → флажок «Отображать команду “Все функции”».

Сложные выборки: временные таблицы и объединение видов документов

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

Объединение разных видов документов

Задача: все приходы и расходы по контрагенту за квартал в одной таблице.

ВЫБРАТЬ
	Пост.Ссылка КАК Документ,
	Пост.Дата КАК Дата,
	"Поступление" КАК Вид,
	Пост.СуммаДокумента КАК Сумма
ИЗ
	Документ.ПоступлениеТоваровУслуг КАК Пост
ГДЕ
	Пост.Контрагент = &Контрагент
	И Пост.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И Пост.Проведен

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	Реал.Ссылка,
	Реал.Дата,
	"Реализация",
	Реал.СуммаДокумента
ИЗ
	Документ.РеализацияТоваровУслуг КАК Реал
ГДЕ
	Реал.Контрагент = &Контрагент
	И Реал.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И Реал.Проведен

УПОРЯДОЧИТЬ ПО
	Дата

Имена и типы колонок берутся из первого запроса, поэтому псевдонимы задают только там. ОБЪЕДИНИТЬ ВСЕ работает быстрее, чем ОБЪЕДИНИТЬ: он не убирает дубли, а между разными видами документов их и нет.

Временная таблица как промежуточный отбор

Задача: реализации покупателям, которые за период не прислали ни одной оплаты.

ВЫБРАТЬ РАЗЛИЧНЫЕ
	Оплата.Контрагент КАК Контрагент
ПОМЕСТИТЬ ВТ_Оплатившие
ИЗ
	Документ.ПоступлениеНаРасчетныйСчет КАК Оплата
ГДЕ
	Оплата.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И Оплата.Проведен
ИНДЕКСИРОВАТЬ ПО
	Контрагент
;

////////////////////////////////////////////////////////////
ВЫБРАТЬ
	Реал.Ссылка,
	Реал.Контрагент,
	Реал.СуммаДокумента
ИЗ
	Документ.РеализацияТоваровУслуг КАК Реал
ГДЕ
	Реал.Дата МЕЖДУ &НачалоПериода И &КонецПериода
	И Реал.Проведен
	И НЕ Реал.Контрагент В
			(ВЫБРАТЬ
				ВТ.Контрагент
			ИЗ
				ВТ_Оплатившие КАК ВТ)

Временная таблица живёт до конца пакета (или до закрытия менеджера временных таблиц, если он подключён). ИНДЕКСИРОВАТЬ ПО ускоряет проверку В (...) на больших объёмах.

Где чаще всего ошибаются при отборе документов

ОшибкаЧто происходитКак правильно
Конец периода без времениПараметр 31.03.2025 0:00:00 отсекает документы, проведённые 31 марта днёмПередавайте КонецДня(Дата) или используйте КонецПериода(&Дата, ДЕНЬ) в запросе
Соединение с табличной частью без РАЗЛИЧНЫЕДокумент повторяется столько раз, сколько у него строкДобавьте РАЗЛИЧНЫЕ или группировку
Нет условия по организацииВ базе с несколькими фирмами в выборку попадают чужие документыДобавьте Док.Организация = &Организация
Обращение через точку в циклеДокумент.Контрагент.ИНН в цикле по тысячам документов — отдельный запрос на каждую строкуПолучайте нужные поля в самом запросе
Забытый сохранённый отборПользователь видит неполный список и думает, что документы удаленыПроверьте строку условий над списком, сбросьте настройки

Запросы на чтение не меняют данные, поэтому их можно запускать в рабочей базе. Тяжёлые выборки за несколько лет лучше выполнять вне пиковых часов: они нагружают сервер и тормозят работу остальных пользователей.

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

Почему поиск в списке не находит документ, хотя он точно есть?
Чаще всего мешает установленный период или сохранённый отбор. Ещё одна причина — у пользователя нет прав на документы этой организации: тогда они не видны вообще.
Можно ли выбрать документы сразу всех видов?
В интерфейсе — через журнал документов, если он есть в конфигурации. В запросе — через ОБЪЕДИНИТЬ ВСЕ или обращение к журналу документов как к таблице.
Как отобрать документы, созданные конкретным пользователем?
В типовых конфигурациях есть реквизит «Ответственный» или «Автор»: добавьте его в отбор списка. Если такого реквизита нет, ищите в журнале регистрации по событию записи данных.
Чем отбор в списке отличается от отчёта?
Список показывает сами документы и позволяет их открыть или изменить. Отчёт строится по движениям, поэтому видит только проведённые документы, зато считает итоги и группирует.
Сохранится ли отбор для других пользователей?
Нет. Настройки списка хранятся отдельно для каждого пользователя. Чтобы раздать одинаковую выборку, оформите её как внешний отчёт или сохраните вариант отчёта с общим доступом.