Почему стандартный период и настройки отчета СКД отображаются справа и как перенести их в шапку

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

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

Почему настройки отчета отображаются справа

Расположение пользовательских настроек зависит от нескольких ключевых факторов:

  1. Версия Библиотеки стандартных подсистем (БСП): В типовых конфигурациях (например, 1С:Управление торговлей 11, 1С:ERP, 1С:Комплексная автоматизация) стандартная форма отчета управляется механизмом БСП. В зависимости от релиза конфигурации и версии БСП (например, версии 2.2 и ниже против 2.3 и выше) логика компоновки интерфейса по умолчанию может автоматически размещать панель настроек справа от табличного документа.
  2. Свойства схемы компоновки данных: В самой схеме СКД для корневого элемента настроек предусмотрено свойство Положение пользовательских настроек. Если установлено значение Авто или Справа, платформа выводит панель сбоку.
  3. Режим отображения параметров: Если для параметра не включен режим быстрого доступа, он попадает в общую панель настроек, а не в компактную командную панель шапки.

Способ 1. Настройка положения пользовательских настроек в схеме СКД

Рассмотрим базовый способ управления отображением панели настроек непосредственно в схеме компоновки без написания программного кода.

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

Способ 2. Включение быстрого доступа для параметра периода

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

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

Способ 3. Управление размещением через собственную форму отчета

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

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

Способ 4. Программная передача периода из реквизита формы

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

Создадим на форме реквизит ПериодОтчета с типом СтандартныйПериод и выведем его в верхнюю панель формы. В модуле объекта отчета обработаем передачу значений в процедуре ПриКомпоновкеРезультата:


Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

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

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

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

← На главную