Подключение к подсистеме Варианты отчетов
О подсистеме
Подсистема Варианты отчетов отображает все отчеты раздела на панели отчетов, предоставляет совместный доступ к пользовательским вариантам отчетов, а также универсальные формы для формирования и настройки произвольных отчетов конфигурации.
Варианты отчетов, созданные разработчиком, называются предопределенными, а сохраненные пользователем в режиме 1С:Предприятие – пользовательскими. Предопределенные варианты отчетов могут быть контекстными или неконтекстными:
- контекстные варианты отчетов могут использоваться только в контексте работы с каким-либо объектом приложения (например, отчет по сотруднику, подразделению и т. п.). Как правило, такие варианты отчетов открываются из формы объекта и списков;
- обычные варианты отчетов могут одинаково открываться из любого места приложения (например, из панели отчетов), не требуя передачи контекста. Как правило, такие варианты отчетов открываются из командного интерфейса.
Настройка объектов конфигурации
Настройка подсистемы состоит из следующих этапов:
- Подключить хранилище вариантов отчетов.
- Подключить форму отчета.
- Подключить подсистему к разделам командного интерфейса.
- Установить настройки вариантов отчетов.
- Подключить контекстные отчеты.
- Установить настройки формы отчета.
- Обновить данные справочника ВариантыОтчетов.
Подключение хранилища вариантов
Подключение форм отчетов
Необходимо указать в свойствах конфигурации общие формы:
- основная форма отчета –
ФормаОтчета
; - основная форма настроек отчета –
ФормаНастроекОтчета
; - основная форма варианта отчета –
ФормаВариантаОтчета
.
Подключить подсистему к разделам командного интерфейса
Необходимо определить разделы командного интерфейса, в которых должны быть размещены панели отчетов
Для каждого раздела необходимо создать отдельную общую команду для открытия панели отчетов.
Имя команды рекомендуется задавать по шаблону ПанельОтчетов<ИмяРаздела>
, например ПанельОтчетовПродажи
.
Синоним команды рекомендуется определять по шаблону Отчеты по <ПредставлениеРаздела>
, например Отчеты по продажам
.
В обработчике команды необходимо вставить вызов по шаблону:
&НаКлиентеПроцедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполнения) ВариантыОтчетовКлиент.ПоказатьПанельОтчетов("<ИмяРаздела>", ПараметрыВыполнения);КонецПроцедуры
Панель отчетов в разделе "Главное"
Для того чтобы в первом параметре <ИмяРаздела> указать начальную страницу, следует использовать функцию ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы
:
ВариантыОтчетовКлиент.ПоказатьПанельОтчетов( ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы(), ПараметрыВыполнения);
Выбранные разделы необходимо перечислить в процедуре ОпределитьРазделыСВариантамиОтчетов
общего модуля ВариантыОтчетовПереопределяемый
. В представлениях разделов (используются в качестве заголовков панелей отчетов) рекомендуется указывать синонимы команд, созданных на предыдущем шаге.
Процедура ОпределитьРазделыСВариантамиОтчетов(Разделы) Экспорт
Разделы.Добавить(Метаданные.Подсистемы.Анкетирование, НСтр("ru = 'Отчеты по анкетированию'")); Разделы.Добавить(ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы(), НСтр("ru = 'Основные отчеты'"));
КонецПроцедуры
Все отчеты выбранных разделов рекомендуется скрыть из панели действий командного интерфейса этих разделов.
Установить настройки вариантов отчетов
Настройки вариантов отчетов задаются в процедуре НастроитьВариантыОтчетов
общего модуля ВариантыОтчетовПереопределяемый
Процедура НастроитьВариантыОтчетов(Настройки) Экспорт
ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИмяОтчета);
КонецПроцедуры
Далее. для указанных в этой процедуре отчетов в модуле менеджера вставить процедуру по шаблону
// Параметры:// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки.// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета.//Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов"); МодульВариантыОтчетов.УстановитьРежимВыводаВПанеляхОтчетов(Настройки, НастройкиОтчета, Ложь);
НастройкиОтчета.ОпределитьНастройкиФормы = Истина;
НастройкиВарианта_Горизонталь = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "Основной"); НастройкиВарианта_Горизонталь.Описание = НСтр("ru = 'Горизонтальное размещение колонок с измерениями, ресурсами и реквизитами регистров.'"); НастройкиВарианта_Горизонталь.НастройкиДляПоиска.КлючевыеСлова = НСтр("ru = 'Движения документа'"); НастройкиВарианта_Горизонталь.Включен = Ложь; НастройкиВарианта_Горизонталь.ПоказыватьВПодменюВариантов = Истина;
НастройкиВарианта_Вертикаль = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "Дополнительный"); НастройкиВарианта_Вертикаль.Описание = НСтр("ru = 'Вертикальное размещение колонок с измерениями, ресурсами и реквизитами позволяет расположить данные более компактно, для просмотра регистров с большим количеством колонок.'"); НастройкиВарианта_Вертикаль.НастройкиДляПоиска.КлючевыеСлова = НСтр("ru = 'Движения документа'"); НастройкиВарианта_Вертикаль.Включен = Ложь; НастройкиВарианта_Вертикаль.ПоказыватьВПодменюВариантов = Истина;
КонецПроцедуры
Подробное описание аргументов "Настройки" и "НастройкиОтчета"
-
Включен
– если установить вЛожь
, то вариант отчета не регистрируется в справочнике и, как следствие, не выводится в панелях отчетов и других формах подсистемы (всегда скрыт от пользователей). При этом вариант отчета остается в конфигурации, и его по-прежнему можно открывать при программном открытии формы отчета. Например, может потребоваться отключение контекстных вариантов отчетов. -
ВидимостьПоУмолчанию
– если установить вЛожь
, то вариант отчета по умолчанию будет скрыт на панелях отчетов. Скрытый вариант отчета можно вывести на панель отчетов администратору – сразу для всех пользователей (через форму элемента), пользователю – на свою панель отчетов (через режим настройки). Например, может потребоваться скрывать менее частотные варианты отчетов. -
Описание
– служит подсказкой на панели отчетов и содержит более подробное описание варианта отчета. Свойство рекомендуется заполнять, поскольку участвует в поиске отчета. -
Размещение
– служит для привязки вариантов отчетов к подсистемам конфигурации. Подсистемы первого уровня считаются разделами, второго и выше – группами. Если вариант включен в раздел, то на панели отчетов он будет выведен без группы. При необходимости для каждой подсистемы можно указатьВажность
:Важный
– вариант отчета будет выделен жирным шрифтом и размещен в начале группы.СмТакже
– вариант отчета будет выведен внизу панели отчетов, в группе См. также.
-
ФункциональныеОпции
– служит для скрытия вариантов отчетов по функциональным опциям. Содержит массив строк из имен функциональных опций конфигурации. Вариант отчета считается включенным в том случае, если включена одна из функциональных опций отчета (если они указаны) и одна из функциональных опций варианта отчета (если они указаны). -
НастройкиДляПоиска
– дополнительные сведения для поиска этого варианта отчета. Является структурой со следующими свойствами:НаименованияПолей
– представления полей варианта отчета;НаименованияПараметровИОтборов
– представления настроек варианта отчета;КлючевыеСлова
– дополнительная терминология (в т. ч. специализированная или устаревшая).
Подключить контекстные отчеты
Контекстный отчёт — это отчёт, доступ к которому осуществляется из формы конкретного объекта конфигурации (справочника, документа, регистра и т.д.) и который автоматически строится с учётом выбранного в данный момент элемента или данных.
Иными словами, контекстный отчёт показывает информацию в контексте текущего объекта — например:
- для документа — отчёт о его движениях по регистрам;
- для элемента справочника — отчёт об использовании этого элемента;
- для регистра — отчёт по связанным данным.
Главная особенность — автоматическая передача параметров из текущего объекта в отчёт, что упрощает работу пользователя.
Для подключения контекстных отчетов к объектам конфигурации следует:
- Объекты метаданных, для которых требуется выводить команды отчетов, перечислить в процедуре
ОпределитьОбъектыСКомандамиОтчетов
модуляВариантыОтчетовПереопределяемый
. - В модуле менеджера каждого из этих объектов в области
ПрограммныйИнтерфейс
определить пустую процедуру ДобавитьКомандыОтчетов по шаблону:
// Параметры:// КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов// Параметры - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры//Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
// например Если ПравоДоступа("Просмотр", Метаданные.Отчеты.КонтрольРассылкиОтчетов) Тогда Команда = КомандыОтчетов.Добавить(); Команда.Представление = НСтр("ru = 'Контроль рассылки отчетов'"); Команда.КлючВарианта = "КонтрольРассылкиОтчетов"; Команда.Картинка = БиблиотекаКартинок.Отчет; Команда.МножественныйВыбор = Ложь; Команда.Менеджер = "Отчет.КонтрольРассылкиОтчетов"; Команда.ТипПараметра = Новый ОписаниеТипов("СправочникСсылка.РассылкиОтчетов"); КонецЕсли;
// Или для конкретной формы Если Не ПравоДоступа("Просмотр", Метаданные.Отчеты.СертификатыЭлектроннойПодписи) Тогда Возврат; КонецЕсли;
Если Параметры.ИмяФормы = "ОбщаяФорма.НастройкиЭлектроннойПодписиИШифрования" Тогда Команда = КомандыОтчетов.Добавить(); Команда.КлючВарианта = "СертификатыЭлектроннойПодписи"; Команда.Представление = НСтр("ru = 'Сертификаты электронной подписи'"); Команда.Идентификатор = "СертификатыЭлектроннойПодписи"; Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи"; Команда.Неконтекстный = Истина;
Команда = КомандыОтчетов.Добавить(); Команда.КлючВарианта = "ЗаканчиваетсяСрокДействия"; Команда.Представление = НСтр("ru = 'Сертификаты, у которых заканчивается срок действия'"); Команда.Идентификатор = "ЗаканчиваетсяСрокДействия"; Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи"; Команда.Неконтекстный = Истина;
Команда = КомандыОтчетов.Добавить(); Команда.КлючВарианта = "ТребуетсяМЧД"; Команда.Представление = НСтр("ru = 'Сертификаты, для которых требуется МЧД'"); Команда.Идентификатор = "ТребуетсяМЧД"; Команда.Менеджер = "Отчет.СертификатыЭлектроннойПодписи"; Команда.Неконтекстный = Истина; КонецЕсли;
КонецПроцедуры
- Встроить в формы объектов метаданных подсистему ПодключаемыеКоманды
В
командную панель
, для целей оптимизации производительности, рекомендуется добавить подменю для вывода команд отчетов: Имя:ПодменюОтчеты
, Заголовок:Отчеты
, Вид:Подменю
, Отображение:Картинка
. Картинка:Отчет
(стандартная картинка).
Для вывода в подменю Отчеты
большого количества команд (более 10) рекомендуется добавить вложенные группы кнопок с суффиксами Важное
, Обычное
и СмТакже
. Например: ПодменюОтчетыВажное
, ПодменюОтчетыОбычное
и ПодменюОтчетыСмТакже
. Тогда разработчики команд контекстных отчетов смогут указывать суффиксы этих групп в свойстве Важность своих команд.
Установить настройки формы очтета
Если в процедуре НастроитьВариантыОтчета
установить свойство структуры НастройкиОтчета.ОпределитьНастройкиФормы
в значение Истина
, то в модуле объекта отчета следует определить процедуру ОпределитьНастройкиФормы
по шаблону:
// Параметры:// Форма - ФормаКлиентскогоПриложения, Неопределено// КлючВарианта - Строка, Неопределено// Настройки - см. ОтчетыКлиентСервер.НастройкиОтчетаПоУмолчанию//Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
КонецПроцедуры
Настройки
формы отчета задаются в процедуре ОпределитьНастройкиФормы
модуля объекта отчета, в которой можно задать значения следующим параметрам:
ФормироватьСразу
– если установить в значениеИстина
, то отчет будет формироваться после открытия, после выбора пользовательских настроек и после выбора другого варианта отчета. По умолчанию –Ложь
.ВыводитьСуммуВыделенныхЯчеек
– если установить в значениеЛожь
, то в отчете не будет выводиться поле с автоматически рассчитываемой суммой выделенных ячеек. По умолчанию –Истина
.РазрешеноИзменятьСтруктуру
– если установить в значениеЛожь
, то в настройках отчета будет скрыта вкладкаСтруктура
. По умолчанию –Истина
. По умолчанию вкладкаСтруктура
показывается для отчетов на СКД – в расширенном режиме, а также в простом режиме, если в пользовательские настройки выведены флажки использования группировок.РазрешеноИзменятьВарианты
– если установить в значениеЛожь
, то в форме отчета и настроек скрываются кнопки изменения вариантов этого отчета. Если у текущего пользователя нет правСохранениеДанныхПользователя
иДобавление
справочникаВариантыОтчетов
, то принудительно устанавливается вЛожь
. По умолчанию –Истина
.Печать
–Структура
– параметры печати табличного документа (могут переопределяться пользователем):ПолеСверху
–Число
– отступ сверху при печати (в миллиметрах);ПолеСлева
–Число
– отступ слева при печати (в миллиметрах);ПолеСнизу
–Число
– отступ снизу при печати (в миллиметрах);ПолеСправа
–Число
– отступ справа при печати (в миллиметрах);ОриентацияСтраницы
–ОриентацияСтраницы
– Портрет или Ландшафт;АвтоМасштаб
–Булево
– автоматически подгонять масштаб под размер страницы;МасштабПечати
–Число
– масштаб изображения (в процентах).
События
–Структура
– события, для которых определены обработчики в модуле объекта отчета (обработчики событий рекомендуется определять в области ПрограммныйИнтерфейс, после процедурыОпределитьНастройкиФормы
):
Подробнее про события
ПриСозданииНаСервере
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПриСозданииНаСервере
по шаблону:
// См. ОтчетыПереопределяемый.ПриСозданииНаСервере.Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
КонецПроцедуры
ПередЗагрузкойНастроекВКомпоновщик
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПередЗагрузкойНастроекВКомпоновщик
по шаблону
// Параметры:// Контекст - Произвольный// КлючСхемы - Строка// КлючВарианта - Строка, Неопределено// НовыеНастройкиКД - НастройкиКомпоновкиДанных, Неопределено// НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных, Неопределено//Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
КонецПроцедуры
Вызывается перед загрузкой новых настроек, используется для изменения СКД.
Примеры
Пример № 1. Компоновщик отчета инициализируется на основании схемы из общих макетов:
Если КлючСхемы <> "1" Тогда КлючСхемы = "1"; СхемаКД = ПолучитьОбщийМакет("МояОбщаяСхемаКомпоновки"); ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКД, КлючСхемы);КонецЕсли;
Пример № 2. Схема зависит от значения параметра, выведенного в пользовательские настройки отчета:
Если ТипЗнч(НовыеПользовательскиеНастройкиКД) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда ПолноеИмяОбъектаМетаданных = ""; Для Каждого ЭлементКД Из НовыеПользовательскиеНастройкиКД.Элементы Цикл Если ТипЗнч(ЭлементКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда ИмяПараметра = Строка(ЭлементКД.Параметр); Если ИмяПараметра = "ОбъектМетаданных" Тогда ПолноеИмяОбъектаМетаданных = ЭлементКД.Значение; КонецЕсли; КонецЕсли; КонецЦикла; Если КлючСхемы <> ПолноеИмяОбъектаМетаданных Тогда КлючСхемы = ПолноеИмяОбъектаМетаданных; СхемаКД = Новый СхемаКомпоновкиДанных; // Наполнение схемы... ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКД, КлючСхемы); КонецЕсли;КонецЕсли;
ПослеЗагрузкиНастроекВКомпоновщик
еслиИстина
, то в модуле объекта отчета следует определить процедуруПослеЗагрузкиНастроекВКомпоновщик
по шаблону:
// Параметры:// ДополнительныеПараметры - Структура//Процедура ПослеЗагрузкиНастроекВКомпоновщик(ДополнительныеПараметры) Экспорт
КонецПроцедуры
Вызывается после загрузки всех настроек в компоновщик. Используется для уточнения, например, параметров выбора, зависимых от значений загруженных фиксированных отборов.
ПередЗагрузкойВариантаНаСервере
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПередЗагрузкойВариантаНаСервере
по шаблону:
// См. ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере.Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
КонецПроцедуры
Вызывается в обработчике одноименного события формы отчета и формы настройки отчета. Подробнее см. “Расширение управляемой формы для отчета.ПередЗагрузкойВариантаНаСервере” в синтакс-помощнике.
ПриЗагрузкеВариантаНаСервере
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПриЗагрузкеВариантаНаСервере
по шаблону:
// Параметры:// Форма - ФормаКлиентскогоПриложения// - РасширениеУправляемойФормыДляОтчета:// * Отчет - ДанныеФормыСтруктура// - ОтчетОбъект// НовыеНастройкиКД - НастройкиКомпоновкиДанных//Процедура ПриЗагрузкеВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
КонецПроцедуры
Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. Подробнее см. “Расширение управляемой формы для отчета.ПриЗагрузкеВариантаНаСервере” в синтакс-помощнике.
ПриЗагрузкеПользовательскихНастроекНаСервере
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПриЗагрузкеПользовательскихНастроекНаСервере
по шаблону:
// Параметры:// Форма - ФормаКлиентскогоПриложения// НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных//Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Форма, НовыеПользовательскиеНастройкиКД) Экспорт
КонецПроцедуры
Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. Подробнее см. “Расширение управляемой формы для отчета.ПриЗагрузкеПользовательскихНастроекНаСервере” в синтакс-помощнике.
ПередЗаполнениемПанелиБыстрыхНастроек
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПередЗаполнениемПанелиБыстрыхНастроек
по шаблону:
// Параметры:// Форма - ФормаКлиентскогоПриложения// ПараметрыЗаполнения - Структура//Процедура ПередЗаполнениемПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
КонецПроцедуры
Вызывается до перезаполнения панели настроек формы отчета.
ПослеЗаполненияПанелиБыстрыхНастроек
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПослеЗаполненияПанелиБыстрыхНастроек
по шаблону:
// Параметры:// Форма - ФормаКлиентскогоПриложения// ПараметрыЗаполнения - Структура//Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
КонецПроцедуры
Вызывается после перезаполнения панели настроек формы отчета.
ПриОпределенииОсновныхПолей
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПриОпределенииОсновныхПолей
по шаблону:
// См. ОтчетыПереопределяемый.ПриОпределенииОсновныхПолей.Процедура ПриОпределенииОсновныхПолей(Форма, ОсновныеПоля) Экспорт
КонецПроцедуры
Позволяет задать список часто используемых полей, которые будут выводиться в подменю для команд контекстного меню “Вставить поле слева”, “Вставить группировку ниже” и т.п.
ПередФормированиемОтчета
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПередФормированиемОтчета
по шаблону:
// Параметры:// ФормаОтчета - ФормаКлиентскогоПриложения// ДополнительныеПараметры - Структура:// * ТекстПредупреждения - Строка// * ИмяПараметраХраненияОтказаОтПредупреждения - Строка//Процедура ПередФормированиемОтчета(Форма, ДополнительныеПараметры) Экспорт
КонецПроцедуры
Позволяет перед формированием отчета показать вопрос с текстом ТекстПредупреждения
и кнопками Продолжить
и Отмена
. Например, предупредить о том, что отчет будет очень долго формироваться и потребует много памяти и порекомендовать более узкую настройку отборов. Если также задать свойство ИмяПараметраХраненияОтказаОтПредупреждения
, то в окне вопроса появится опция больше его не показывать
ПриОпределенииПараметровВыбора
– если установить в значениеИстина
, то в модуле объекта отчета следует определить процедуруПриОпределенииПараметровВыбора
по шаблону:
// См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора.Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
КонецПроцедуры
Вызывается в форме отчета и в форме настройки отчета перед выводом настройки для указания дополнительных параметров выбора. Это устаревшее событие, вместо него рекомендуется применять событие ПослеЗагрузкиНастроекВКомпоновщик
.
Обновить данные справочника ВариантыОтчетов
- Для перезаполнения этих данных (рекомендуется при разработке) предназначена внешняя обработка ОбновлениеВспомогательныхДанных.epf, которая входит в состав дистрибутива библиотеки.
- Для стандартного обновления (только в части изменений конфигурации) можно указать параметр запуска
ЗапуститьОбновлениеИнформационнойБазы
в конфигураторе или через параметр командной строки /С. - При закладке изменений в хранилище, которые могут привести к необходимости обновления вспомогательных данных, можно увеличивать номер версии конфигурации, тогда у других участников коллективной разработки автоматически запустятся обязательные обработчики обновления.