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