Как сделать удобную универсальную форму отчета на СКД в обычном приложении?

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

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

Вариант 1. Использование подсистемы «Типовые отчеты» из конфигураций на обычных формах

Проанализируем классический подход, реализованный в типовых конфигурациях предыдущих поколений (таких как Управление торговлей 10.3, Управление производственным предприятием 1.3 или Комплексная автоматизация 1.1). В них присутствует готовый и полностью отлаженный механизм для работы с СКД в режиме обычного приложения.

Данный механизм базируется на общей форме отчета и общем модуле ТиповыеОтчеты. Реализация предоставляет пользователю:

  1. Вкладки для редактирования структуры отчета, полей, группировок, сортировок и условного оформления.
  2. Панель быстрых отборов в командной панели или шапке отчета.
  3. Готовый механизм сохранения вариантов настроек отчета в справочник сохраненных настроек пользователя.

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

Вариант 2. Разработка собственной универсальной формы на базе компоновщика настроек

Если требуется создать автономное решение без привязки к громоздким типовым подсистемам, рассмотрим разработку собственной формы отчета. Основная идея заключается в прямой привязке элементов управления формы к объекту КомпоновщикНастроек схемы компоновки данных.

Разберем по шагам, как связать элементы формы и настройки СКД:

  1. Разместим на обычной форме элемент управления ТабличноеПоле для вывода отборов и укажем в его свойстве Данные путь: КомпоновщикНастроек.Настройки.Отбор.
  2. Для управления параметрами данных добавим второе ТабличноеПоле с путем к данным: КомпоновщикНастроек.Настройки.ПараметрыДанных.
  3. Для управления группировками свяжем ТабличноеПоле со свойством: КомпоновщикНастроек.Настройки.Структура.
  4. Для отображения только тех параметров, которые разработчик вынес в быстрый доступ, используем привязку к коллекции КомпоновщикНастроек.ПользовательскиеНастройки.

Посмотрим на пример процедуры формирования табличного документа по схеме компоновки данных при нажатии кнопки «Сформировать» на форме:


Процедура ДействияФормыСформировать(Кнопка)
	
	ТабличныйДокумент = ЭлементыФормы.ПолеТабличногоДокумента;
	ТабличныйДокумент.Очистить();
	
	СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
КонецПроцедуры

Для создания динамической панели быстрых отборов в шапке отчета программно обходят коллекцию КомпоновщикНастроек.Настройки.Отбор.Элементы и с помощью метода ЭлементыФормы.Добавить() динамически создают надписи и поля ввода, привязанные к значению соответствующего отбора.

Вариант 3. Использование управляемой формы отчета в обычном приложении

Рассмотрим еще один альтернативный путь. Платформа 1С:Предприятие 8.3 позволяет открывать управляемые формы внутри обычного приложения.

Разберем необходимые условия для работы данного механизма:

  1. В корне свойств конфигурации параметр Режим использования управляемых форм в обычном приложении должен быть установлен в значение Использовать или Разрешить.
  2. У отчета создается или выбирается управляемая форма (например, типовая форма отчета из БСП).

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

← На главную