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