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

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

Как в 1С добавить период: практическая инструкция

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

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

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

Материал ориентирован на типовые конфигурации на платформе 1С:Предприятие 8.3 (управляемые формы): «Бухгалтерия предприятия», «Управление торговлей», «Зарплата и управление персоналом». В других конфигурациях названия кнопок могут немного отличаться, но логика сохраняется.

Определите, где именно нужен период

Прежде чем что-то менять, уточните задачу. От этого зависит инструмент и уровень доступа. Одна и та же фраза «добавить период» на практике означает четыре разных действия.

Маршрут решения

Как выбрать действие

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

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

Как задать период в отчёте

Это самый частый случай. Практически все типовые отчёты (ОСВ, карточка счёта, анализ продаж, ведомости) содержат параметр «Период», но иногда он скрыт или сброшен.

Порядок действий
  1. 1
    Откройте нужный отчёт из раздела «Отчёты» или из рабочего места учёта
  2. 2
    Нажмите «Показать настройки» (в ряде конфигураций — «Ещё» → «Изменить вариант»)
  3. 3
    На закладке «Параметры» или в шапке настроек найдите поле «Период»
  4. 4
    Укажите дату начала и дату окончания вручную или выберите стандартный период (месяц, квартал, год) из выпадающего списка
  5. 5
    Нажмите «Закрыть и сформировать» и проверьте, что данные попали в заданный диапазон

Если поля «Период» в настройках нет, отчёт может использовать отбор по полю «Дата». На закладке «Отбор» добавьте новый элемент отбора, выберите поле «Период» или «Дата», задайте вид сравнения «Больше или равно» и «Меньше или равно» для границ диапазона. Такой способ менее удобен, но работает в отчётах на СКД без явного параметра.

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

Как ограничить период в журнале документов

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

Установленный интервал отображается в строке состояния списка. Чтобы снять ограничение, нажмите ту же кнопку и выберите «За всё время» или отключите установленный интервал. Если кнопки нет на виду, поищите её в меню «Ещё» командной панели журнала.

Учтите: интервал дат в журнале — это фильтр отображения, а не удаление данных. Документы вне диапазона никуда не пропадают, они просто не показываются. Если коллега «не видит» документ, первым делом проверьте, не установлен ли у него узкий интервал дат.

Как добавить поле выбора периода на форму в конфигураторе

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

Порядок действий в конфигураторе:

  1. Откройте форму объекта (отчёта, обработки, документа) в конфигураторе.
  2. В правой панели реквизитов добавьте новый реквизит, например Период, с типом СтандартныйПериод.
  3. Перетащите реквизит из панели в дерево элементов формы — платформа создаст поле ввода автоматически.
  4. Если нужны отдельные поля «Дата начала» и «Дата окончания», создайте два реквизита типа Дата и разместите их рядом.
  5. Обновите конфигурацию базы данных (F7) и проверьте форму в режиме «Предприятие».

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

Тип «СтандартныйПериод» предпочтительнее двух отдельных дат: пользователь получает готовый диалог с кнопками «Месяц», «Квартал», «Год», а в коде границы доступны как Период.ДатаНачала и Период.ДатаОкончания. Два поля типа «Дата» оправданы только когда нужен нестандартный интерфейс.
ПЗ
Практическое замечание

Период в программном коде: типовые приёмы

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

// Стандартный период — текущий месяц

Период = Новый СтандартныйПериод(ВариантСтандартногоПериода.ЭтотМесяц);

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

Период = Новый СтандартныйПериод;

Период.ДатаНачала = НачалоМесяца(ТекущаяДатаСеанса());

Период.ДатаОкончания = КонецМесяца(ТекущаяДатаСеанса());

В запросах период обычно передаётся параметрами: ГДЕ Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода. Для виртуальных таблиц регистров границы указываются в параметрах самой таблицы, например РегистрНакопления.Продажи.Обороты(&Начало, &Конец, Месяц, ) — третий параметр задаёт периодичность итогов.

Обратите внимание на границу конца периода. Дата без времени трактуется как начало дня (00:00:00), поэтому документы, проведённые в течение последнего дня, могут «выпасть» из выборки. Используйте КонецДня(), КонецМесяца() или объект «Граница», чтобы включить последний день целиком.

Периодичность регистра сведений и периодические реквизиты

Отдельная задача — хранение данных, меняющихся во времени: курсы валют, цены, ставки налогов, ФИО сотрудника. Для этого служит периодический регистр сведений. Периодичность задаётся в свойствах регистра в конфигураторе: «В пределах секунды», «дня», «месяца», «квартала», «года» или «Непериодический».

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

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

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

Как проверить, что период работает правильно

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

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

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

Границы отчёта
Норма

В шапке отчёта указан именно тот диапазон, который вы задавали

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

Период сброшен или отличается от введённого — проверьте сохранённые настройки

Полнота данных
Норма

Документы первого и последнего дня диапазона присутствуют в отчёте

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

Данные последнего дня отсутствуют — вероятно, конец периода задан без учёта времени

Журнал документов
Норма

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

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

Установлен узкий интервал, скрывающий часть документов

Форма с новым полем периода
Норма

Поле открывает диалог выбора диапазона и влияет на результат

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

Поле есть, но не связано с запросом — период не влияет на данные

Если отчёт строится на СКД, дополнительно откройте «Ещё — Изменить вариант» и посмотрите закладку «Отбор»: там могут быть скрытые условия по дате, добавленные ранее. Сравните итог с контрольным отчётом (например, оборотно-сальдовой ведомостью) за тот же диапазон.

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

Почему в отчёте нет поля «Период»?

В некоторых отчётах на СКД параметр периода скрыт в расширенных настройках. Нажмите «Ещё — Изменить вариант» и проверьте закладки «Параметры» и «Отбор». Если параметра нет совсем, добавьте отбор по полю «Период» или «Дата» с двумя условиями на границы диапазона.

Как сохранить период, чтобы не вводить его каждый раз?

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

Чем «СтандартныйПериод» лучше двух полей с датами?

Он даёт пользователю готовый диалог с предопределёнными диапазонами (день, неделя, месяц, квартал, год) и хранит обе границы в одном значении. В коде они доступны как ДатаНачала и ДатаОкончания, что упрощает передачу в запросы и компоновку данных.

Документы последнего дня периода не попадают в отчёт. Что делать?

Причина почти всегда в том, что конец периода задан как дата без времени, то есть 00:00:00 последнего дня. Укажите конец через функцию КонецДня() или КонецМесяца(), либо выберите дату с временем 23:59:59.

Можно ли изменить периодичность регистра сведений без потери данных?

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

Итог

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

В пользовательском режиме период задаётся через настройки отчёта или кнопку «Установить интервал дат» в журнале. В конфигураторе используйте реквизит типа «СтандартныйПериод» и параметры запроса. Всегда проверяйте границу конца периода и делайте резервную копию перед изменением структуры регистров.