Поле периода в отчётах и журналах 1С: скрыть, зафиксировать, запретить лишние даты
Содержание
Чтобы убрать период из отчёта 1С без программиста, откройте Настройки отчёта, переключите режим на расширенный и снимите у параметра «Период» видимость в шапке. Если период стоит в журнале документов, откройте Ещё → Установить период и очистите обе даты. Для всех пользователей сразу период скрывают в Конфигураторе: в схеме компоновки данных (СКД) параметру ставят «Ограничение доступности» и задают значение по умолчанию.
Способы ниже работают на платформе 8.3 с интерфейсом «Такси» и не зависят от конфигурации: БП 3.0, ЗУП 3.1, УТ 11 устроены одинаково. Разница только в том, где хранится настройка: у одного пользователя, в варианте отчёта или в самой конфигурации. От этого зависит, какой способ выбрать.
| Что нужно | Где делать | Кого коснётся |
|---|---|---|
| Спрятать период у себя | Настройки отчёта или списка | Только вас |
| Спрятать у всех в одном варианте | Вариант отчёта | Всех, кто открывает вариант |
| Убрать навсегда, задать фиксированный период | СКД в Конфигураторе или расширении | Всех пользователей |
| Не дать ставить «чужие» даты | Даты запрета, проверка в модуле | Всех, по правилам |
1. Как убрать период в отчёте в пользовательском режиме
В типовых отчётах на базе БСП (оборотно-сальдовая ведомость, анализ субконто, отчёты по зарплате) поле периода — это быстрая пользовательская настройка. Её выводят в шапку, и её же можно оттуда убрать.
- Откройте отчёт и нажмите
Настройки. - Вверху окна переключите вид с простого на расширенный.
- Найдите строку параметра «Период» (иногда «Начало периода» и «Конец периода» отдельно).
- Снимите флажок, который отвечает за вывод параметра в шапку отчёта. В расширенном режиме он стоит слева от строки параметра.
- Нажмите
Закрыть и сформировать.
Поле исчезнет из шапки, но последний выбранный период сохранится. Отчёт будет строиться за него, пока вы не вернёте поле обратно.
Если нужно не скрыть период, а вернуть отчёт «как был», выберите в меню Ещё команду установки стандартных настроек. Пользовательские изменения сбросятся, вариант отчёта не пострадает.
Чтобы скрытие увидели коллеги
Пользовательские настройки хранятся отдельно у каждого. Ваш коллега увидит период как раньше. Чтобы поменять поведение для всех, сохраните изменённые настройки как вариант отчёта: Ещё → Сохранить вариант отчёта, затем отметьте, что вариант доступен всем пользователям. Для этого нужно право на изменение вариантов — обычно оно есть у администратора.
2. Период в журналах и списках документов
Частый случай: в журнале «Документы реализации» или «Банковские выписки» видны документы только за месяц, а в шапке висит «Период: 01.03 – 31.03». Это не отчёт, а фильтр динамического списка.
Как убрать период из списка документов:
- В форме списка нажмите
Ещё → Установить период. - В открывшемся окне очистите поля дат начала и окончания (или нажмите кнопку очистки периода).
- Нажмите
Выбрать.
После этого список покажет все документы без ограничения по дате.
Большой журнал без периода открывается медленнее. В базе на 200 тысяч документов разница заметна, особенно в файловом варианте. Если вам нужен только поиск старого документа, проще временно поставить широкий период, а потом вернуть текущий месяц.
Ещё один источник «периода» в списках — отбор по дате, заданный через Ещё → Настроить список. Если очистка через «Установить период
» не помогла, откройте настройку списка и удалите отбор по полю «Дата» на вкладке отборов.
3. Свойства отчёта и формы в Конфигураторе
Когда период надо убрать у всех и навсегда, работают в Конфигураторе. Для типовой конфигурации на поддержке правильнее делать это в расширении: основная конфигурация останется нетронутой, обновления встанут без конфликтов.
Если у отчёта своя форма
Откройте отчёт в дереве метаданных, перейдите на вкладку Формы и откройте основную форму. В дереве элементов найдите поле периода (часто называется Период, ПериодОтчета или это пара полей НачалоПериода/КонецПериода).
Дальше два варианта:
- 🔹 Скрыть полностью — в палитре свойств снять флажок
Видимость. - 🔹 Показать, но не давать менять — установить
ТолькоПросмотр.
Как сделать это в расширении
- В Конфигураторе откройте
Конфигурация → Расширения конфигурациии создайте новое расширение. - В основной конфигурации найдите отчёт, вызовите контекстное меню формы и добавьте её в расширение.
- В заимствованной форме измените свойства поля периода и обновите расширение в базе.
Для заимствованной формы платформа хранит только отличия, поэтому после обновления типовой конфигурации ваша правка сохранится.
Если формы нет
У отчёта без собственной формы платформа строит форму сама. Поле периода в ней появляется из параметров СКД, которые включены в пользовательские настройки. Значит, менять нужно схему — об этом следующий раздел.
После правок в Конфигураторе выполните «Обновить конфигурацию базы данных» (F7). Если у пользователя остались сохранённые настройки отчёта, он может продолжать видеть старую картину, пока не сбросит их на стандартные.
4. Параметр периода в СКД: скрыть и задать значение по умолчанию
Это самый частый способ, которым разработчики убирают период в 1С. Откройте отчёт, затем макет основной схемы компоновки данных.
Шаг 1. Вкладка «Параметры»
Если в запросе есть виртуальные таблицы с &НачалоПериода и &КонецПериода, платформа сама создаёт эти параметры. Классическая схема выглядит так:
- Добавьте параметр
Периодс типомСтандартныйПериод. - У параметра
НачалоПериодав колонке «Выражение» укажите&Период.ДатаНачала. - У
КонецПериода—&Период.ДатаОкончания. - У
НачалоПериодаиКонецПериодаустановите флажок «Ограничение доступности».
Теперь пользователь видит одно поле «Период» вместо двух дат. Чтобы убрать и его, установите «Ограничение доступности» у самого параметра Период и заполните колонку «Значение», например «Этот месяц» или «Прошлый месяц».
Какое значение периода выбрать
У типа СтандартныйПериод два вида значений, и разница между ними принципиальная:
- 📅 Вариант периода («Этот месяц», «Прошлый квартал», «С начала этого года»). Даты пересчитываются при каждом формировании. В апреле «Прошлый месяц» даст март, в мае — апрель.
- 📌 Произвольный период с конкретными датами. Он застынет навсегда, и через полгода отчёт будет показывать старые цифры.
Для скрытого параметра почти всегда нужен вариант периода. Произвольные даты оправданы только в разовых отчётах, например для сверки за конкретный закрытый год.
Шаг 2. Вкладка «Настройки» основного варианта
Ограничение доступности скрывает параметр, но если он уже был выведен в пользовательские настройки варианта, имеет смысл убрать его и там:
- Перейдите на вкладку
Настройки, затем на закладкуПараметры. - Выделите строку периода и откройте свойства элемента пользовательских настроек (кнопка в командной панели закладки).
- Снимите флажок «Включать в пользовательские настройки» или выберите режим редактирования «Недоступный».
| Режим редактирования | Что видит пользователь |
|---|---|
| Быстрый доступ | Поле периода прямо в шапке отчёта |
| Обычный | Период только внутри окна Настройки |
| Недоступный | Период не показывается нигде |
Не ставьте «Ограничение доступности» у параметра без значения. Отчёт сформируется с пустым периодом, и вместо данных за месяц вы получите все обороты с начала учёта или ошибку о незаполненном параметре.
5. Как отключить период программно
Иногда период нужно не показывать, а вычислять: отчёт всегда строится за прошлый месяц или за текущий квартал. Это делается кодом.
Скрыть поле на форме
Если у отчёта или обработки своя форма, достаточно одной строки в обработчике создания:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.Период.Видимость = Ложь;
КонецПроцедуры
Период — имя элемента формы. Уточните его в дереве элементов: оно не обязано совпадать с именем реквизита.
Подставить период в модуле объекта отчёта
Для отчёта на СКД период задают в обработчике ПриКомпоновкеРезультата. Пример ниже отключает стандартную компоновку, подставляет прошлый месяц и выводит результат:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
Период = Новый СтандартныйПериод(ВариантСтандартногоПериода.ПрошлыйМесяц);
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Период", Период);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет, , ДанныеРасшифровки, Истина);
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(Процессор);
КонецПроцедуры
Что важно в этом примере:
- 📌 Имя макета
ОсновнаяСхемаКомпоновкиДанныхпроверьте в дереве отчёта на вкладке «Макеты». - 📌 Параметр
Периоддолжен существовать в схеме (см. раздел 4). - 📌 Значение из кода перекрывает то, что выбрал пользователь. Поэтому вместе с кодом скройте параметр из пользовательских настроек, иначе человек будет менять период, а отчёт его игнорировать.
Типовые отчёты на БСП часто уже содержат свой ПриКомпоновкеРезультата или формируются через общие модули подсистемы «Варианты отчётов». Не переписывайте такие отчёты целиком: подставляйте период в расширении, перехватывая нужный обработчик, и проверяйте результат на копии базы.
6. Как ограничить ввод произвольных дат в 1С
Под «убрать период» часто имеют в виду другое: запретить бухгалтеру вводить или править документы задним числом. Здесь три уровня защиты.
Даты запрета изменения данных
Это штатный механизм БСП в типовых конфигурациях. В БП 3.0 он включается в разделе Администрирование → Проведение документов: флажок дат запрета изменения и ссылка на их настройку. В ЗУП 3.1 и УТ 11 механизм тот же, его ищут в разделе Администрирование среди настроек пользователей и прав.
Что можно задать:
- 🗓️ одну общую дату для всех пользователей;
- 👤 отдельные даты для конкретных пользователей и групп;
- 🏢 разные даты по организациям;
- 🔁 относительную дату, например «конец прошлого месяца», чтобы не переставлять её вручную каждый месяц.
После этого документы с датой раньше запретной нельзя создать, провести или изменить. Отчёты за закрытый период по-прежнему строятся.
Проверка даты в модуле документа
Если правило нестандартное (например, документ разрешено вводить только в текущем месяце), добавьте проверку в модуль объекта документа:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если НачалоМесяца(Дата) <> НачалоМесяца(ТекущаяДатаСеанса()) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Дата документа должна быть в текущем месяце.";
Сообщение.Поле = "Дата";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Проверка выполняется на сервере при записи с проверкой и при проведении, поэтому её не обойти сменой даты на компьютере.
Рабочая дата пользователя
Если новые документы «сами» встают на чужую дату, проверьте рабочую дату: Главное меню → Сервис → Параметры. Там есть поле рабочей даты и флажок использования текущей даты компьютера. Флажок должен стоять, иначе все новые документы будут создаваться на зафиксированную дату.
Частые вопросы про период в отчётах 1С
Пропадут ли данные, если убрать период из отчёта?
Можно ли оставить период видимым, но запретить его менять?
ТолькоПросмотр. В СКД задайте значение параметра и режим редактирования «Недоступный», а сам период выведите в заголовок отчёта.