Работа с журналами в 1С:Предприятие 8.3 — одна из самых востребованных задач среди бухгалтеров, кадровиков и специалистов по торговле. Журналы документов, регистров сведений и накопления хранят критически важную информацию, но не всегда очевидно, как быстро и точно извлечь нужные записи. Ошибки при выборке могут привести к искажению отчетности, потере времени на ручную проверку или даже к финансовым рискам при формировании регламентированных документов.

В этой статье мы разберем 5 проверенных способов выборки данных из журналов — от простых фильтров в интерфейсе до сложных запросов на языке , которые экономят часы работы. Вы узнаете, как избежать типичных ошибок при отборе, почему иногда "не видно" документов в журнале, и как автоматизировать рутинные операции с помощью встроенных механизмов платформы. Материал актуален для всех конфигураций на базе 1С:Предприятие 8.3, включая Бухгалтерию 3.0, ЗУП 3.1, УТ 11 и ERP 2.5.

Особое внимание уделим скрытым возможностям платформы, которые редко упоминаются в стандартной документации, но позволяют ускорить работу с большими объемами данных. Например, как выбрать документы по нескольким видам одновременно или почему отбор по дате может давать неожиданные результаты при пересечении кварталов.

1. Базовый отбор в журнале документов: фильтры и настройки колонок

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

Чтобы открыть журнал документов, перейдите в раздел Операции → Журналы документов (путь может отличаться в зависимости от конфигурации). По умолчанию вы увидите список всех документов за текущий месяц. Для базовой выборки:

  • 📅 Отбор по дате: Используйте поля "с" и "по" в верхней части журнала. Важно: если вам нужны документы за квартал, укажите первый и последний день периода, а не месяцы — иначе могут потеряться записи с датами на стыке месяцев.
  • 📄 Фильтр по виду документа: Нажмите на значок воронки (или Еще → Отбор) и выберите нужные типы. В ЗУП 3.1, например, здесь можно отдельно показать приказы на отпуск или больничные.
  • 🔍 Поиск по содержимому: Поле "Поиск" в верхней части журнала ищет по номеру, контрагенту или сумме. Для точного поиска используйте кавычки, например: "ООО Ромашка".
  • ⚙️ Настройка колонок: Кликните правой кнопкой на заголовок любой колонки и выберите "Настройка списка". Добавьте поля, которые часто используете (например, Ответственный или Комментарий), чтобы не открывать каждый документ.

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

📊 Как часто вы используете сохраненные варианты отбора в 1С?
Никогда не пробовал
Иногда, для повторяющихся задач
Постоянно, это экономит время
Предпочитаю ручной отбор
⚠️ Внимание: В некоторых конфигурациях (например, Бухгалтерия 3.0) при смене периода отбора автоматически сбрасываются дополнительные фильтры по виду документа. Всегда проверяйте настройки перед формированием отчетов.

2. Расширенный отбор: групповые операции и пользовательские настройки

Когда стандартных фильтров недостаточно, на помощь приходят расширенные настройки отбора. Они позволяют комбинировать несколько условий, использовать логические операторы ("И", "ИЛИ") и даже сохранять сложные шаблоны для повторного использования.

Чтобы открыть расширенный отбор:

  1. В журнале документов нажмите Еще → Отбор (или сочетание клавиш Ctrl+Shift+F).
  2. В открывшемся окне нажмите кнопку Еще (три точки) и выберите Расширенный отбор.
  3. Добавьте нужные поля (например, Контрагент, СуммаДокумента, Ответственный) и задайте условия.

Примеры полезных комбинаций:

  • 💰 Документы с суммой больше 100 000 руб.: Поле СуммаДокумента → Условие >= → Значение 100000.
  • 📦 Непроводённые документы: Поле Проводка → Условие = → Значение Ложь.
  • 🔄 Документы, изменённые конкретным пользователем: Поле ПометкаУдаления= Ложь И поле ПользовательИзменения= Иванов И.И.

Сохраните часто используемые настройки как пользовательский вариант отбора (кнопка "Сохранить вариант" в окне отбора). Это особенно полезно для ежемесячных отчетов, где критерии выборки не меняются.

Убедиться, что период отбора покрывает нужные даты|

Проверить, что в отборе не осталось условий от предыдущего запроса|

Сохранить текущий вариант отбора, если он понадобится позже|

Применить отбор и визуально проверить первые 5-10 строк на соответствие критериям-->

3. Выборка через запросы: язык 1С для сложных условий

Если встроенные фильтры не справляются с задачей (например, нужно выбрать документы по связанным справочникам или с группировкой), на помощь приходит язык запросов 1С. Это мощный инструмент, который позволяет получать данные из нескольких таблиц одновременно, применять агрегатные функции и сложную логику отбора.

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

ВЫБРАТЬ

СчетФактураВыданный.Ссылка КАК Ссылка,

СчетФактураВыданный.Номер КАК Номер,

СчетФактураВыданный.Дата КАК Дата,

СчетФактураВыданный.Контрагент КАК Контрагент

ИЗ

Документ.СчетФактураВыданный КАК СчетФактураВыданный

ГДЕ

СчетФактураВыданный.Дата МЕЖДУ &НачалоПериода И &КонецПериода

И СчетФактураВыданный.Контрагент = &Контрагент

Где:

  • &НачалоПериода и &КонецПериода — параметры, которые можно передать из формы.
  • &Контрагент — ссылка на элемент справочника Контрагенты.

Более сложный пример — выборка документов с группировкой по контрагентам и расчетом общей суммы:

ВЫБРАТЬ

ПоступлениеТоваровУслуг.Контрагент КАК Контрагент,

СУММА(ПоступлениеТоваровУслуг.СуммаДокумента) КАК ОбщаяСумма,

КОЛИЧЕСТВО(*) КАК КоличествоДокументов

ИЗ

Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

ГДЕ

ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода

СГРУППИРОВАТЬ ПО

ПоступлениеТоваровУслуг.Контрагент

Запросы можно выполнять:

  • 🖥️ В консоли запросов (Сервис → Консоль запросов в режиме "1С:Предприятие").
  • 📝 В отчетах и обработках через конструктор запросов.
  • 🤖 В внешних обработках для автоматизации рутинных задач.
⚠️ Внимание: При работе с большими базами данных (более 100 000 документов) сложные запросы могут тормозить систему. В таких случаях используйте индексированные поля (например, Дата, Номер) в условиях отбора и избегайте функций в секции ГДЕ (например, НАЧИНАЕТСЯ или ВЫРАЗИТЬ).
💡

Если запрос выполняется слишком долго, попробуйте разбить его на части или использовать временные таблицы. Например, сначала выберите IDs документов по простым критериям, а затем получите детали по этим IDs.

4. Выборка через регистры: когда журналов недостаточно

Журналы документов показывают только заголовки документов, но часто требуется информация из табличных частей (например, список товаров в накладной) или данные из регистров накопления/сведений (например, остатки на складе). В таких случаях нужно работать напрямую с регистрами.

Рассмотрим два сценария:

4.1. Выборка из табличной части документа

Чтобы получить список товаров из всех накладных за период, используйте запрос с объединением:

ВЫБРАТЬ

ПоступлениеТоваровУслуг.Номер КАК НомерДокумента,

ПоступлениеТоваровУслуг.Дата КАК ДатаДокумента,

ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,

ПоступлениеТоваровУслугТовары.Количество КАК Количество,

ПоступлениеТоваровУслугТовары.Цена КАК Цена

ИЗ

Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары

ПО ПоступлениеТоваровУслуг.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка

ГДЕ

ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода

4.2. Выборка из регистров накопления

Для анализа остатков или оборотов используйте виртуальные таблицы регистров. Например, запрос остатков товаров на складе:

ВЫБРАТЬ

ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,

ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,

ТоварыНаСкладахОстатки.Склад КАК Склад

ИЗ

РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОтчета,) КАК ТоварыНаСкладахОстатки

ГДЕ

ТоварыНаСкладахОстатки.КоличествоОстаток > 0

Где &ДатаОтчета — параметр с датой, на которую нужно получить остатки.

Тип данных Пример запроса Когда использовать
Журнал документов ВЫБРАТЬ ... ИЗ Документ.ЗаказПокупателя Нужны заголовки документов с фильтрацией по реквизитам шапки
Табличная часть ВЫБРАТЬ ... ИЗ Документ.РеализацияТоваровУслуг.Товары Требуется детализация по строкам документа (товары, услуги)
Регистр накопления ВЫБРАТЬ ... ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки() Нужны остатки, обороты или аналитика по движениям
Регистр сведений ВЫБРАТЬ ... ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних() Требуются актуальные данные (цены, курсы валют, свойства)

5. Автоматизация выборки: обработки и внешние отчеты

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

  • 📅 Сохранять историю выборок для анализа динамики.
  • 📊 Экспортировать данные в Excel, PDF или другие форматы.
  • ⚡ Ускорить работу за счет предварительной настройки параметров.

Пример простой обработки для выборки документов по контрагенту:

  1. Создайте новую обработку в конфигураторе (Файл → Новый → Обработка).
  2. Добавьте реквизиты для параметров отбора (например, ДатаНачала, ДатаОкончания, Контрагент).
  3. В модуле обработки напишите код для выполнения запроса и вывода результатов в таблицу:
Процедура Выполнить(Команда)

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| РеализацияТоваровУслуг.Ссылка КАК Ссылка,

| РеализацияТоваровУслуг.Номер КАК Номер,

| РеализацияТоваровУслуг.Дата КАК Дата

|ИЗ

| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

|ГДЕ

| РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

| И РеализацияТоваровУслуг.Контрагент = &Контрагент";

Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);

Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);

Запрос.УстановитьПараметр("Контрагент", Контрагент);

Результат = Запрос.Выполнить();

Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл

СтрокиРезультата.Добавить(Выборка);

КонецЦикла;

КонецПроцедуры

Готовые обработки можно найти:

  • 📥 На сайте Infostart (раздел "Обработки").
  • 📦 В каталоге решений (Сервис → Каталог решений в программе).
  • 🛠️ В сообществах пользователей (например, 1С:Клуб программистов).
⚠️ Внимание: Перед использованием сторонних обработок всегда проверяйте их в тестовой базе. Некоторые решения могут содержать ошибки или несовместимы с вашей версией конфигурации. Особенно осторожно относитесь к обработкам, требующим прав администратора.
Как проверить обработку на безопасность?

1. Откройте обработку в конфигураторе (Файл → Открыть).

2. Проверьте модуль обработки на наличие подозрительных функций (например, работы с файловой системой или реестром).

3. Выполните обработку в тестовой базе с ограниченными правами пользователя.

4. Используйте антивирусное ПО для сканирования файла обработки (.epf или .erf).

6. Типичные ошибки и как их избежать

Даже опытные пользователи иногда сталкиваются с проблемами при выборке данных из журналов. Рассмотрим наиболее распространённые ошибки и способы их решения.

6.1. "Не вижу документов в журнале"

Если документы есть в базе, но не отображаются в журнале, проверьте:

  • 🔍 Период отбора: Убедитесь, что даты указаны корректно (включая время, если важно).
  • 📁 Права доступа: Возможно, у вашей роли нет прав на просмотр определенных видов документов.
  • 🗑️ Пометка на удаление: Документы могут быть помечены на удаление. Снимите флажок "Показывать помеченные на удаление" в настройках отбора.
  • 🔄 Режимы отображения: В некоторых конфигурациях есть переключатель между "Все документы" и "Активные документы".

6.2. Ошибки в запросах

При выполнении запросов часто возникают ошибки синтаксиса или логики. Самые распространённые:

  • 🔗 Ошибка соединения таблиц: Убедитесь, что поля для соединения имеют совместимые типы (например, Ссылка и Ссылка, а не Ссылка и Строка).
  • 🗓️ Неправильный формат даты: В параметрах запроса даты должны передаваться как Дата(2026, 01, 01), а не как строка.
  • 🔢 Переполнение результата: Если запрос возвращает слишком много данных, используйте ПЕРВЫЕ 1000 для тестирования.

6.3. Медленная работа при выборке

Если выборка занимает слишком много времени:

  • 🛑 Сузьте период отбора: Вместо года берите данные помесячно.
  • 🗃️ Используйте индексированные поля в условиях ГДЕ.
  • 📊 Откажитесь от вывода ненужных колонок: Запрашивайте только те поля, которые действительно нужны.
  • Выполняйте запрос в фоне: В консоли запросов есть опция "Выполнить в фоне".
💡

Перед выполнением сложного запроса на рабочей базе всегда тестируйте его на копии с ограниченным периодом данных. Это поможет избежать зависаний и потери производительности.

7. Продвинутые техники: выборка по связанным объектам

Иногда требуется выбрать документы не по их собственным реквизитам, а по данным из связанных справочников или документов. Например, найти все счета-фактуры, в которых контрагент относится к определенной группе или имеет конкретный ИНН.

Для этого используйте вложенные запросы или соединение с таблицами справочников:

ВЫБРАТЬ

СчетФактураВыданный.Ссылка КАК Ссылка

ИЗ

Документ.СчетФактураВыданный КАК СчетФактураВыданный

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты

ПО СчетФактураВыданный.Контрагент = Контрагенты.Ссылка

ГДЕ

Контрагенты.ИНН = "1234567890"

И СчетФактураВыданный.Дата МЕЖДУ &НачалоПериода И &КонецПериода

Другой пример — выборка документов, в которых есть товары из определенной группы номенклатуры:

ВЫБРАТЬ РАЗЛИЧНЫЕ

РеализацияТоваровУслуг.Ссылка КАК Ссылка

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары

ПО РеализацияТоваровУслуг.Ссылка = Товары.Ссылка

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура

ПО Товары.Номенклатура = Номенклатура.Ссылка

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыНоменклатуры КАК Группы

ПО Номенклатура.Родитель = Группы.Ссылка

ГДЕ

Группы.Наименование = "Электроника"

И РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода

Для ускорения таких запросов можно использовать временные таблицы:

ВЫБРАТЬ

Номенклатура.Ссылка КАК Номенклатура

ПОМЕСТИТЬ ВТНоменклатура

ИЗ

Справочник.Номенклатура КАК Номенклатура

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыНоменклатуры КАК Группы

ПО Номенклатура.Родитель = Группы.Ссылка

ГДЕ

Группы.Наименование = "Электроника";

////////////////////////////////////////////////

ВЫБРАТЬ РАЗЛИЧНЫЕ

РеализацияТоваровУслуг.Ссылка КАК Ссылка

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары

ПО РеализацияТоваровУслуг.Ссылка = Товары.Ссылка

ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТНоменклатура КАК ВТНоменклатура

ПО Товары.Номенклатура = ВТНоменклатура.Номенклатура

ГДЕ

РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода

8. Экспорт и дальнейшая обработка данных

После выборки данных часто требуется экспортировать их для дальнейшего анализа. В есть несколько способов экспорта:

8.1. Экспорт в Excel

Самый простой способ:

  1. Выделите нужные строки в журнале или результатах запроса.
  2. Нажмите Файл → Сохранить как... или Еще → Выгрузить.
  3. Выберите формат Excel (.xlsx).

Для автоматического экспорта из запроса используйте:

Результат = Запрос.Выполнить();

ТаблицаРезультата = Результат.Выгрузить();

Экспорт = Новый ЭкспортВExcel;

Экспорт.УстановитьДанные(ТаблицаРезультата);

Экспорт.Выгрузить("C:\Отчеты\Выборка.xlsx");

8.2. Экспорт в JSON/XML

Для интеграции с другими системами можно экспортировать данные в JSON или XML:

// Экспорт в JSON

Результат = Запрос.Выполнить();

ТаблицаРезультата = Результат.Выгрузить();

ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.УстановитьСтроку();

ЗаписьJSON.ЗаписатьJSON(ТаблицаРезультата);

РезультатJSON = ЗаписьJSON.Закрыть();

// Сохранение в файл

Текст = Новый ТекстовыйДокумент;

Текст.УстановитьТекст(РезультатJSON);

Текст.Записать("C:\Отчеты\Выборка.json");

8.3. Автоматическая отправка по email

Чтобы отправлять результаты выборки по расписанию:

Попытка

Почта = Новый ИнтернетПочта;

Сообщение = Новый ИнтернетПочтаСообщение;

Сообщение.Адресат = "director@company.ru";

Сообщение.Тема = "Выборка документов за " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy");

Сообщение.Текст = "Во вложении выборка документов.";

Сообщение.Вложения.Добавить("C:\Отчеты\Выборка.xlsx");

Почта.Отправить(Сообщение);

Исключение

Сообщить("Ошибка отправки: " + ОписаниеОшибки());

КонецПопытки;

Для регулярной отправки настройте регламентное задание в :

  1. Перейдите в Администрирование → Регламентные задания.
  2. Создайте новое задание с типом Выполнение кода.
  3. Укажите код из примера выше и настройте расписание (например, ежедневно в 18:00).
⚠️ Внимание: При настройке автоматической отправки по email убедитесь, что в параметрах информационной базы корректно указаны настройки SMTP-сервера (Администрирование → Настройки программы → Почта). В некоторых версиях может потребоваться установка дополнительных компонент для работы с почтой.

FAQ: Ответы на частые вопросы

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

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

  1. В верхней части журнала найдите поля "с" и "по" (обычно рядом с кнопкой календаря).
  2. Укажите дату начала прошлого года (например, 01.01.2026) и дату конца (31.12.2026).
  3. Нажмите Обновить (или Enter).

Если документы всё равно не отображаются, проверьте настройки отбора (Еще → Отбор) — возможно, там установлены дополнительные филь