Пользователи системы 1С:Предприятие часто сталкиваются с необходимостью изменить стандартный вид отчетов или форм документов. Одной из самых распространенных задач является вопрос о том, как убрать период в 1С. Это может потребоваться для создания статичных отчетов, упрощения интерфейса для кассиров или при формировании печатных форм, где указание диапазона дат нецелесообразно.
В стандартной конфигурации большинство форм и отчетов настроены с обязательным указанием временного интервала. Это логично для аналитики, но избыточно для оперативной работы. Убрать период можно несколькими способами, начиная от простых манипуляций в интерфейсе пользователя и заканчивая глубокими изменениями в коде конфигурации.
Выбор конкретного метода зависит от ваших прав доступа и поставленной задачи. Если вы обычный пользователь, вам подойдут настройки вида формы. Если же вы администратор или программист, потребуется вмешательство в свойства объектов метаданных. Важно понимать разницу между скрытием поля и полным отключением функционала фильтрации.
Управление видимостью поля в режиме пользователя
Самый простой способ изменить отображение формы — использовать встроенные средства настройки интерфейса. В режиме 1С:Предприятие пользователь может самостоятельно скрыть ненужные элементы управления, не прибегая к помощи разработчиков. Это работает, если администратор не заблокировал возможность изменения вида формы.
Для этого необходимо нажать на кнопку настроек, которая обычно располагается в правом верхнем углу формы отчета или документа. В открывшемся меню следует выбрать пункт «Изменить форму». Здесь отображается дерево всех элементов текущей формы.
- 🔍 Найдите в списке элемент с названием «Период» или «Дата», часто он находится в группе «Параметры».
- 🚫 Снимите галочку в колонке «Видимость» напротив этого элемента.
- 💾 Нажмите кнопку «ОК» или «Сохранить», чтобы применить изменения к текущей сессии.
После выполнения этих действий поле ввода дат исчезнет с экрана. Однако стоит помнить, что такой метод скрывает элемент только визуально. Логика работы отчета может остаться прежней, и система может подставлять значения по умолчанию, например, текущий месяц.
Если кнопка изменения формы недоступна или скрыта, значит, в правах доступа вашей роли стоит ограничение. В этом случае требуется обращение к администратору базы данных для корректировки прав или изменения конфигурации.
Настройка свойств отчета в Конфигураторе
Для глобального изменения поведения отчета необходимо работать в режиме Конфигуратор. Этот метод позволяет убрать период на уровне метаданных, сделав изменение постоянным для всех пользователей системы. Требуется наличие прав на редактирование конфигурации.
Откройте дерево метаданных и найдите нужный отчет в ветке «Отчеты». Дважды кликните по объекту, чтобы открыть его форму. В режиме конструктора форм вы увидите визуальное представление того, как отчет выглядит у пользователя.
Выделите поле периода на форме. В палитре свойств этого элемента найдите параметр Видимость. Установите значение Ложь (False). Это действие полностью удалит элемент из интерфейса при запуске базы данных в режиме предприятия.
⚠️ Внимание: Перед внесением изменений в конфигурацию обязательно создайте резервную копию базы данных (файл .dt). Ошибки при редактировании форм могут привести к неработоспособности всего отчета.
Часто поле периода связано с системной командой формирования. Если просто скрыть поле, отчет может перестать формироваться, так как не получит входные параметры. В таких случаях в коде модуля формы прописывают жесткие значения дат.
Альтернативный вариант — использование предопределенных вариантов отчета. Вы можете создать вариант, в котором период зафиксирован, и вывести его в список доступных настроек. Пользователь просто выберет этот вариант, не видя поля ввода.
☑️ Проверка перед изменением конфигурации
Программное отключение периода в модуле объекта
Более гибкий подход подразумевает написание программного кода. Это позволяет динамически управлять видимостью периода в зависимости от контекста. Например, период можно скрыть только для определенной категории пользователей или конкретных видов операций.
Код размещается в модуле формы отчета. Обычно используется событие ПриСозданииНаСервере или ПриОткрытии. В этом обработчике программно устанавливается свойство видимости элемента формы.
Процедура ПриСозданииНаСервере(Отказ)
// Скрываем поле периода программно
Элементы.Период.Видимость = Ложь;
// Устанавливаем период по умолчанию, чтобы отчет работал
Параметры.Период.ДатаНачала = НачалоГода(ТекущаяДата());
Параметры.Период.ДатаОкончания = КонецГода(ТекущаяДата());
КонецПроцедуры
Использование кода дает преимущество: вы можете оставить поле доступным для администраторов, скрыв его для обычных менеджеров. Для этого используется проверка текущей роли пользователя через функцию РольДоступна.
Также важно учесть, что при скрытии поля необходимо гарантировать передачу корректных значений периода в запросы отчета. Если отчет строится на СКД (Системе Компоновки Данных), параметры должны быть переданы в настройки компоновки.
⚠️ Внимание: Интерфейс и методы доступа к свойствам элементов могут отличаться в платформах 1С версии 8.2 и 8.3. Всегда сверяйте синтаксис с актуальной документацией по вашей версии платформы.
Работа с Системой Компоновки Данных (СКД)
Современные отчеты в 1С:Предприятие строятся на базе СКД. Настройка периода здесь происходит не только на форме, но и в схеме компоновки данных. Это отдельный слой настройки, определяющий логику выборки информации.
В конструкторе СКД есть раздел «Параметры». Здесь определяется, какие параметры доступны пользователю. Если убрать период из списка доступных параметров СКД, он исчезнет и из интерфейса, и из логики формирования.
| Элемент настройки | Расположение | Влияние на отчет |
|---|---|---|
| Видимость на форме | Редактор форм | Только визуальное скрытие поля ввода |
| Доступность параметра | Настройки СКД | Параметр не передается в запрос, требуется значение по умолчанию |
| Значение по умолчанию | Модуль объекта / СКД | Определяет диапазон дат при отсутствии ввода пользователем |
Если параметр «Период» удален из настроек СКД, но используется в тексте запроса, отчет выдаст ошибку при выполнении. Поэтому важно либо заменить использование параметра на константу в запросе, либо задать жесткое значение в коде.
Для сложных отчетов, где период используется в нескольких местах (условный вывод, параметры вложенных отчетов), простое скрытие может привести к некорректной работе. Всегда тестируйте отчет после изменений.
Что делать, если отчет не формируется после скрытия периода?
Чаще всего проблема в том, что в запросе используется параметр, значение которого не передается. Проверьте текст запроса в СКД. Если там есть &Период, замените его на конкретную дату или убедитесь, что значение подставляется из модуля формы перед выполнением запроса.
Ограничение ввода произвольных дат
Иногда задача стоит не в том, чтобы полностью убрать период, а в том, чтобы запретить пользователю вводить произвольные даты. Например, кассир должен видеть данные только за текущую смену, а бухгалтер — за закрытый месяц.
Для решения этой задачи используется механизм ограничений доступа или настройка свойств поля ввода. В свойствах поля ДатаНачала и ДатаОкончания можно задать минимальное и максимальное значение.
- 📅 Установите свойство
МинимальнаяДатаравным началу текущего рабочего дня. - 🛑 Задайте свойство
МаксимальнаяДата, чтобы запретить выбор будущих периодов. - 🔒 Используйте роли доступа для ограничения видимости исторических данных на уровне записей регистра.
Такой подход сохраняет функциональность отчета, но сужает область ответственности пользователя. Это более безопасно с точки зрения целостности данных, чем полное удаление поля.
В типовых конфигурациях, таких как 1С:Бухгалтерия или 1С:Управление Торговлей, часто используются механизмы RLS (Record Level Security). Они позволяют программно отсекать данные за пределами разрешенного периода еще на этапе чтения из базы.
Используйте предопределенные варианты отчета для частых сценариев. Создайте вариант «За сегодня» и выведите его в начало списка. Пользователям не придется каждый раз настраивать период вручную.
Типичные ошибки и способы их устранения
При попытке убрать период пользователи и разработчики часто совершают однотипные ошибки. Понимание этих нюансов поможет избежать лишних затрат времени на отладку.
Самая частая ошибка — скрытие поля без установки значения по умолчанию. В результате отчет пытается выполниться с пустым параметром, что вызывает ошибку выполнения запроса или возвращает пустую выборку.
Другая проблема возникает при обновлении типовой конфигурации. Если вы изменили форму отчета напрямую, обновление может сбросить ваши изменения или привести к конфликту версий. В таких случаях рекомендуется использовать расширения конфигурации.
⚠️ Внимание: Прямое изменение типовых объектов конфигурации усложняет последующее обновление платформы. Всегда проверяйте, поддерживает ли ваша версия 1С механизм расширений для решения данной задачи.
Также стоит обратить внимание на печатные формы. Если вы убрали период в экранных формах, он может автоматически подтянуться в печатный макет. Проверьте макеты печати и при необходимости отредактируйте их отдельно.
Использование расширений конфигурации — самый безопасный способ изменить поведение типовых отчетов без потери возможности обновления системы.
Часто задаваемые вопросы (FAQ)
Можно ли убрать период в отчете без прав администратора?
Да, если администратор разрешил пользователям изменять вид форм. В противном случае можно создать свой вариант отчета с фиксированными настройками, если функционал отчетов позволяет сохранять варианты настроек.
Почему после скрытия периода отчет показывает неверные данные?
Скорее всего, не установлено значение периода по умолчанию. Система может использовать последний введенный период или начало эры. Необходимо прописать жесткие даты в модуле формы или настройках СКД.
Как вернуть поле периода, если я его случайно скрыл?
Зайдите в настройки формы (шестеренка или кнопка «Еще» → «Изменить форму») и поставьте галочку видимости обратно. Если форма была изменена в конфигураторе, потребуется сбросить настройки формы пользователя или изменить конфигурацию обратно.
Влияет ли удаление периода на скорость формирования отчета?
Само по себе скрытие поля не влияет на скорость. Однако, если вы фиксируете период программно, это может помочь оптимизировать запрос, если система кэширует результаты для стандартных интервалов.
Можно ли сделать период обязательным для заполнения?
Да, в свойствах поля на форме есть параметр «Обязательное заполнение». Также можно добавить проверку в модуль формы перед записью или формированием, выдавая сообщение пользователю, если период не выбран.