Добавить произвольные команды на общую форму отчета
Установить настройки вариантов отчетов
Настройки вариантов отчетов задаются в процедуре НастроитьВариантыОтчетов
общего модуля ВариантыОтчетовПереопределяемый
Процедура НастроитьВариантыОтчетов(Настройки) Экспорт
ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИмяОтчета);
КонецПроцедуры
Далее. для указанных в этой процедуре отчетов в модуле менеджера вставить процедуру по шаблону
// Параметры:// Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки.// НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета.//Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт НастройкиОтчета.ОпределитьНастройкиФормы = Истина;КонецПроцедуры
В модуле объекта отчета
// Параметры:// Форма - ФормаКлиентскогоПриложения, Неопределено// КлючВарианта - Строка, Неопределено// Настройки - см. ОтчетыКлиентСервер.НастройкиОтчетаПоУмолчанию//Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт Настройки.События.ПриСозданииНаСервере = Истина;КонецПроцедуры
// См. ОтчетыПереопределяемый.ПриСозданииНаСервере.Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
Команда = Форма.Команды.Добавить("<ИмяКоманды>"); Команда.Действие = "Подключаемый_Команда"; Команда.Заголовок = НСтр("ru = '<Представление команды...>'"); ОтчетыСервер.ВывестиКоманду(Форма, Команда, "<ВидГруппы>");
КонецПроцедуры
Обработчик команды устанавливается в процедуре ОтчетыКлиентПереопределяемый.ОбработчикКоманды
// Обработчик команд, добавленных динамически и подключенных к обработчику "Подключаемый_Команда".// Пример добавления команды см. ОтчетыПереопределяемый.ПриСозданииНаСервере().//// Параметры:// ФормаОтчета - ФормаКлиентскогоПриложения// - РасширениеУправляемойФормыДляОтчета - форма отчета:// * Отчет - ОтчетОбъект - структура данных формы аналогичная объекту отчета.//// Команда - КомандаФормы - команда, которая была вызвана.// Результат - Булево - Истина, если вызов команды обработан.//Процедура ОбработчикКоманды(ФормаОтчета, Команда, Результат) Экспорт
// _Демо начало примера ПолноеИмяОтчета = ФормаОтчета.НастройкиОтчета.ПолноеИмя;
Если ПолноеИмяОтчета = "Отчет._ДемоФайлы" И Команда.Имя = "_ДемоКоманда" Тогда
// Обработчик команды, определенной в модуле отчета Отчет._ДемоФайлы в процедуре ПриСозданииНаСервере. _ДемоСтандартныеПодсистемыКлиент.НачатьРедактированиеОтчета(ФормаОтчета);
ИначеЕсли СтрНайти(ПолноеИмяОтчета, "_Демо") > 0 И СтрНачинаетсяС(Команда.Имя, "_ДемоОформить") Тогда
// Обработчик команды, определенной в ОтчетыПереопределяемый.ПриСозданииНаСервере. _ДемоСтандартныеПодсистемыКлиент.ОформитьВыделенныеОбластиОтчета(ФормаОтчета, Команда.Имя);
КонецЕсли; // _Демо конец примера
КонецПроцедур
...
// примеры// См. ОтчетыКлиентПереопределяемый.ОбработчикКоманды.Процедура НачатьРедактированиеОтчета(ФормаОтчета) Экспорт
ПараметрыФормы = СтандартныеПодсистемыКлиент.ПараметрыРедактораТабличногоДокумента(); ПараметрыФормы.ИмяДокумента = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Редактирование таблицы сформированного отчета ""%1""'"), ФормаОтчета.Заголовок); ПараметрыФормы.Редактирование = Истина; СтандартныеПодсистемыКлиент.ПоказатьРедакторТабличногоДокумента(ФормаОтчета.ОтчетТабличныйДокумент, ПараметрыФормы);
КонецПроцедуры
// См. ОтчетыКлиентПереопределяемый.ОбработчикКоманды.Процедура ОформитьВыделенныеОбластиОтчета(ФормаОтчета, КатегорияДанных) Экспорт
Если СтрЗаканчиваетсяНа(КатегорияДанных, "ОшибочныеДанные") Тогда ЦветОформления = WebЦвета.СветлоРозовый; ИначеЕсли СтрЗаканчиваетсяНа(КатегорияДанных, "КорректныеДанные") Тогда ЦветОформления = WebЦвета.СветлоЗеленый; ИначеЕсли СтрЗаканчиваетсяНа(КатегорияДанных, "СомнительныеДанные") Тогда ЦветОформления = WebЦвета.СветлоЖелтый; Иначе Возврат; КонецЕсли;
ТабличныйДокумент = ФормаОтчета.ОтчетТабличныйДокумент; Для Каждого Область Из ТабличныйДокумент.ВыделенныеОбласти Цикл Для НомерСтроки = Область.Верх По Область.Низ Цикл Для НомерКолонки = Область.Лево По Область.Право Цикл Ячейка = ТабличныйДокумент.Область(НомерСтроки, НомерКолонки); // ОбластьЯчеекТабличногоДокумента Ячейка.ЦветФона = ЦветОформления; КонецЦикла; КонецЦикла; КонецЦикла;
КонецПроцедуры