Почему пропадает кнопка Настройки в отчете СКД и как ее вернуть

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

При разработке внешних или встроенных отчетов на базе системы компоновки данных (СКД) разработчики нередко сталкиваются с неожиданным поведением интерфейса: после добавления в отчет собственной формы настроек (или копирования типовой) на основной командной панели отчета полностью исчезает стандартная кнопка «Настройки...». При этом отчет продолжает формироваться корректно, однако пользователь теряет возможность открыть окно расширенной настройки структуры, отборов и полей.

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

Механизм автогенерации интерфейса и причины скрытия кнопки

Проанализируем, как платформа формирует командную панель отчета, когда собственная форма отчета не создана явно и генерируется динамически.

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

  1. Быстрый доступ — элемент выводится непосредственно на форму отчета (в шапку или специальную панель).
  2. Обычный — элемент доступен только в отдельном диалоговом окне настроек.
  3. Авто — режим определяется платформой автоматически.

Если абсолютно все пользовательские настройки в отчете переведены в режим «Быстрый доступ» (или пользовательские настройки вовсе отсутствуют), платформа считает отдельное диалоговое окно настроек избыточным. В целях упрощения интерфейса кнопка вызова настроек автоматически скрывается с командной панели. Даже если в свойствах объекта метаданных отчета жестко прописана Основная форма настроек, автогенерируемая форма отчета все равно будет скрывать кнопку при отсутствии элементов с обычным режимом отображения.

Способ 1. Изменение режима отображения настроек в СКД (без создания формы отчета)

Рассмотрим самый быстрый и чистый вариант решения, не требующий создания дополнительного кода или переопределения формы отчета. Разберем его по шагам:

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

После сохранения схемы компоновки платформа зафиксирует наличие параметров, требующих вызова расширенного диалога, и кнопка «Настройки...» автоматически появится на командной панели отчета.

Способ 2. Явное создание формы отчета и принудительное управление видимостью

Если бизнес-логика требует, чтобы абсолютно все основные параметры находились исключительно в панели быстрого доступа, но кнопка вызова окна расширенных настроек все равно оставалась доступной, создадим собственную форму отчета.

Разберем последовательность действий:

  1. В дереве метаданных отчета добавим новую форму и укажем ее тип как «Основная форма отчета».
  2. В командной панели формы проверим наличие стандартной команды Настройки или создадим пользовательскую кнопку, привязанную к открытию формы настроек.
  3. В свойствах элемента кнопки на форме установим свойство Видимость в значение Истина и снимем автоматическое управление видимостью при необходимости.

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


&НаКлиенте
Процедура ОткрытьНастройкиОтчета(Команда)
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("КомпоновщикНастроек", Отчет.КомпоновщикНастроек);
    ПараметрыФормы.Вставить("КлючВарианта", Отчет.КлючВарианта);
    
    ОткрытьФорму("ВнешнийОтчет.МойОтчет.Форма.ФормаНастроек", ПараметрыФормы, ЭтотОбъект);
КонецПроцедуры

Особенности работы в типовых конфигурациях на БСП

Если отчет внедряется в конфигурацию, использующую Библиотеку стандартных подсистем (БСП) и подсистему «Варианты отчетов», обратим внимание на следующие моменты:

  1. Служебные параметры: Стандартная форма настроек отчета БСП ожидает на входе специализированные параметры (например, НастройкиОтчета, КлючВарианта). Простое копирование формы без корректной инициализации структуры параметров приведет к ошибкам при открытии.
  2. Права доступа: Отображение команд расширенной настройки СКД зависит от наличия у пользователя роли с правом Сохранение данных пользователя и прав на интерактивное изменение вариантов отчетов. Если у пользователя недостаточно прав, платформа может принудительно скрыть команды изменения структуры отчета.

Таким образом, для восстановления кнопки настроек достаточно перевести хотя бы один параметр СКД в режим отображения «Обычный» либо явно задать форму отчета с принудительной видимостью команды вызова настроек.

← На главную