Поле периода в отчётах и журналах 1С: скрыть, зафиксировать, запретить лишние даты

· 9 мин

Содержание

Чтобы убрать период из отчёта 1С без программиста, откройте Настройки отчёта, переключите режим на расширенный и снимите у параметра «Период» видимость в шапке. Если период стоит в журнале документов, откройте Ещё → Установить период и очистите обе даты. Для всех пользователей сразу период скрывают в Конфигураторе: в схеме компоновки данных (СКД) параметру ставят «Ограничение доступности» и задают значение по умолчанию.

Способы ниже работают на платформе 8.3 с интерфейсом «Такси» и не зависят от конфигурации: БП 3.0, ЗУП 3.1, УТ 11 устроены одинаково. Разница только в том, где хранится настройка: у одного пользователя, в варианте отчёта или в самой конфигурации. От этого зависит, какой способ выбрать.

Что нужноГде делатьКого коснётся
Спрятать период у себяНастройки отчёта или спискаТолько вас
Спрятать у всех в одном вариантеВариант отчётаВсех, кто открывает вариант
Убрать навсегда, задать фиксированный периодСКД в Конфигураторе или расширенииВсех пользователей
Не дать ставить «чужие» датыДаты запрета, проверка в модулеВсех, по правилам

1. Как убрать период в отчёте в пользовательском режиме

В типовых отчётах на базе БСП (оборотно-сальдовая ведомость, анализ субконто, отчёты по зарплате) поле периода — это быстрая пользовательская настройка. Её выводят в шапку, и её же можно оттуда убрать.

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

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

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

Чтобы скрытие увидели коллеги

Пользовательские настройки хранятся отдельно у каждого. Ваш коллега увидит период как раньше. Чтобы поменять поведение для всех, сохраните изменённые настройки как вариант отчёта: Ещё → Сохранить вариант отчёта, затем отметьте, что вариант доступен всем пользователям. Для этого нужно право на изменение вариантов — обычно оно есть у администратора.

2. Период в журналах и списках документов

Частый случай: в журнале «Документы реализации» или «Банковские выписки» видны документы только за месяц, а в шапке висит «Период: 01.03 – 31.03». Это не отчёт, а фильтр динамического списка.

Как убрать период из списка документов:

  1. В форме списка нажмите Ещё → Установить период.
  2. В открывшемся окне очистите поля дат начала и окончания (или нажмите кнопку очистки периода).
  3. Нажмите Выбрать.

После этого список покажет все документы без ограничения по дате.

Большой журнал без периода открывается медленнее. В базе на 200 тысяч документов разница заметна, особенно в файловом варианте. Если вам нужен только поиск старого документа, проще временно поставить широкий период, а потом вернуть текущий месяц.

Ещё один источник «периода» в списках — отбор по дате, заданный через Ещё → Настроить список. Если очистка через «Установить период » не помогла, откройте настройку списка и удалите отбор по полю «Дата» на вкладке отборов.

3. Свойства отчёта и формы в Конфигураторе

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

Если у отчёта своя форма

Откройте отчёт в дереве метаданных, перейдите на вкладку Формы и откройте основную форму. В дереве элементов найдите поле периода (часто называется Период, ПериодОтчета или это пара полей НачалоПериода/КонецПериода).

Дальше два варианта:

  • 🔹 Скрыть полностью — в палитре свойств снять флажок Видимость.
  • 🔹 Показать, но не давать менять — установить ТолькоПросмотр.

Как сделать это в расширении

  1. В Конфигураторе откройте Конфигурация → Расширения конфигурации и создайте новое расширение.
  2. В основной конфигурации найдите отчёт, вызовите контекстное меню формы и добавьте её в расширение.
  3. В заимствованной форме измените свойства поля периода и обновите расширение в базе.

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

Если формы нет

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

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

4. Параметр периода в СКД: скрыть и задать значение по умолчанию

Это самый частый способ, которым разработчики убирают период в 1С. Откройте отчёт, затем макет основной схемы компоновки данных.

Шаг 1. Вкладка «Параметры»

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

  1. Добавьте параметр Период с типом СтандартныйПериод.
  2. У параметра НачалоПериода в колонке «Выражение» укажите &Период.ДатаНачала.
  3. У КонецПериода — &Период.ДатаОкончания.
  4. У НачалоПериода и КонецПериода установите флажок «Ограничение доступности».

Теперь пользователь видит одно поле «Период» вместо двух дат. Чтобы убрать и его, установите «Ограничение доступности» у самого параметра Период и заполните колонку «Значение», например «Этот месяц» или «Прошлый месяц».

Какое значение периода выбрать

У типа СтандартныйПериод два вида значений, и разница между ними принципиальная:

  • 📅 Вариант периода («Этот месяц», «Прошлый квартал», «С начала этого года»). Даты пересчитываются при каждом формировании. В апреле «Прошлый месяц» даст март, в мае — апрель.
  • 📌 Произвольный период с конкретными датами. Он застынет навсегда, и через полгода отчёт будет показывать старые цифры.

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

Шаг 2. Вкладка «Настройки» основного варианта

Ограничение доступности скрывает параметр, но если он уже был выведен в пользовательские настройки варианта, имеет смысл убрать его и там:

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

Не ставьте «Ограничение доступности» у параметра без значения. Отчёт сформируется с пустым периодом, и вместо данных за месяц вы получите все обороты с начала учёта или ошибку о незаполненном параметре.

5. Как отключить период программно

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

Скрыть поле на форме

Если у отчёта или обработки своя форма, достаточно одной строки в обработчике создания:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Элементы.Период.Видимость = Ложь;
КонецПроцедуры

Период — имя элемента формы. Уточните его в дереве элементов: оно не обязано совпадать с именем реквизита.

Подставить период в модуле объекта отчёта

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

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Схема     = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();

    Период = Новый СтандартныйПериод(ВариантСтандартногоПериода.ПрошлыйМесяц);
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", Период);

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);

    Процессор = Новый ПроцессорКомпоновкиДанных;
    Процессор.Инициализировать(Макет, , ДанныеРасшифровки, Истина);

    ДокументРезультат.Очистить();
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(Процессор);

КонецПроцедуры

Что важно в этом примере:

  • 📌 Имя макета ОсновнаяСхемаКомпоновкиДанных проверьте в дереве отчёта на вкладке «Макеты».
  • 📌 Параметр Период должен существовать в схеме (см. раздел 4).
  • 📌 Значение из кода перекрывает то, что выбрал пользователь. Поэтому вместе с кодом скройте параметр из пользовательских настроек, иначе человек будет менять период, а отчёт его игнорировать.

Типовые отчёты на БСП часто уже содержат свой ПриКомпоновкеРезультата или формируются через общие модули подсистемы «Варианты отчётов». Не переписывайте такие отчёты целиком: подставляйте период в расширении, перехватывая нужный обработчик, и проверяйте результат на копии базы.

6. Как ограничить ввод произвольных дат в 1С

Под «убрать период» часто имеют в виду другое: запретить бухгалтеру вводить или править документы задним числом. Здесь три уровня защиты.

Даты запрета изменения данных

Это штатный механизм БСП в типовых конфигурациях. В БП 3.0 он включается в разделе Администрирование → Проведение документов: флажок дат запрета изменения и ссылка на их настройку. В ЗУП 3.1 и УТ 11 механизм тот же, его ищут в разделе Администрирование среди настроек пользователей и прав.

Что можно задать:

  • 🗓️ одну общую дату для всех пользователей;
  • 👤 отдельные даты для конкретных пользователей и групп;
  • 🏢 разные даты по организациям;
  • 🔁 относительную дату, например «конец прошлого месяца», чтобы не переставлять её вручную каждый месяц.

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

Проверка даты в модуле документа

Если правило нестандартное (например, документ разрешено вводить только в текущем месяце), добавьте проверку в модуль объекта документа:

Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)

    Если НачалоМесяца(Дата) <> НачалоМесяца(ТекущаяДатаСеанса()) Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Дата документа должна быть в текущем месяце.";
        Сообщение.Поле = "Дата";
        Сообщение.УстановитьДанные(ЭтотОбъект);
        Сообщение.Сообщить();
        Отказ = Истина;
    КонецЕсли;

КонецПроцедуры

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

Рабочая дата пользователя

Если новые документы «сами» встают на чужую дату, проверьте рабочую дату: Главное меню → Сервис → Параметры. Там есть поле рабочей даты и флажок использования текущей даты компьютера. Флажок должен стоять, иначе все новые документы будут создаваться на зафиксированную дату.

Диагностика: выберите симптом

Частые вопросы про период в отчётах 1С

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