При разработке отчетов на базе Системы компоновки данных (СКД) в новых конфигурациях программисты часто сталкиваются с ситуацией: отчет работает, данные выводятся, но интерфейс выглядит «бедным». Отсутствуют привычные кнопки «Настройки», «Варианты отчета», «Свернуть/развернуть группировки», а панель быстрых настроек пуста. В то же время в типовых конфигурациях (например, УТ 11 или ERP) тот же самый отчет выглядит полноценно.
В этой статье мы разберем, почему так происходит, проанализируем механизмы работы платформы 1С:Предприятие 8.3 и выясним, как вернуть стандартные команды управления отчетом без глубокого погружения в Библиотеку стандартных подсистем (БСП).
Когда мы создаем отчет в «чистой» конфигурации и не создаем для него форму вручную, платформа 1С генерирует её автоматически в режиме реального времени. Однако важно понимать: автоматическая форма обладает минимальным функционалом.
Рассмотрим подробнее: платформа не может предугадать, какие именно команды командной панели вам нужны. Она выводит только самое необходимое — кнопку «Сформировать» и те параметры/отборы, которые вы явно пометили как «включаемые в пользовательские настройки». Если командная панель в режиме 1С:Предприятие пуста, значит, свойствам формы не задано правило Автозаполнение или в самой схеме СКД не определен состав элементов для вывода.
В типовых конфигурациях за внешний вид отчетов отвечает мощная подсистема «Варианты отчетов» из состава БСП. Она подменяет стандартную форму платформы своей собственной, перехватывает управление командной панелью и программно добавляет туда кнопки для управления настройками, печати, отправки по почте и сохранения вариантов. Если вы разрабатываете конфигурацию «с нуля», этих механизмов у вас просто нет, и их нужно либо реализовывать самостоятельно, либо использовать стандартные средства платформы. Для самостоятельной реализации логики и интерфейса отчетов можно использовать примеры программной работы с СКД и управляемыми формами.
Прежде чем создавать формы, выясним причину отсутствия кнопок настроек. В СКД кнопки управления (например, «Настройки») могут не отображаться, если платформа считает, что пользователю нечего настраивать. Проанализируем ситуацию и выполним следующие шаги:
Если хотя бы один элемент помечен для расширенных настроек, платформа автоматически добавит кнопку «Настройки» на форму. При необходимости расширить возможности работы с настройками на стороне клиента можно использовать внешний инструмент для построения СКД-отчетов.
Если автоматическая форма нас не устраивает, создадим её вручную. Это позволит нам явно управлять командной панелью. Разберем по шагам:
Отчет перейдем на закладку «Формы» и нажмем «Добавить».ФормаКоманднаяПанель.ФормаКоманднаяПанель в дереве элементов и в свойствах установим галочку «Автозаполнение».После этого платформа добавит стандартный набор команд (Сформировать, Выбрать вариант, Сохранить вариант, Настройки), которые привязаны к основному реквизиту формы с типом ОтчетОбъект.
Часто пользователи жалуются на отсутствие кнопок «Свернуть все» или «Развернуть до определенного уровня». Эти команды относятся не к самому отчету, а к элементу формы, который отображает результат — Полю табличного документа. Посмотрим на ситуацию:
Чтобы кнопки управления группировками появились, в свойствах элемента формы, который связан с результатом (обычно это реквизит Результат с типом ТабличныйДокумент), необходимо установить флаг «Отображать иерархию». Если же вы хотите добавить эти кнопки в общую командную панель формы, вам придется добавить их вручную, выбрав соответствующие стандартные команды из источника Элементы.Результат.
Если у вас много отчетов и вы не хотите в каждом создавать форму, можно пойти путем оптимизации. Создадим одну общую форму, которая будет подходить для всех отчетов:
Отчет (тип ОтчетОбъект) и реквизит Результат (тип ТабличныйДокумент).Автозаполнением.Для корректной работы такой формы потребуется небольшой код в модуле формы для инициализации схемы компоновки. Пример инициализации параметров:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Укажем, что отчет должен использовать схему компоновки по умолчанию
Отчет.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет.Метаданные().ОсновнаяСхемаКомпоновкиДанных));
КонецПроцедуры
Если даже после создания формы кнопки не появились, проверим технические настройки конфигурации:
Отчет в дереве метаданных стоит галочка Использовать стандартные команды. Без неё отчет может игнорироваться глобальными механизмами интерфейса.Просмотр и Интерактивное открытие для данного отчета.Таким образом, отсутствие настроек — это не ошибка, а «пустота» новой конфигурации, которую разработчик должен заполнить либо через пользовательские настройки СКД, либо через создание собственных форм с включенным автозаполнением.