Выборка данных из журналов и регистров 1С:Предприятие 8.3: от отбора в списке до запроса
Содержание
Выбрать данные из журнала документов в 1С 8.3 быстрее всего прямо в списке: откройте нужный журнал (например, Продажи → Реализация (акты, накладные)), нажмите Ещё → Настроить список и на вкладке Отбор задайте условия — организация, контрагент, период, сумма. Список сразу покажет только подходящие строки, а колонки под задачу настраиваются через Ещё → Изменить форму.
Это закрывает большинство случаев. Но когда нужна выборка по нескольким журналам сразу, по данным из регистров или по сложному условию («все накладные без оплаты старше 30 дней»), отбора в списке уже мало — в ход идут запросы на встроенном языке и виртуальные таблицы регистров. Ниже — все способы выбрать записи из журнала в 1С:Предприятие 8.3, от простого отбора до запроса, и как потом выгрузить результат в Excel.
Отбор и фильтры в списке журнала
Любой журнал документов в 1С — это список, и у него есть встроенный механизм отбора. Три уровня, от быстрого к точному:
- Быстрый поиск по колонке. Встаньте в ячейку с нужным значением (контрагент, номер) и нажмите кнопку поиска или
Ctrl+F. 1С найдёт строки, где колонка содержит введённый текст. - Отбор по текущему значению. Правый клик по ячейке → команда вида «Найти по значению в текущей колонке». Список мгновенно свернётся до строк с этим контрагентом или этой организацией.
- Настроенный отбор.
Ещё → Настроить список, вкладкаОтбор. Здесь собираются условия по любым реквизитам:Организация Равно,Дата В интервале,Сумма документа Больше,Проведён Равно Да.
Отбор можно комбинировать: несколько условий работают по «И». Чтобы задать «или» (одна организация ИЛИ другая), используйте в условии вид сравнения В списке и перечислите значения.
Настроенный отбор держится, пока вы его не снимете. Если журнал вдруг «опустел» и часть документов пропала — почти всегда причина в забытом отборе. Снять его можно там же, на вкладке Отбор, кнопкой очистки, или через Ещё → Установить стандартные настройки.
Отбор прячет строки, но не удаляет их. Пустой список после настройки отбора — это не потеря данных, а именно фильтр. Прежде чем паниковать, проверьте Ещё → Настроить список.
Настройка колонок: что показать в журнале
Стандартный журнал показывает не все реквизиты документа. Если нужной колонки нет (например, «Склад» или «Комментарий»), её добавляют через Ещё → Изменить форму. В дереве элементов формы найдите табличное поле списка, раскройте его и включите флажки у нужных колонок.
Там же колонки можно:
- 🔀 переставить местами — стрелками вверх/вниз;
- 📏 задать ширину — чтобы длинное наименование не обрезалось;
- 🔢 включить подвал с итогами — сумма по колонке внизу списка;
- 🎨 настроить цвет строк — через
Настроить список → Условное оформление(например, подсветить непроведённые документы красным).
Настройки формы сохраняются для вашего пользователя. Чтобы раздать их коллегам, в режиме с правами администратора пользуйтесь механизмом Администрирование → Настройки пользователей и прав → копирование настроек.
Если список формируется медленно, а колонок много, уберите из формы те, что реально не нужны. Каждая видимая колонка с реквизитом связанного объекта (контрагент, договор, склад) — это дополнительное чтение данных при отрисовке списка. На журнале в десятки тысяч строк разница между пятью и пятнадцатью колонками заметна глазу.
Сортировка и группировка записей журнала
Сортировка задаётся кликом по заголовку колонки — один клик по возрастанию, второй по убыванию. Для устойчивой сортировки по нескольким полям сразу откройте Ещё → Настроить список → Сортировка и соберите порядок: сначала по организации, внутри — по дате.
Группировка собирает документы в сворачиваемые разделы. На вкладке Группировка в том же окне добавьте поле — например, Контрагент. Список превратится в дерево: по каждому контрагенту своя группа, внутри — его документы с промежуточным итогом. Это удобно, когда из журнала на тысячу строк нужно понять структуру, а не искать конкретную запись.
Выборка через запрос на языке 1С
Отбор в списке работает по одному журналу. Когда данные лежат в разных документах и регистрах, а условие сложное, задачу решает запрос. Самый быстрый способ попробовать запрос без программирования — внешняя обработка «Консоль запросов» (входит в комплект ИТС и в типовые поставки). Открывается через Главное меню → Файл → Открыть.
Простейший запрос к журналу реализаций выглядит так:
ВЫБРАТЬ
Реализация.Ссылка,
Реализация.Дата,
Реализация.Контрагент,
Реализация.СуммаДокумента
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И Реализация.Проведён = ИСТИНА
УПОРЯДОЧИТЬ ПО
Реализация.Дата
Разберём по частям, чтобы язык запросов перестал казаться магией:
| Секция | Что делает |
|---|---|
ВЫБРАТЬ | перечисляет поля (колонки), которые попадут в результат |
ИЗ | источник — документ, справочник или таблица регистра |
ГДЕ | условие отбора: аналог вкладки «Отбор», только мощнее |
УПОРЯДОЧИТЬ ПО | сортировка результата |
СГРУППИРОВАТЬ ПО | свёртка строк с агрегатами СУММА, КОЛИЧЕСТВО, МАКСИМУМ |
Параметры &НачалоПериода, &КонецПериода задаются в консоли отдельно — это и есть ваш период отбора. В реальной выборке Проведён — служебное поле; в типовых конфигурациях для проведённости чаще используют отбор по движениям или поле ПометкаУдаления = ЛОЖЬ.
Чтобы получить не список строк, а свёрнутые итоги, добавляют группировку. Запрос «сумма реализаций по каждому контрагенту за период» выглядит так:
ВЫБРАТЬ
Реализация.Контрагент,
СУММА(Реализация.СуммаДокумента) КАК Итого,
КОЛИЧЕСТВО(Реализация.Ссылка) КАК ЧислоДокументов
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
Реализация.Контрагент
Каждое поле в ВЫБРАТЬ теперь либо участвует в группировке, либо завёрнуто в агрегат (СУММА, КОЛИЧЕСТВО, МАКСИМУМ, МИНИМУМ). Условие на уже посчитанный агрегат (например, «итого больше 100 000») ставят не в ГДЕ, а в секции ИМЕЮЩИЕ.
Не пишите запрос с нуля — соберите каркас в Конструкторе запросов (кнопка в консоли и в модуле обработки). Он показывает доступные таблицы и поля и сам расставляет синтаксис.
Выборка из регистров: остатки, обороты, движения
Журнал документов хранит сами документы. А вот итоговые данные — остатки на складе, обороты по счёту, актуальную цену — хранят регистры. Выбирать из них напрямую через список документов бесполезно: нужные цифры лежат не там.
Типы регистров и что из них берут:
- 📦 Регистр накопления — остатки и обороты (товары на складах, взаиморасчёты). Виртуальные таблицы
.Остатки,.Обороты,.ОстаткиИОбороты. - 📊 Регистр сведений
— значения на дату (цены номенклатуры, курсы валют, настройки). Таблица
.СрезПоследнихдаёт актуальное значение на момент. - 🧮 Регистр бухгалтерии — проводки и сальдо по счетам. Отсюда строятся оборотно-сальдовая и карточка счёта.
Запрос к остаткам товаров на складе:
ВЫБРАТЬ
Остатки.Номенклатура,
Остатки.Склад,
Остатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&НаДату, ) КАК Остатки
ГДЕ
Остатки.КоличествоОстаток > 0
Виртуальная таблица .Остатки(&НаДату, ) сама сворачивает все движения и выдаёт готовый остаток на указанную дату. Считать его перебором документов из журнала вручную не нужно и нельзя — ошибётесь.
Для регистра сведений работает .СрезПоследних — он отдаёт последнее по времени значение каждого показателя. Так достают актуальную цену номенклатуры или курс валюты на дату:
ВЫБРАТЬ
Цены.Номенклатура,
Цены.Цена
ИЗ
РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&НаДату, ) КАК Цены
Второй параметр виртуальных таблиц (в скобках после даты) — дополнительный отбор. Туда можно передать условие прямо в таблицу: конкретный склад, вид цены, организацию. Это эффективнее, чем выбирать всё и отсеивать потом в ГДЕ, — платформа отфильтрует данные на уровне чтения регистра.
Выборка по связанным объектам и соединения
Часто в журнале нет нужного реквизита напрямую, но он есть у связанного объекта. Пример: в документе реализации лежит ссылка на контрагента, а отобрать надо по его ИНН или по региону из адреса. Язык запросов идёт по ссылке через точку:
ВЫБРАТЬ
Реализация.Ссылка,
Реализация.Контрагент.ИНН КАК ИНН,
Реализация.Контрагент.ОсновнойМенеджерПокупателя КАК Менеджер
ИЗ
Документ.РеализацияТоваровУслуг КАК Реализация
ГДЕ
Реализация.Контрагент.ЮридическоеФизическоеЛицо = ЗНАЧЕНИЕ(Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо)
Обращение через точку (Контрагент.ИНН) платформа превращает в автоматическое соединение. Для выборки из двух независимых таблиц (документы + данные регистра) используют явные СОЕДИНЕНИЕ:
- ВНУТРЕННЕЕ СОЕДИНЕНИЕ — в результат попадут только строки, где совпадение есть в обеих таблицах.
- ЛЕВОЕ СОЕДИНЕНИЕ — все строки левой таблицы, а из правой — что нашлось; остальное
NULL.
Длинные цепочки через точку (Документ.Контрагент.ГоловнойКонтрагент.Город) незаметно добавляют соединения и тормозят запрос на больших базах. Для одного-двух полей это нормально, для массовой выборки лучше явное соединение с нужной таблицей.
Вывод списка и экспорт выборки в Excel
Результат отбора из журнала не обязательно переписывать руками — 1С выгружает его сама.
Из списка документов:
- Настройте отбор и колонки так, как нужно в итоге.
Ещё → Вывести список.- Выберите, какие колонки выгрузить и куда — в
Табличный документилиТекстовый документ. - Полученный табличный документ сохраните:
Файл → Сохранить как→ форматЛист Excel (*.xlsx),*.mxlили*.pdf.
Из консоли запросов результат так же сохраняется в табличный документ и далее в Excel. А для выборок, которые нужны регулярно, разовый Вывести список заменяют на свой отчёт: в типовых конфигурациях это делается через Универсальный отчёт (Отчёты → Универсальный отчёт), где источником можно указать документ или регистр, задать отбор, группировки и сохранить вариант настроек.
Для повторяющейся выборки «тех же данных за новый период» сохраняйте вариант отчёта или настройки списка. В следующий раз меняете только даты — структура уже готова.
Какой способ выбрать под конкретную задачу:
Ещё → Настроить список → Отбор. Ничего программировать не нужно.Консоли запросов через Конструктор запросов. Соберёте выборку с соединениями и группировками..Остатки, .Обороты, .СрезПоследних) или готовый Универсальный отчёт, а не перебор журнала.Универсального отчёта или настройки списка — меняете только период.Типичные ошибки при выборке данных из журнала
- ❌ Ищут остатки в журнале документов. Остаток на складе и сальдо по счёту хранятся в регистрах, а не в документах. Перебирать документы бесполезно — берите виртуальную таблицу регистра.
- ❌ Забытый отбор принимают за пропажу данных. Список «опустел» → первым делом
Настроить список → Отбор, а не восстановление базы. - ❌ Считают по непроведённым документам. В выборку для отчётности включайте условие на проведённость и
ПометкаУдаления = ЛОЖЬ, иначе в сумму попадут черновики и помеченные на удаление. - ❌ Тянут всё подряд
ВЫБРАТЬ *без условия. Запрос безГДЕна большой базе читает миллионы строк и вешает сеанс. Всегда ограничивайте период и ставьте условие отбора. - ❌ Длинные цепочки через точку в массовой выборке.
Документ.Контрагент.Договор.Организациядобавляет скрытые соединения. Для больших объёмов — явноеСОЕДИНЕНИЕ.
Как выбрать из журнала документы только одного контрагента?
Ещё → Настроить список → Отбор, условие Контрагент Равно. Для нескольких контрагентов сразу — вид сравнения В списке.Чем отбор в списке отличается от запроса?
Можно ли выбрать данные сразу из нескольких видов документов?
ОБЪЕДИНИТЬ ВСЕ: несколько секций ВЫБРАТЬ … ИЗ Документ.<Вид> складываются в одну выборку с общими колонками.Как выгрузить отобранные записи в Excel?
Ещё → Вывести список, выберите колонки и Табличный документ, затем Файл → Сохранить как в формате *.xlsx. Результат запроса из консоли сохраняется так же.Где взять Консоль запросов, если её нет в меню?
.epf). Её берут из комплекта ИТС или типовой поставки и открывают через Главное меню → Файл → Открыть. Для открытия внешних обработок у пользователя должно быть соответствующее право.