Как настроить оформление и расположение параметров в отчете СКД

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

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

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

Метод 1. Упорядочивание через закладку «Параметры» в СКД

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

Разберем по шагам, как это исправить:

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

Этот способ упорядочит их в списке, но все еще оставит их в рамках стандартной двухколоночной сетки.

Метод 2. Использование групп в пользовательских настройках

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

Выясним, как это реализовать:

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

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

Метод 3. Программное управление количеством колонок

Рассмотрим ситуацию, когда стандартная форма отчета нас устраивает, но мы хотим изменить плотность размещения элементов. В управляемых формах 1С существует специальный метод СоздатьЭлементыФормыПользовательскихНастроек, который позволяет управлять генерацией полей.

Проанализируем пример кода, который можно разместить в модуле формы отчета в процедуре ПриСозданииНаСервере:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Указываем количество колонок для размещения настроек
    КоличествоКолонок = 4;
    
    // Программная генерация элементов формы на основании настроек СКД
    СоздатьЭлементыФормыПользовательскихНастроек(КоличествоКолонок);
    
КонецПроцедуры

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

Метод 4. Создание собственной формы отчета

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

Посмотрим, как это сделать правильно:

  1. В окне редактирования отчета нажмем на лупу у свойства Форма отчета и создадим новую форму.
  2. На форме мы увидим стандартную группу ГруппаПользовательскихНастроек. Если мы хотим полного контроля, мы можем отказаться от автоматического вывода и разместить поля ввода вручную.
  3. Путь к данным для таких полей должен указывать на конкретные элементы компоновщика настроек. Например: Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы[Индекс].Значение

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


&НаСервере
Процедура НастроитьПоляНаФорме()
    Для Каждого Элемент Из Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы Цикл
        // Здесь можно программно связать элемент настройки с элементом формы, 
        // используя ИдентификаторПользовательскойНастройки
    КонецЦикла;
КонецПроцедуры

Метод 5. Интерактивная настройка пользователем

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

Рассмотрим, как это работает в режиме 1С:Предприятие:

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

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

Подведение итогов

Мы выяснили, что для решения задачи по оформлению отчета существует иерархия методов. Если нужно просто поменять порядок — используем стрелки на закладке Параметры. Если нужно объединить поля в строки — используем группы в Настройках СКД. Для более тонкого управления используем программный вызов СоздатьЭлементыФормыПользовательскихНастроек или проектируем уникальную форму отчета. Выбор метода зависит от сложности задачи и требований к интерфейсу.

← На главную