К статье
Практический материал

Отчеты и Аналитика · 9 мин

Как выбрать период в 1С 8: отчёты, документы и запросы

Как выбрать период в 1С 8: стандартные периоды в отчётах, отбор по дате в документах, произвольный интервал и параметры в запросах. Пошаговые инструкции.

Выбор периода — одна из самых частых операций в 1С 8: он нужен при построении отчётов, отборе документов в журналах, формировании оборотно-сальдовой ведомости и при написании запросов. Платформа предлагает несколько способов задать интервал дат: стандартные периоды (день, месяц, квартал), произвольные даты «с… по…» и программные параметры.

Проблема в том, что элементы выбора периода выглядят по-разному в разных конфигурациях и режимах: в управляемых формах это поле с кнопкой выбора, в обычных — отдельный диалог, а в запросах период задаётся параметрами. Ниже разобраны все основные сценарии с точными действиями.

Материал ориентирован на пользователей типовых конфигураций (Бухгалтерия, Управление торговлей, ЗУП) и на начинающих разработчиков, которым нужно задать период в запросе или на форме.

Выбор периода в отчётах

В большинстве типовых отчётов (оборотно-сальдовая ведомость, анализ счета, ведомость по товарам) поле периода расположено в шапке формы. Нажмите на кнопку с текущим периодом или на значок календаря рядом с ним — откроется диалог выбора.

В диалоге доступны две вкладки или два режима: стандартный период и произвольный. Для стандартного достаточно выбрать вариант из списка: «Сегодня», «Этот месяц», «Прошлый квартал», «Этот год» и т. п. Программа сама подставит даты начала и окончания.

Для произвольного периода переключитесь на режим «Произвольный» (или «Заданный») и введите дату начала и дату окончания вручную либо через календарь. После нажатия «ОК» или «Выбрать» отчёт нужно пересформировать кнопкой «Сформировать».

Как выбрать период в отчёте
  1. 1
    Откройте отчёт и найдите поле «Период» в шапке формы
  2. 2
    Нажмите кнопку выбора (стрелка или значок календаря)
  3. 3
    Выберите стандартный период из списка или переключитесь на «Произвольный»
  4. 4
    Для произвольного периода укажите дату начала и дату окончания
  5. 5
    Подтвердите выбор и нажмите «Сформировать»
  6. 6
    Проверьте, что в шапке сформированного отчёта указан нужный интервал

Быстрый выбор через кнопки-стрелки

В некоторых конфигурациях рядом с полем периода есть стрелки «назад/вперёд». Они сдвигают текущий стандартный период: например, с февраля на март. Это удобно при последовательном просмотре помесячных данных без открытия диалога.

Отбор документов по периоду в журналах

Журналы документов (например, «Поступления товаров и услуг») по умолчанию часто показывают документы за ограниченный интервал. Чтобы изменить его, найдите поле периода над списком или откройте настройку отбора.

В управляемых формах используйте команду «Ещё → Установить период» или кнопку с датами в панели навигации журнала. В обычных формах период задаётся через кнопку с изображением календаря на панели инструментов журнала либо комбинацией Ctrl+D в некоторых конфигурациях.

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

Стандартные и произвольные периоды: что выбрать

Стандартный период привязан к текущей дате: «Этот месяц» завтра будет означать уже другой интервал. Произвольный период фиксирован: даты останутся такими, какими вы их задали. Это различие важно при сохранении вариантов отчётов.

Если отчёт формируется регулярно «за прошлый месяц», сохраняйте вариант со стандартным периодом — он будет автоматически сдвигаться. Если нужен отчёт за конкретный зафиксированный интервал (например, для сдачи отчётности), используйте произвольные даты.

Стандартный или произвольный период

Стандартный период

Подходит для регулярных отчётов: автоматически сдвигается относительно текущей даты. Не подходит, когда нужен зафиксированный интервал.

Произвольный период

Даты жёстко зафиксированы. Подходит для отчётности за конкретный интервал, но при повторном использовании даты придётся менять вручную.

Выбор периода в запросах (для разработчиков)

В запросах период передаётся через параметры. Типовой приём — параметры &НачалоПериода и &КонецПериода с условием МЕЖДУ:

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

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

"ВЫБРАТЬ

| Продажи.Номенклатура,

| СУММА(Продажи.СуммаОборот) КАК Сумма

|ИЗ

| РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК Продажи

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

| Продажи.Номенклатура";

Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДатаСеанса()));

Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДатаСеанса()));

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

Обратите внимание на границы: для виртуальных таблиц оборотов конец периода обычно указывают как конец дня последней даты (КонецДня(Дата) или КонецМесяца(Дата)). Если передать дату без времени, время будет 00:00:00, и документы последнего дня могут не попасть в выборку.

Для сравнения даты документа в условии ГДЕ используйте конструкцию Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода — она включает обе границы. Альтернатива с >= и <= работает аналогично, но менее читаема.

bsl
Запрос.УстановитьПараметр("КонецПериода", КонецДня(ДатаОкончания)); // чтобы последний день вошёл полностью

Стандартный период на форме разработки

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

На обычной форме для реквизита типа «СтандартныйПериод» автоматически работает стандартный диалог выбора. Программно период заполняется так: Период.ДатаНачала и Период.ДатаОкончания, а готовые варианты задаются через объект СтандартныйПериод с вариантом, например ВариантСтандартногоПериода.ПрошлыйМесяц.

Проверка результата и типичные ошибки

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

Контрольные точки

Как проверить результат

Интервал в шапке отчёта
Норма

Указаны именно те даты, которые вы выбирали

Тревожный признак

Период сброшен на стандартный или пустой — отчёт не пересформирован

Данные за последний день
Норма

Документы последнего дня присутствуют в выборке

Тревожный признак

Последний день пуст — в запросе конец периода задан без времени окончания дня

Количество документов в журнале
Норма

Список совпадает с ожидаемым за интервал

Тревожный признак

Список короче — действует скрытый отбор или узкий период журнала

Типичные ошибки
01
Выбрать период, но не нажать «Сформировать» — отчёт показывает старые данные
02
Передать в запрос конец периода как начало дня — документы последнего дня теряются
03
Сохранить вариант отчёта с произвольным периодом и ждать, что даты сдвинутся сами
04
Искать «пропавший» документ, не расширив период журнала
05
Перепутать дату начала и дату окончания — в результате пустая выборка без сообщения об ошибке

Частые вопросы

Как выбрать период «за всё время»?

Очистите поле периода, если отчёт это позволяет, либо задайте заведомо широкий интервал, например с 01.01.2000 по 31.12.2099. В журналах документов обычно есть команда снятия ограничения периода в меню настройки отбора. В запросах просто не используйте параметры периода в виртуальной таблице.

Почему отчёт не меняется после выбора нового периода?

Форма отчёта не пересчитывается автоматически — после смены периода нужно нажать «Сформировать». Также проверьте, не открыт ли сохранённый вариант отчёта, который при активации подменяет выбранный период своим.

Как в запросе учесть весь последний день периода?

Передайте в параметр конца периода значение КонецДня(ДатаОкончания) — это 23:59:59 последнего дня. Если передать дату без времени, она равна 00:00:00, и все движения последнего дня выпадут из выборки.

Чем стандартный период отличается от произвольного при сохранении отчёта?

Стандартный период хранится как правило («прошлый месяц») и при каждом открытии пересчитывается от текущей даты. Произвольный хранит конкретные даты и не меняется — при следующем открытии отчёт покажет тот же исторический интервал.

Можно ли выбрать период в мобильном клиенте 1С?

Да, в мобильном клиенте поле периода открывает адаптированный диалог с календарём и списком стандартных вариантов. Логика та же: выберите стандартный интервал или задайте две даты, затем обновите отчёт.

Как программно задать период «текущий квартал»?

Используйте функции работы с датами: НачалоКвартала(ТекущаяДатаСеанса()) и КонецКвартала(ТекущаяДатаСеанса()). Для реквизита типа «СтандартныйПериод» можно присвоить вариант ВариантСтандартногоПериода.ЭтотКвартал.

Итог

Что важно запомнить

Период в 1С 8 выбирается через поле «Период» в отчётах и журналах: стандартный сдвигается относительно текущей даты, произвольный фиксирован. В запросах период передаётся параметрами, а конец интервала всегда задавайте как конец дня, чтобы не потерять данные последнего дня.