Выборка данных из журналов и регистров 1С:Предприятие 8.3: от отбора в списке до запроса

· 9 мин

Содержание

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

Это закрывает большинство случаев. Но когда нужна выборка по нескольким журналам сразу, по данным из регистров или по сложному условию («все накладные без оплаты старше 30 дней»), отбора в списке уже мало — в ход идут запросы на встроенном языке и виртуальные таблицы регистров. Ниже — все способы выбрать записи из журнала в 1С:Предприятие 8.3, от простого отбора до запроса, и как потом выгрузить результат в Excel.

Отбор и фильтры в списке журнала

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

  1. Быстрый поиск по колонке. Встаньте в ячейку с нужным значением (контрагент, номер) и нажмите кнопку поиска или Ctrl+F. 1С найдёт строки, где колонка содержит введённый текст.
  2. Отбор по текущему значению. Правый клик по ячейке → команда вида «Найти по значению в текущей колонке». Список мгновенно свернётся до строк с этим контрагентом или этой организацией.
  3. Настроенный отбор. Ещё → Настроить список, вкладка Отбор. Здесь собираются условия по любым реквизитам: Организация Равно, Дата В интервале, Сумма документа Больше, Проведён Равно Да.

Отбор можно комбинировать: несколько условий работают по «И». Чтобы задать «или» (одна организация ИЛИ другая), используйте в условии вид сравнения В списке и перечислите значения.

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

Отбор прячет строки, но не удаляет их. Пустой список после настройки отбора — это не потеря данных, а именно фильтр. Прежде чем паниковать, проверьте Ещё → Настроить список.

Настройка колонок: что показать в журнале

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

Там же колонки можно:

  • 🔀 переставить местами — стрелками вверх/вниз;
  • 📏 задать ширину — чтобы длинное наименование не обрезалось;
  • 🔢 включить подвал с итогами — сумма по колонке внизу списка;
  • 🎨 настроить цвет строк — через Настроить список → Условное оформление (например, подсветить непроведённые документы красным).

Настройки формы сохраняются для вашего пользователя. Чтобы раздать их коллегам, в режиме с правами администратора пользуйтесь механизмом Администрирование → Настройки пользователей и прав → копирование настроек.

Если список формируется медленно, а колонок много, уберите из формы те, что реально не нужны. Каждая видимая колонка с реквизитом связанного объекта (контрагент, договор, склад) — это дополнительное чтение данных при отрисовке списка. На журнале в десятки тысяч строк разница между пятью и пятнадцатью колонками заметна глазу.

Сортировка и группировка записей журнала

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

Группировка собирает документы в сворачиваемые разделы. На вкладке Группировка в том же окне добавьте поле — например, Контрагент. Список превратится в дерево: по каждому контрагенту своя группа, внутри — его документы с промежуточным итогом. Это удобно, когда из журнала на тысячу строк нужно понять структуру, а не искать конкретную запись.

Выборка через запрос на языке 1С

Отбор в списке работает по одному журналу. Когда данные лежат в разных документах и регистрах, а условие сложное, задачу решает запрос. Самый быстрый способ попробовать запрос без программирования — внешняя обработка «Консоль запросов» (входит в комплект ИТС и в типовые поставки). Открывается через Главное меню → Файл → Открыть.

Простейший запрос к журналу реализаций выглядит так:

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

Разберём по частям, чтобы язык запросов перестал казаться магией:

СекцияЧто делает
ВЫБРАТЬперечисляет поля (колонки), которые попадут в результат
ИЗисточник — документ, справочник или таблица регистра
ГДЕусловие отбора: аналог вкладки «Отбор», только мощнее
УПОРЯДОЧИТЬ ПОсортировка результата
СГРУППИРОВАТЬ ПОсвёртка строк с агрегатами СУММА, КОЛИЧЕСТВО, МАКСИМУМ

Параметры &НачалоПериода, &КонецПериода задаются в консоли отдельно — это и есть ваш период отбора. В реальной выборке Проведён — служебное поле; в типовых конфигурациях для проведённости чаще используют отбор по движениям или поле ПометкаУдаления = ЛОЖЬ.

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

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

Каждое поле в ВЫБРАТЬ теперь либо участвует в группировке, либо завёрнуто в агрегат (СУММА, КОЛИЧЕСТВО, МАКСИМУМ, МИНИМУМ). Условие на уже посчитанный агрегат (например, «итого больше 100 000») ставят не в ГДЕ, а в секции ИМЕЮЩИЕ.

Не пишите запрос с нуля — соберите каркас в Конструкторе запросов (кнопка в консоли и в модуле обработки). Он показывает доступные таблицы и поля и сам расставляет синтаксис.

Выборка из регистров: остатки, обороты, движения

Журнал документов хранит сами документы. А вот итоговые данные — остатки на складе, обороты по счёту, актуальную цену — хранят регистры. Выбирать из них напрямую через список документов бесполезно: нужные цифры лежат не там.

Типы регистров и что из них берут:

  • 📦 Регистр накопления — остатки и обороты (товары на складах, взаиморасчёты). Виртуальные таблицы .Остатки, .Обороты, .ОстаткиИОбороты.
  • 📊 Регистр сведений — значения на дату (цены номенклатуры, курсы валют, настройки). Таблица .СрезПоследних даёт актуальное значение на момент.
  • 🧮 Регистр бухгалтерии — проводки и сальдо по счетам. Отсюда строятся оборотно-сальдовая и карточка счёта.

Запрос к остаткам товаров на складе:

ВЫБРАТЬ
    Остатки.Номенклатура,
    Остатки.Склад,
    Остатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, ) КАК Остатки
ГДЕ
    Остатки.КоличествоОстаток > 0

Виртуальная таблица .Остатки(&НаДату, ) сама сворачивает все движения и выдаёт готовый остаток на указанную дату. Считать его перебором документов из журнала вручную не нужно и нельзя — ошибётесь.

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

ВЫБРАТЬ
    Цены.Номенклатура,
    Цены.Цена
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ) КАК Цены

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

Выборка по связанным объектам и соединения

Часто в журнале нет нужного реквизита напрямую, но он есть у связанного объекта. Пример: в документе реализации лежит ссылка на контрагента, а отобрать надо по его ИНН или по региону из адреса. Язык запросов идёт по ссылке через точку:

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

Обращение через точку (Контрагент.ИНН) платформа превращает в автоматическое соединение. Для выборки из двух независимых таблиц (документы + данные регистра) используют явные СОЕДИНЕНИЕ:

  • ВНУТРЕННЕЕ СОЕДИНЕНИЕ — в результат попадут только строки, где совпадение есть в обеих таблицах.
  • ЛЕВОЕ СОЕДИНЕНИЕ — все строки левой таблицы, а из правой — что нашлось; остальное NULL.

Длинные цепочки через точку (Документ.Контрагент.ГоловнойКонтрагент.Город) незаметно добавляют соединения и тормозят запрос на больших базах. Для одного-двух полей это нормально, для массовой выборки лучше явное соединение с нужной таблицей.

Вывод списка и экспорт выборки в Excel

Результат отбора из журнала не обязательно переписывать руками — 1С выгружает его сама.

Из списка документов:

  1. Настройте отбор и колонки так, как нужно в итоге.
  2. Ещё → Вывести список.
  3. Выберите, какие колонки выгрузить и куда — в Табличный документ или Текстовый документ.
  4. Полученный табличный документ сохраните: Файл → Сохранить как → формат Лист Excel (*.xlsx), *.mxl или *.pdf.

Из консоли запросов результат так же сохраняется в табличный документ и далее в Excel. А для выборок, которые нужны регулярно, разовый Вывести список заменяют на свой отчёт: в типовых конфигурациях это делается через Универсальный отчёт (Отчёты → Универсальный отчёт), где источником можно указать документ или регистр, задать отбор, группировки и сохранить вариант настроек.

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

Какой способ выбрать под конкретную задачу:

Что нужно получить из журнала?

Типичные ошибки при выборке данных из журнала

  • ❌ Ищут остатки в журнале документов. Остаток на складе и сальдо по счёту хранятся в регистрах, а не в документах. Перебирать документы бесполезно — берите виртуальную таблицу регистра.
  • ❌ Забытый отбор принимают за пропажу данных. Список «опустел» → первым делом Настроить список → Отбор, а не восстановление базы.
  • ❌ Считают по непроведённым документам. В выборку для отчётности включайте условие на проведённость и ПометкаУдаления = ЛОЖЬ, иначе в сумму попадут черновики и помеченные на удаление.
  • ❌ Тянут всё подряд ВЫБРАТЬ * без условия. Запрос без ГДЕ на большой базе читает миллионы строк и вешает сеанс. Всегда ограничивайте период и ставьте условие отбора.
  • ❌ Длинные цепочки через точку в массовой выборке. Документ.Контрагент.Договор.Организация добавляет скрытые соединения. Для больших объёмов — явное СОЕДИНЕНИЕ.
Как выбрать из журнала документы только одного контрагента?
Откройте журнал, правый клик по ячейке с нужным контрагентом → отбор по значению текущей колонки. Либо Ещё → Настроить список → Отбор, условие Контрагент Равно. Для нескольких контрагентов сразу — вид сравнения В списке.
Чем отбор в списке отличается от запроса?
Отбор в списке работает с одним журналом и его реквизитами, настраивается мышкой за секунды. Запрос умеет соединять несколько таблиц, обращаться к регистрам, группировать и считать итоги — но требует языка запросов. Для разовой выборки по одному документу хватает отбора, для сложных условий нужен запрос.
Можно ли выбрать данные сразу из нескольких видов документов?
В одном списке — нет, журнал привязан к своему типу. Это делается запросом с ОБЪЕДИНИТЬ ВСЕ: несколько секций ВЫБРАТЬ … ИЗ Документ.<Вид> складываются в одну выборку с общими колонками.
Как выгрузить отобранные записи в Excel?
После настройки отбора — Ещё → Вывести список, выберите колонки и Табличный документ, затем Файл → Сохранить как в формате *.xlsx. Результат запроса из консоли сохраняется так же.
Где взять Консоль запросов, если её нет в меню?
Консоль запросов — внешняя обработка (файл .epf). Её берут из комплекта ИТС или типовой поставки и открывают через Главное меню → Файл → Открыть. Для открытия внешних обработок у пользователя должно быть соответствующее право.