Отчеты и Аналитика · 11 мин
Как добавить период отчета в 1С 8
Как добавить и настроить период отчета в 1С 8: в стандартных отчетах, на СКД, в произвольных формах. Пошаговые инструкции, типовые ошибки и ответы на вопросы.
Период отчета — ключевой параметр практически любого отчета в 1С 8: от оборотно-сальдовой ведомости до анализа продаж. Пользователи сталкиваются с задачей добавить или изменить отбор по периоду в трех типовых ситуациях: в готовом отчете, где период не виден на панели настроек; в отчете, созданном на системе компоновки данных (СКД); и в самописной форме, где поле периода нужно вывести программно.
Способ решения зависит от того, кто вы в данной ситуации — пользователь или разработчик. Обычному пользователю достаточно открыть настройки отчета и добавить отбор по полю «Период» или воспользоваться стандартным параметром. Разработчику, который дорабатывает конфигурацию, потребуется работа со схемой компоновки данных, параметрами «НачалоПериода» и «КонецПериода» либо стандартным периодом.
Ниже разобраны оба сценария: быстрые действия в типовых отчетах без изменения конфигурации и настройка периода при разработке собственных отчетов. Отдельно рассмотрены частые ошибки — например, когда отчет ругается на незаполненный период или показывает данные не за те даты.
Как период устроен в отчетах 1С 8
В платформе 1С:Предприятие 8 существует два механизма ограничения данных по датам. Первый — параметры отчета «Начало периода» и «Конец периода» (или единый параметр типа «Стандартный период»), которые передаются в запрос и жестко ограничивают выборку. Второй — отбор по полю «Период», который пользователь может сам добавить, изменить или отключить в настройках.
Разница принципиальна. Параметр участвует в формировании запроса к базе данных: без его заполнения отчет может либо не сформироваться, либо выдать данные за все время, что на больших базах приводит к долгому ожиданию. Отбор же — это пользовательский фильтр, который накладывается поверх и может быть снят в любой момент.
В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) большинство отчетов уже содержат обязательные параметры периода, вынесенные на быструю панель настроек. Если поля периода на форме нет, это значит одно из двух: либо параметр скрыт в расширенных настройках, либо отчет построен без него, и период нужно добавлять через отбор.
Добавление периода в готовом отчете без изменения конфигурации
Откройте нужный отчет и нажмите кнопку «Настройки» (в некоторых конфигурациях — «Настройки отчета» или «Изменить вариант»). Если на форме настроек есть вкладка «Параметры» или поля «Начало периода» и «Конец периода» — заполните их, и отчет сформируется за указанный интервал. Это самый простой случай.
Если параметров периода нет, перейдите на вкладку «Отбор». Нажмите «Добавить новый элемент» и в списке полей найдите «Период». Установите вид сравнения «В периоде» или «Больше или равно» / «Меньше или равно» с конкретными датами. После нажатия «Сформировать» отчет покажет данные только за выбранный интервал.
Для удобства добавленный отбор можно вынести на быструю панель: в окне настроек нажмите «Дополнительные настройки» или используйте команду включения элемента в пользовательские настройки (зависит от версии платформы и конфигурации). Тогда поле периода будет видно сразу при открытии отчета, без захода в настройки.
- 1Откройте отчет и нажмите «Настройки»
- 2Проверьте наличие параметров «Начало периода» и «Конец периода» — заполните их
- 3Если параметров нет, на вкладке «Отбор» добавьте элемент по полю «Период»
- 4Установите вид сравнения «В периоде» и укажите даты
- 5Нажмите «Сформировать» и проверьте, что данные относятся к нужному интервалу
Настройка периода в отчете на СКД (для разработчика)
Если вы разрабатываете собственный внешний отчет или дорабатываете конфигурацию, период добавляется в схеме компоновки данных. Откройте основную схему отчета в конфигураторе и перейдите на вкладку «Параметры». Добавьте два параметра — например, «НачалоПериода» и «КонецПериода» с типом «Дата», либо один параметр типа «СтандартныйПериод».
Далее параметры нужно связать с запросом. В тексте запроса на вкладке «Наборы данных» добавьте условие в секцию ГДЕ, например: Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода. Для виртуальных таблиц регистров период передается в параметры таблицы: РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) — это эффективнее, чем фильтрация в секции ГДЕ.
Чтобы пользователь мог менять период, на вкладке «Параметры» снимите для параметра флаг «Ограничение доступности» и на закладке «Настройки» в режиме «Пользовательские настройки» добавьте параметр в список быстрого доступа. После этого поле периода появится на форме отчета автоматически.
ГДЕ
Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериодаИспользование стандартного периода вместо двух дат
Вместо пары параметров удобнее использовать один параметр с типом «Стандартный период». В запросе тогда пишут условие вида: Период МЕЖДУ &СтандартныйПериод.ДатаНачала И &СтандартныйПериод.ДатаОкончания — либо в параметрах виртуальной таблицы передают выражения через точку. Пользователь при этом получает выпадающий список готовых интервалов: месяц, квартал, год, произвольный период.
Период в отчете на обычных формах
В старых конфигурациях на обычных формах (1С 8.2, ранние 8.3) поле периода добавляется вручную: в редакторе формы разместите элемент «Поле ввода» с типом «Стандартный период» или два поля типа «Дата», свяжите их с реквизитами формы и в обработчике кнопки «Сформировать» передайте значения в параметры отчета. В управляемых формах эта работа выполняется аналогично через реквизиты формы и элементы.
Добавление колонки периода в таблицу отчета
Иногда под «добавить период» понимают другое: вывести в отчет группировку или колонку с периодом — по месяцам, неделям, дням. Это делается в настройках структуры отчета. Откройте «Настройки», перейдите на вкладку структуры (группировок) и добавьте группировку по полю «Период месяц», «Период неделя» или «Период день» — такие поля платформа предоставляет автоматически для данных с датами.
Для вывода периода в колонках (например, продажи по месяцам в столбцах) добавьте в структуру таблицу, и в ее колонках разместите группировку по полю периода нужной детализации. В разработчикском режиме это настраивается на закладке «Настройки» схемы компоновки.
Проверка результата и типичные ошибки
После добавления периода сформируйте отчет и сверьте результат: даты документов или движений в расшифровке должны попадать в заданный интервал. Проверьте граничные значения — документы первого и последнего дня периода. Частая ошибка — потеря последнего дня: если параметр «Конец периода» содержит дату без времени, документы за этот день, проведенные после 00:00, могут не попасть в выборку. Используйте функцию «КонецПериода()» в запросе или вид сравнения «Меньше или равно» с концом дня.
Вторая типичная проблема — сообщение «Не заполнено значение параметра». Оно возникает, когда параметр периода помечен как обязательный, но пользователь его очистил. Решение: установить значение по умолчанию (например, стандартный период «Этот месяц») либо в настройках параметра задать автозаполнение.
Третья ошибка — отчет показывает данные за все время, несмотря на указанный период. Причина обычно в том, что параметр добавлен, но не связан с запросом: в тексте запроса нет условия по дате, и фильтр просто не применяется. Проверьте секцию ГДЕ и параметры виртуальных таблиц.
Как проверить результат
Все записи попадают в заданный интервал дат
Есть записи за пределами периода или нет записей за граничные дни
Отчет формируется за разумное время
Отчет «зависает» — вероятно, период не передан в параметры виртуальной таблицы
Период сохраняется или подставляется значение по умолчанию
Поле пустое и отчет выдает ошибку о незаполненном параметре
Ограничения и когда нужен разработчик
Пользовательские настройки решают задачу, только если отчет изначально построен на СКД и содержит поле даты в наборе данных. Если отчет программный (сформирован кодом без компоновки), добавить период через настройки невозможно — потребуется доработка модуля объекта отчета.
Также учитывайте права доступа: изменение варианта отчета может быть запрещено настройками, и кнопка «Настройки» будет недоступна. В этом случае обратитесь к администратору — либо он выдаст право на изменение вариантов, либо добавит нужный отбор в типовой вариант отчета для всех пользователей.
Что важно запомнить
В готовом отчете период добавляется через «Настройки» — параметрами или отбором по полю «Период». В отчете на СКД параметры связываются с запросом и выводятся в пользовательские настройки. Всегда проверяйте граничные даты и следите, чтобы период реально ограничивал выборку в запросе.
Частые вопросы
Почему в отчете нет поля периода на форме?
Скорее всего, параметр скрыт в расширенных настройках. Нажмите «Настройки» и посмотрите вкладку «Параметры» или «Отбор». Если периода нет и там — отчет построен без ограничения по датам, и его можно добавить только отбором по полю «Период» либо доработкой отчета разработчиком.
Как установить период по умолчанию, например текущий месяц?
В схеме компоновки данных на вкладке «Параметры» для параметра задайте значение по умолчанию — выражение или стандартный период «Этот месяц». В пользовательском режиме можно сохранить настройки с заполненным периодом как свой вариант отчета, и он будет открываться с этими значениями.
Отчет не видит документы за последний день периода. Что делать?
Проблема во времени: дата окончания хранится как начало дня (00:00:00), и документы, проведенные позже, отсекаются. В запросе используйте функцию КонецПериода(&КонецПериода, ДЕНЬ) или задайте вид сравнения «Меньше или равно» с датой конца периода, дополненной временем 23:59:59.
Можно ли добавить период в отчет без прав на изменение конфигурации?
Да, если отчет построен на СКД: добавьте отбор по полю «Период» в пользовательских настройках и сохраните как личный вариант. Конфигурация при этом не меняется. Если поле «Период» недоступно для отбора — без доработки отчета обойтись нельзя.
Чем отличается параметр периода от отбора по периоду?
Параметр передается в запрос и ограничивает выборку на уровне обращения к базе — это быстро и надежно. Отбор накладывается на уже полученные данные, его можно отключить, но на больших объемах он работает медленнее и не всегда доступен для виртуальных таблиц регистров.
Как вывести в отчете данные сразу за несколько периодов для сравнения?
Используйте группировку или колонки таблицы по полю «Период месяц» (или квартал, год), а общий интервал задайте параметрами так, чтобы он охватывал все нужные периоды. Отчет покажет данные в разрезе периодов, что удобно для сравнительного анализа.