Работа с журналами в 1С:Предприятие 8.3 — одна из самых востребованных задач среди бухгалтеров, кадровиков и специалистов по торговле. Журналы документов, регистров сведений и накопления хранят критически важную информацию, но не всегда очевидно, как быстро и точно извлечь нужные записи. Ошибки при выборке могут привести к искажению отчетности, потере времени на ручную проверку или даже к финансовым рискам при формировании регламентированных документов.
В этой статье мы разберем 5 проверенных способов выборки данных из журналов — от простых фильтров в интерфейсе до сложных запросов на языке 1С, которые экономят часы работы. Вы узнаете, как избежать типичных ошибок при отборе, почему иногда "не видно" документов в журнале, и как автоматизировать рутинные операции с помощью встроенных механизмов платформы. Материал актуален для всех конфигураций на базе 1С:Предприятие 8.3, включая Бухгалтерию 3.0, ЗУП 3.1, УТ 11 и ERP 2.5.
Особое внимание уделим скрытым возможностям платформы, которые редко упоминаются в стандартной документации, но позволяют ускорить работу с большими объемами данных. Например, как выбрать документы по нескольким видам одновременно или почему отбор по дате может давать неожиданные результаты при пересечении кварталов.
1. Базовый отбор в журнале документов: фильтры и настройки колонок
Начнем с самого простого — встроенных инструментов интерфейса. Большинство пользователей ограничиваются стандартным отбором по дате и виду документа, но даже здесь есть нюансы, которые помогут сэкономить время.
Чтобы открыть журнал документов, перейдите в раздел Операции → Журналы документов (путь может отличаться в зависимости от конфигурации). По умолчанию вы увидите список всех документов за текущий месяц. Для базовой выборки:
- 📅 Отбор по дате: Используйте поля "с" и "по" в верхней части журнала. Важно: если вам нужны документы за квартал, укажите первый и последний день периода, а не месяцы — иначе могут потеряться записи с датами на стыке месяцев.
- 📄 Фильтр по виду документа: Нажмите на значок воронки (или
Еще → Отбор) и выберите нужные типы. В ЗУП 3.1, например, здесь можно отдельно показать приказы на отпуск или больничные. - 🔍 Поиск по содержимому: Поле "Поиск" в верхней части журнала ищет по номеру, контрагенту или сумме. Для точного поиска используйте кавычки, например:
"ООО Ромашка". - ⚙️ Настройка колонок: Кликните правой кнопкой на заголовок любой колонки и выберите "Настройка списка". Добавьте поля, которые часто используете (например,
ОтветственныйилиКомментарий), чтобы не открывать каждый документ.
Обратите внимание на кнопку Еще → Настроить список — здесь можно сохранить часто используемые настройки отбора как пользовательский вариант. Это избавит от необходимости каждый раз заполнять одни и те же фильтры.
⚠️ Внимание: В некоторых конфигурациях (например, Бухгалтерия 3.0) при смене периода отбора автоматически сбрасываются дополнительные фильтры по виду документа. Всегда проверяйте настройки перед формированием отчетов.
2. Расширенный отбор: групповые операции и пользовательские настройки
Когда стандартных фильтров недостаточно, на помощь приходят расширенные настройки отбора. Они позволяют комбинировать несколько условий, использовать логические операторы ("И", "ИЛИ") и даже сохранять сложные шаблоны для повторного использования.
Чтобы открыть расширенный отбор:
- В журнале документов нажмите
Еще → Отбор(или сочетание клавишCtrl+Shift+F). - В открывшемся окне нажмите кнопку
Еще(три точки) и выберитеРасширенный отбор. - Добавьте нужные поля (например,
Контрагент,СуммаДокумента,Ответственный) и задайте условия.
Примеры полезных комбинаций:
- 💰 Документы с суммой больше 100 000 руб.: Поле
СуммаДокумента→ Условие>=→ Значение100000. - 📦 Непроводённые документы: Поле
Проводка→ Условие=→ ЗначениеЛожь. - 🔄 Документы, изменённые конкретным пользователем: Поле
ПометкаУдаления→= ЛожьИ полеПользовательИзменения→= Иванов И.И.
Сохраните часто используемые настройки как пользовательский вариант отбора (кнопка "Сохранить вариант" в окне отбора). Это особенно полезно для ежемесячных отчетов, где критерии выборки не меняются.
Убедиться, что период отбора покрывает нужные даты|
Проверить, что в отборе не осталось условий от предыдущего запроса|
Сохранить текущий вариант отбора, если он понадобится позже|
Применить отбор и визуально проверить первые 5-10 строк на соответствие критериям-->
3. Выборка через запросы: язык 1С для сложных условий
Если встроенные фильтры не справляются с задачей (например, нужно выбрать документы по связанным справочникам или с группировкой), на помощь приходит язык запросов 1С. Это мощный инструмент, который позволяет получать данные из нескольких таблиц одновременно, применять агрегатные функции и сложную логику отбора.
Простейший запрос для выборки из журнала документов выглядит так:
ВЫБРАТЬ
СчетФактураВыданный.Ссылка КАК Ссылка,
СчетФактураВыданный.Номер КАК Номер,
СчетФактураВыданный.Дата КАК Дата,
СчетФактураВыданный.Контрагент КАК Контрагент
ИЗ
Документ.СчетФактураВыданный КАК СчетФактураВыданный
ГДЕ
СчетФактураВыданный.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И СчетФактураВыданный.Контрагент = &Контрагент
Где:
&НачалоПериодаи&КонецПериода— параметры, которые можно передать из формы.&Контрагент— ссылка на элемент справочникаКонтрагенты.
Более сложный пример — выборка документов с группировкой по контрагентам и расчетом общей суммы:
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Контрагент КАК Контрагент,
СУММА(ПоступлениеТоваровУслуг.СуммаДокумента) КАК ОбщаяСумма,
КОЛИЧЕСТВО(*) КАК КоличествоДокументов
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
СГРУППИРОВАТЬ ПО
ПоступлениеТоваровУслуг.Контрагент
Запросы можно выполнять:
- 🖥️ В консоли запросов (
Сервис → Консоль запросовв режиме "1С:Предприятие"). - 📝 В отчетах и обработках через конструктор запросов.
- 🤖 В внешних обработках для автоматизации рутинных задач.
⚠️ Внимание: При работе с большими базами данных (более 100 000 документов) сложные запросы могут тормозить систему. В таких случаях используйте индексированные поля (например,Дата,Номер) в условиях отбора и избегайте функций в секцииГДЕ(например,НАЧИНАЕТСЯилиВЫРАЗИТЬ).
Если запрос выполняется слишком долго, попробуйте разбить его на части или использовать временные таблицы. Например, сначала выберите IDs документов по простым критериям, а затем получите детали по этим IDs.
4. Выборка через регистры: когда журналов недостаточно
Журналы документов показывают только заголовки документов, но часто требуется информация из табличных частей (например, список товаров в накладной) или данные из регистров накопления/сведений (например, остатки на складе). В таких случаях нужно работать напрямую с регистрами.
Рассмотрим два сценария:
4.1. Выборка из табличной части документа
Чтобы получить список товаров из всех накладных за период, используйте запрос с объединением:
ВЫБРАТЬ
ПоступлениеТоваровУслуг.Номер КАК НомерДокумента,
ПоступлениеТоваровУслуг.Дата КАК ДатаДокумента,
ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
ПоступлениеТоваровУслугТовары.Количество КАК Количество,
ПоступлениеТоваровУслугТовары.Цена КАК Цена
ИЗ
Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ПО ПоступлениеТоваровУслуг.Ссылка = ПоступлениеТоваровУслугТовары.Ссылка
ГДЕ
ПоступлениеТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
4.2. Выборка из регистров накопления
Для анализа остатков или оборотов используйте виртуальные таблицы регистров. Например, запрос остатков товаров на складе:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
ТоварыНаСкладахОстатки.Склад КАК Склад
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОтчета,) КАК ТоварыНаСкладахОстатки
ГДЕ
ТоварыНаСкладахОстатки.КоличествоОстаток > 0
Где &ДатаОтчета — параметр с датой, на которую нужно получить остатки.
| Тип данных | Пример запроса | Когда использовать |
|---|---|---|
| Журнал документов | ВЫБРАТЬ ... ИЗ Документ.ЗаказПокупателя |
Нужны заголовки документов с фильтрацией по реквизитам шапки |
| Табличная часть | ВЫБРАТЬ ... ИЗ Документ.РеализацияТоваровУслуг.Товары |
Требуется детализация по строкам документа (товары, услуги) |
| Регистр накопления | ВЫБРАТЬ ... ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки() |
Нужны остатки, обороты или аналитика по движениям |
| Регистр сведений | ВЫБРАТЬ ... ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних() |
Требуются актуальные данные (цены, курсы валют, свойства) |
5. Автоматизация выборки: обработки и внешние отчеты
Если вам регулярно приходится выполнять одни и те же выборки, имеет смысл автоматизировать процесс с помощью внешних обработок или отчетов. Это позволит:
- 📅 Сохранять историю выборок для анализа динамики.
- 📊 Экспортировать данные в Excel, PDF или другие форматы.
- ⚡ Ускорить работу за счет предварительной настройки параметров.
Пример простой обработки для выборки документов по контрагенту:
- Создайте новую обработку в конфигураторе (
Файл → Новый → Обработка). - Добавьте реквизиты для параметров отбора (например,
ДатаНачала,ДатаОкончания,Контрагент). - В модуле обработки напишите код для выполнения запроса и вывода результатов в таблицу:
Процедура Выполнить(Команда)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.Номер КАК Номер,
| РеализацияТоваровУслуг.Дата КАК Дата
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И РеализацияТоваровУслуг.Контрагент = &Контрагент";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
СтрокиРезультата.Добавить(Выборка);
КонецЦикла;
КонецПроцедуры
Готовые обработки можно найти:
- 📥 На сайте Infostart (раздел "Обработки").
- 📦 В каталоге решений 1С (
Сервис → Каталог решенийв программе). - 🛠️ В сообществах пользователей (например, 1С:Клуб программистов).
⚠️ Внимание: Перед использованием сторонних обработок всегда проверяйте их в тестовой базе. Некоторые решения могут содержать ошибки или несовместимы с вашей версией конфигурации. Особенно осторожно относитесь к обработкам, требующим прав администратора.
Как проверить обработку на безопасность?
1. Откройте обработку в конфигураторе (Файл → Открыть).
2. Проверьте модуль обработки на наличие подозрительных функций (например, работы с файловой системой или реестром).
3. Выполните обработку в тестовой базе с ограниченными правами пользователя.
4. Используйте антивирусное ПО для сканирования файла обработки (.epf или .erf).
6. Типичные ошибки и как их избежать
Даже опытные пользователи 1С иногда сталкиваются с проблемами при выборке данных из журналов. Рассмотрим наиболее распространённые ошибки и способы их решения.
6.1. "Не вижу документов в журнале"
Если документы есть в базе, но не отображаются в журнале, проверьте:
- 🔍 Период отбора: Убедитесь, что даты указаны корректно (включая время, если важно).
- 📁 Права доступа: Возможно, у вашей роли нет прав на просмотр определенных видов документов.
- 🗑️ Пометка на удаление: Документы могут быть помечены на удаление. Снимите флажок "Показывать помеченные на удаление" в настройках отбора.
- 🔄 Режимы отображения: В некоторых конфигурациях есть переключатель между "Все документы" и "Активные документы".
6.2. Ошибки в запросах
При выполнении запросов часто возникают ошибки синтаксиса или логики. Самые распространённые:
- 🔗 Ошибка соединения таблиц: Убедитесь, что поля для соединения имеют совместимые типы (например,
СсылкаиСсылка, а неСсылкаиСтрока). - 🗓️ Неправильный формат даты: В параметрах запроса даты должны передаваться как
Дата(2026, 01, 01), а не как строка. - 🔢 Переполнение результата: Если запрос возвращает слишком много данных, используйте
ПЕРВЫЕ 1000для тестирования.
6.3. Медленная работа при выборке
Если выборка занимает слишком много времени:
- 🛑 Сузьте период отбора: Вместо года берите данные помесячно.
- 🗃️ Используйте индексированные поля в условиях
ГДЕ. - 📊 Откажитесь от вывода ненужных колонок: Запрашивайте только те поля, которые действительно нужны.
- ⏳ Выполняйте запрос в фоне: В консоли запросов есть опция "Выполнить в фоне".
Перед выполнением сложного запроса на рабочей базе всегда тестируйте его на копии с ограниченным периодом данных. Это поможет избежать зависаний и потери производительности.
7. Продвинутые техники: выборка по связанным объектам
Иногда требуется выбрать документы не по их собственным реквизитам, а по данным из связанных справочников или документов. Например, найти все счета-фактуры, в которых контрагент относится к определенной группе или имеет конкретный ИНН.
Для этого используйте вложенные запросы или соединение с таблицами справочников:
ВЫБРАТЬ
СчетФактураВыданный.Ссылка КАК Ссылка
ИЗ
Документ.СчетФактураВыданный КАК СчетФактураВыданный
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
ПО СчетФактураВыданный.Контрагент = Контрагенты.Ссылка
ГДЕ
Контрагенты.ИНН = "1234567890"
И СчетФактураВыданный.Дата МЕЖДУ &НачалоПериода И &КонецПериода
Другой пример — выборка документов, в которых есть товары из определенной группы номенклатуры:
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
ПО РеализацияТоваровУслуг.Ссылка = Товары.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
ПО Товары.Номенклатура = Номенклатура.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыНоменклатуры КАК Группы
ПО Номенклатура.Родитель = Группы.Ссылка
ГДЕ
Группы.Наименование = "Электроника"
И РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
Для ускорения таких запросов можно использовать временные таблицы:
ВЫБРАТЬ
Номенклатура.Ссылка КАК Номенклатура
ПОМЕСТИТЬ ВТНоменклатура
ИЗ
Справочник.Номенклатура КАК Номенклатура
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ГруппыНоменклатуры КАК Группы
ПО Номенклатура.Родитель = Группы.Ссылка
ГДЕ
Группы.Наименование = "Электроника";
////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
РеализацияТоваровУслуг.Ссылка КАК Ссылка
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары
ПО РеализацияТоваровУслуг.Ссылка = Товары.Ссылка
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТНоменклатура КАК ВТНоменклатура
ПО Товары.Номенклатура = ВТНоменклатура.Номенклатура
ГДЕ
РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
8. Экспорт и дальнейшая обработка данных
После выборки данных часто требуется экспортировать их для дальнейшего анализа. В 1С есть несколько способов экспорта:
8.1. Экспорт в Excel
Самый простой способ:
- Выделите нужные строки в журнале или результатах запроса.
- Нажмите
Файл → Сохранить как...илиЕще → Выгрузить. - Выберите формат
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С:
- Перейдите в
Администрирование → Регламентные задания. - Создайте новое задание с типом
Выполнение кода. - Укажите код из примера выше и настройте расписание (например, ежедневно в 18:00).
⚠️ Внимание: При настройке автоматической отправки по email убедитесь, что в параметрах информационной базы корректно указаны настройки SMTP-сервера (Администрирование → Настройки программы → Почта). В некоторых версиях 1С может потребоваться установка дополнительных компонент для работы с почтой.
FAQ: Ответы на частые вопросы
Как выбрать документы за прошлый год, если в журнале отображается только текущий?
По умолчанию многие журналы показывают документы за текущий месяц или квартал. Чтобы расширить период:
- В верхней части журнала найдите поля "с" и "по" (обычно рядом с кнопкой календаря).
- Укажите дату начала прошлого года (например,
01.01.2026) и дату конца (31.12.2026). - Нажмите
Обновить(илиEnter).
Если документы всё равно не отображаются, проверьте настройки отбора (Еще → Отбор) — возможно, там установлены дополнительные филь