Отчеты и Аналитика · 9 мин
Как выбрать период в 1С 8: отчёты, документы и запросы
Как выбрать период в 1С 8: стандартные периоды в отчётах, отбор по дате в документах, произвольный интервал и параметры в запросах. Пошаговые инструкции.
Выбор периода — одна из самых частых операций в 1С 8: он нужен при построении отчётов, отборе документов в журналах, формировании оборотно-сальдовой ведомости и при написании запросов. Платформа предлагает несколько способов задать интервал дат: стандартные периоды (день, месяц, квартал), произвольные даты «с… по…» и программные параметры.
Проблема в том, что элементы выбора периода выглядят по-разному в разных конфигурациях и режимах: в управляемых формах это поле с кнопкой выбора, в обычных — отдельный диалог, а в запросах период задаётся параметрами. Ниже разобраны все основные сценарии с точными действиями.
Материал ориентирован на пользователей типовых конфигураций (Бухгалтерия, Управление торговлей, ЗУП) и на начинающих разработчиков, которым нужно задать период в запросе или на форме.
Выбор периода в отчётах
В большинстве типовых отчётов (оборотно-сальдовая ведомость, анализ счета, ведомость по товарам) поле периода расположено в шапке формы. Нажмите на кнопку с текущим периодом или на значок календаря рядом с ним — откроется диалог выбора.
В диалоге доступны две вкладки или два режима: стандартный период и произвольный. Для стандартного достаточно выбрать вариант из списка: «Сегодня», «Этот месяц», «Прошлый квартал», «Этот год» и т. п. Программа сама подставит даты начала и окончания.
Для произвольного периода переключитесь на режим «Произвольный» (или «Заданный») и введите дату начала и дату окончания вручную либо через календарь. После нажатия «ОК» или «Выбрать» отчёт нужно пересформировать кнопкой «Сформировать».
- 1Откройте отчёт и найдите поле «Период» в шапке формы
- 2Нажмите кнопку выбора (стрелка или значок календаря)
- 3Выберите стандартный период из списка или переключитесь на «Произвольный»
- 4Для произвольного периода укажите дату начала и дату окончания
- 5Подтвердите выбор и нажмите «Сформировать»
- 6Проверьте, что в шапке сформированного отчёта указан нужный интервал
Быстрый выбор через кнопки-стрелки
В некоторых конфигурациях рядом с полем периода есть стрелки «назад/вперёд». Они сдвигают текущий стандартный период: например, с февраля на март. Это удобно при последовательном просмотре помесячных данных без открытия диалога.
Отбор документов по периоду в журналах
Журналы документов (например, «Поступления товаров и услуг») по умолчанию часто показывают документы за ограниченный интервал. Чтобы изменить его, найдите поле периода над списком или откройте настройку отбора.
В управляемых формах используйте команду «Ещё → Установить период» или кнопку с датами в панели навигации журнала. В обычных формах период задаётся через кнопку с изображением календаря на панели инструментов журнала либо комбинацией Ctrl+D в некоторых конфигурациях.
Если документ не находится, первым делом расширьте период: установите интервал с запасом, например весь год. Частая ситуация — документ существует, но журнал показывает только текущий месяц, и пользователь считает, что документ пропал.
Стандартные и произвольные периоды: что выбрать
Стандартный период привязан к текущей дате: «Этот месяц» завтра будет означать уже другой интервал. Произвольный период фиксирован: даты останутся такими, какими вы их задали. Это различие важно при сохранении вариантов отчётов.
Если отчёт формируется регулярно «за прошлый месяц», сохраняйте вариант со стандартным периодом — он будет автоматически сдвигаться. Если нужен отчёт за конкретный зафиксированный интервал (например, для сдачи отчётности), используйте произвольные даты.
Стандартный или произвольный период
Подходит для регулярных отчётов: автоматически сдвигается относительно текущей даты. Не подходит, когда нужен зафиксированный интервал.
Даты жёстко зафиксированы. Подходит для отчётности за конкретный интервал, но при повторном использовании даты придётся менять вручную.
Выбор периода в запросах (для разработчиков)
В запросах период передаётся через параметры. Типовой приём — параметры &НачалоПериода и &КонецПериода с условием МЕЖДУ:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Продажи.Номенклатура,
| СУММА(Продажи.СуммаОборот) КАК Сумма
|ИЗ
| РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи
|СГРУППИРОВАТЬ ПО
| Продажи.Номенклатура";
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДатаСеанса()));
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДатаСеанса()));
Результат = Запрос.Выполнить();
Обратите внимание на границы: для виртуальных таблиц оборотов конец периода обычно указывают как конец дня последней даты (КонецДня(Дата) или КонецМесяца(Дата)). Если передать дату без времени, время будет 00:00:00, и документы последнего дня могут не попасть в выборку.
Для сравнения даты документа в условии ГДЕ используйте конструкцию Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода — она включает обе границы. Альтернатива с >= и <= работает аналогично, но менее читаема.
Запрос.УстановитьПараметр("КонецПериода", КонецДня(ДатаОкончания)); // чтобы последний день вошёл полностьюСтандартный период на форме разработки
Для пользовательских настроек в динамических списках и отчётах на СКД платформа предлагает тип «СтандартныйПериод». В параметрах СКД достаточно создать параметр с типом «СтандартныйПериод» — пользователь получит готовый диалог выбора без программирования.
На обычной форме для реквизита типа «СтандартныйПериод» автоматически работает стандартный диалог выбора. Программно период заполняется так: Период.ДатаНачала и Период.ДатаОкончания, а готовые варианты задаются через объект СтандартныйПериод с вариантом, например ВариантСтандартногоПериода.ПрошлыйМесяц.
Проверка результата и типичные ошибки
После выбора периода убедитесь, что данные соответствуют ожиданиям: сверьте итоги отчёта с контрольным значением, проверьте, что последний день периода попал в выборку, и что в шапке отчёта указан нужный интервал.
Как проверить результат
Указаны именно те даты, которые вы выбирали
Период сброшен на стандартный или пустой — отчёт не пересформирован
Документы последнего дня присутствуют в выборке
Последний день пуст — в запросе конец периода задан без времени окончания дня
Список совпадает с ожидаемым за интервал
Список короче — действует скрытый отбор или узкий период журнала
Частые вопросы
Как выбрать период «за всё время»?
Очистите поле периода, если отчёт это позволяет, либо задайте заведомо широкий интервал, например с 01.01.2000 по 31.12.2099. В журналах документов обычно есть команда снятия ограничения периода в меню настройки отбора. В запросах просто не используйте параметры периода в виртуальной таблице.
Почему отчёт не меняется после выбора нового периода?
Форма отчёта не пересчитывается автоматически — после смены периода нужно нажать «Сформировать». Также проверьте, не открыт ли сохранённый вариант отчёта, который при активации подменяет выбранный период своим.
Как в запросе учесть весь последний день периода?
Передайте в параметр конца периода значение КонецДня(ДатаОкончания) — это 23:59:59 последнего дня. Если передать дату без времени, она равна 00:00:00, и все движения последнего дня выпадут из выборки.
Чем стандартный период отличается от произвольного при сохранении отчёта?
Стандартный период хранится как правило («прошлый месяц») и при каждом открытии пересчитывается от текущей даты. Произвольный хранит конкретные даты и не меняется — при следующем открытии отчёт покажет тот же исторический интервал.
Можно ли выбрать период в мобильном клиенте 1С?
Да, в мобильном клиенте поле периода открывает адаптированный диалог с календарём и списком стандартных вариантов. Логика та же: выберите стандартный интервал или задайте две даты, затем обновите отчёт.
Как программно задать период «текущий квартал»?
Используйте функции работы с датами: НачалоКвартала(ТекущаяДатаСеанса()) и КонецКвартала(ТекущаяДатаСеанса()). Для реквизита типа «СтандартныйПериод» можно присвоить вариант ВариантСтандартногоПериода.ЭтотКвартал.
Что важно запомнить
Период в 1С 8 выбирается через поле «Период» в отчётах и журналах: стандартный сдвигается относительно текущей даты, произвольный фиксирован. В запросах период передаётся параметрами, а конец интервала всегда задавайте как конец дня, чтобы не потерять данные последнего дня.