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

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

При разработке отчетов на базе Системы компоновки данных (СКД) в новых конфигурациях программисты часто сталкиваются с ситуацией: отчет работает, данные выводятся, но интерфейс выглядит «бедным». Отсутствуют привычные кнопки «Настройки», «Варианты отчета», «Свернуть/развернуть группировки», а панель быстрых настроек пуста. В то же время в типовых конфигурациях (например, УТ 11 или ERP) тот же самый отчет выглядит полноценно.

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

Причина 1: Особенности автогенерируемых форм платформы

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

Рассмотрим подробнее: платформа не может предугадать, какие именно команды командной панели вам нужны. Она выводит только самое необходимое — кнопку «Сформировать» и те параметры/отборы, которые вы явно пометили как «включаемые в пользовательские настройки». Если командная панель в режиме 1С:Предприятие пуста, значит, свойствам формы не задано правило Автозаполнение или в самой схеме СКД не определен состав элементов для вывода.

Причина 2: Отсутствие Библиотеки стандартных подсистем (БСП)

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

Решение 1: Настройка пользовательских элементов в СКД

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

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

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

Решение 2: Создание управляемой формы с автозаполнением

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

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

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

Решение 3: Кнопки свертки группировок (Иерархия)

Часто пользователи жалуются на отсутствие кнопок «Свернуть все» или «Развернуть до определенного уровня». Эти команды относятся не к самому отчету, а к элементу формы, который отображает результат — Полю табличного документа. Посмотрим на ситуацию:

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

Решение 4: Создание «Легкой» общей формы (Альтернатива БСП)

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

  1. Создадим объект «Общая форма» в ветке «Общие».
  2. Добавим на неё реквизит Отчет (тип ОтчетОбъект) и реквизит Результат (тип ТабличныйДокумент).
  3. Настроим командную панель с Автозаполнением.
  4. В каждом отчете в поле «Основная форма отчета» выберем эту общую форму.

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


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // Укажем, что отчет должен использовать схему компоновки по умолчанию
    Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет.Метаданные().ОсновнаяСхемаКомпоновкиДанных));
КонецПроцедуры

Проверка прав доступа и режима совместимости

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

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

← На главную