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