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