Как убрать поле "Макет оформления" из панели настроек отчета СКД в 1С?

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

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

В этой статье мы подробно разберем, почему поле «Макет оформления» упорно продолжает отображаться на форме отчета, и рассмотрим несколько изящных способов решения этой проблемы — от простых настроек в Конфигураторе до правильного программного управления свойствами СКД.

Выясняем причину: почему поле не скрывается само?

Для начала проанализируем ситуацию и поймем, как платформа 1С работает с настройками компоновки данных. Когда мы создаем отчет на СКД, структура настроек (параметры, отборы, поля вывода) определяется в схеме компоновки. Если мы добавляем параметр вывода Макет оформления в пользовательские настройки, платформа связывает его с формой отчета через специальный идентификатор.

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

Решение 1. Отключение пользовательской настройки в Конфигураторе

Рассмотрим по шагам, как правильно отключить вывод поля «Макет оформления» на уровне метаданных схемы компоновки данных. Это первый и самый важный шаг, который предотвратит появление поля у всех новых пользователей отчета.

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

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

Решение 2. Сброс пользовательских настроек в режиме «1С:Предприятие»

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

  1. Запустим информационную базу в режиме «1С:Предприятие» и откроем проблемный отчет.
  2. На форме отчета нажмем кнопку «Еще» (расположенную в правом верхнем углу формы).
  3. В выпадающем меню выберем пункт «Установить стандартные настройки».

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

Решение 3. Изящное программное скрытие поля (без отключения всей панели)

Что делать, если у вас сотни пользователей и вы не можете зайти к каждому, чтобы вручную сбросить настройки? Или если требования безопасности запрещают очистку пользовательских фильтров и периодов? В таких случаях мы можем прибегнуть к программному решению, но сделаем это правильно.

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

Разместим следующий код в модуле формы отчета, например, в обработчике события ПриСозданииНаСервере:


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

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

Решение 4. Использование механизма Фиксированных настроек СКД

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

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


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

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

Рекомендации для конфигураций на базе БСП

Если вы работаете в современных типовых конфигурациях (таких как «1С:ERP», «1С:Комплексная автоматизация», «1С:Управление торговлей» или «1С:Управление нашей фирмой»), логика работы отчетов регулируется механизмами Библиотеки стандартных подсистем (БСП). В этом случае мы рекомендуем использовать встроенные административные обработки для централизованного сброса настроек пользователей.

Администратор системы может зайти в раздел «НСИ и администрирование» -> «Настройки пользователей и прав» -> «Очистка настроек». Там можно выбрать конкретный отчет и очистить кэш настроек сразу для всех пользователей информационной базы. Это исключит необходимость написания дополнительного кода и позволит решить проблему штатными средствами БСП.

← На главную