Как в СКД отключить отображение параметров в отчете 1С?

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

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

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

Способ 1. Полное отключение вывода параметров через настройки СКД

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

Рассмотрим этот процесс по шагам:

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

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

Способ 2. Выборочное скрытие параметров из печатной формы

Иногда требуется скрыть не все параметры, а только некоторые из них — например, технические переменные, которые используются для внутренних расчетов в запросе и не должны мозолить глаза пользователю. Полное отключение вывода через Другие настройки в таком случае нам не подойдет, так как пользователь должен видеть ключевые отборы (например, период или склад).

Давайте проанализируем, как решить эту задачу выборочно:

Для скрытия конкретного параметра перейдем на вкладку Параметры в схеме СКД. Найдем нужный параметр и установим для него флаг в колонке Ограничение доступности.

Установка этого флага решает сразу две задачи:

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

Существует также альтернативный (хотя и несколько "костыльный") способ: в колонке Заголовок для скрываемого параметра можно поставить один символ пробела. В этом случае СКД попытается вывести параметр в шапку, но выведет пустую строку. Мы рекомендуем использовать первый вариант с ограничением доступности, так как он является методологически верным.

Способ 3. Скрытие параметров из пользовательского интерфейса (формы настроек)

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

Для этого выполним следующие действия на вкладке Параметры схемы СКД:

  1. В строке нужного параметра установим флажок Ограничение доступности. Это скроет его из стандартного списка доступных параметров на форме настроек.
  2. Снимем флажок в колонке Включать в доступные поля. Это действие предотвратит появление параметра в пользовательских отборах.
  3. Обратим внимание на колонку Использование. Чтобы система не требовала от пользователя обязательного заполнения этого поля на форме, переведем использование в режим Всегда. В таком случае СКД будет использовать значение по умолчанию или выражение, прописанное в схеме, без вывода интерактивных запросов к пользователю.

Способ 4. Программное управление видимостью параметров

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

Рассмотрим программное отключение вывода всей секции параметров непосредственно перед выводом отчета. Данный код обычно размещается в модуле объекта отчета в обработчике события ПриКомпоновкеРезультата:


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

КонецПроцедуры

Если же нам требуется программно скрыть конкретный параметр из пользовательских настроек на форме "на лету" (например, при открытии формы или изменении других реквизитов), мы можем обойти коллекцию пользовательских настроек компоновщика и отключить использование конкретного элемента:


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

Способ 5. Нюансы работы с предопределенными макетами оформления

Особое внимание стоит уделить случаям, когда отчет строится на базе СКД с использованием собственного предопределенного макета. При создании индивидуального дизайна стандартная серая таблица параметров, генерируемая платформой автоматически, чаще всего нарушает визуальную гармонию отчета.

Для создания профессиональных отчетов с собственными макетами мы рекомендуем придерживаться следующего алгоритма разработки:

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

При генерации отчета СКД автоматически сопоставит параметры макета с параметрами компоновщика и подставит актуальные значения непосредственно в красиво оформленные ячейки вашего собственного шаблона, избегая создания лишних системных таблиц.

← На главную