Как убрать в отчете кнопки Настройки и Варианты отчета

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке отчетов в системе 1С:Предприятие 8.3 на управляемых формах часто возникает необходимость упростить интерфейс для конечного пользователя. Стандартные кнопки «Настройки» и «Варианты отчета», которые платформа добавляет автоматически, могут перегружать форму или давать пользователям избыточные возможности по изменению структуры отчета. В этой статье мы подробно разберем, как скрыть эти элементы управления несколькими способами: от простого изменения свойств в конфигураторе до гибкого программного управления в зависимости от прав доступа.

Метод 1. Изменение состава команд через конфигуратор (статический способ)

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

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

Рассмотрим важный нюанс: если на форме используется «Автокомандная панель», то управление составом команд через свойства формы является самым надежным и быстрым методом. Однако стоит помнить, что это изменение будет действовать для всех пользователей системы без исключения.

Метод 2. Программное управление видимостью кнопок

Выясним, как поступить, если кнопки должны быть видны только определенным пользователям (например, администраторам) и скрыты для всех остальных. Для этого нам потребуется написать код в модуле формы. Разберем по шагам, как обратиться к элементам командной панели программно. Для практического изучения программной работы с элементами интерфейса подойдёт обработка-пример динамического добавления и удаления элементов формы.

В обработчике события ПриСозданииНаСервере мы можем управлять коллекцией Элементы. Важно знать правильные имена элементов, которые генерирует платформа. Обычно они имеют стандартные префиксы. Посмотрим на пример кода:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Проверим условие, например, роль пользователя
    Если НЕ РольДоступна("ПолныеПрава") Тогда
        
        // Скрываем кнопку "Настройки"
        // В зависимости от версии платформы имя может быть "ФормаКоманднаяПанельНастройки"
        Если Элементы.Найти("ФормаКоманднаяПанельНастройки") <> Неопределено Тогда
            Элементы.ФормаКоманднаяПанельНастройки.Видимость = Ложь;
        КонецЕсли;
        
        // Скрываем кнопку "Варианты отчета"
        Если Элементы.Найти("ФормаКоманднаяПанельВариантОтчета") <> Неопределено Тогда
            Элементы.ФормаКоманднаяПанельВариантОтчета.Видимость = Ложь;
        КонецЕсли;
        
    КонецЕсли;
    
КонецПроцедуры

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

Метод 3. Ограничение через Систему компоновки данных (СКД)

Иногда задача стоит не в том, чтобы физически удалить кнопку, а в том, чтобы запретить пользователю менять структуру отчета (поля, группировки, отборы). Это можно сделать на уровне схемы компоновки данных. Рассмотрим этот вариант подробнее:

  1. Откроем Основную схему компоновки данных нашего отчета.
  2. Перейдем на закладку «Настройки», а затем на вложенную закладку «Другие настройки».
  3. Найдем параметр «Разрешать изменять настройки пользователю».
  4. Установим значение в «Нет».

После этой настройки, даже если кнопка настроек останется на форме, функционал редактирования состава отчета будет заблокирован или ограничен. Это полезно, когда нужно сохранить возможность выбора готовых вариантов, но запретить «самодеятельность» в настройках группировок.

Метод 4. Использование механизмов БСП (Библиотека стандартных подсистем)

Если вы работаете в современной типовой конфигурации (такой как 1С:ERP, УТ 11 или БП 3.0), то отчеты, скорее всего, интегрированы в подсистему «Варианты отчетов». В этом случае управление формой происходит через специальные процедуры в модуле объекта отчета. Разберем, как использовать процедуру ОпределитьНастройкиФормы.

В модуле объекта отчета найдем или создадим процедуру:


Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, НастройкиФормы) Экспорт
    
    // Отключаем возможность изменения варианта
    НастройкиФормы.ВыводитьКомандуИзменитьВариант = Ложь;
    
    // Отключаем возможность открытия панели настроек
    НастройкиФормы.ВыводитьКомандуНастройки = Ложь;
    
КонецПроцедуры

Использование БСП является наиболее корректным методом для типовых конфигураций, так как система сама позаботится о правильном отображении интерфейса во всех режимах работы (Такси, обычный интерфейс и т.д.).

Метод 5. Разграничение прав через роли

Выясним причину, почему кнопки могут быть видны пользователям, которым они не нужны по бизнес-логике. В платформе 1С существует право «Сохранение данных пользователя». Если в роли пользователя убрать это право, он потеряет возможность сохранять свои личные варианты отчетов и настройки. Платформа может автоматически скрыть часть интерфейса, связанную с сохранением настроек, что косвенно решает нашу задачу.

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

← На главную