5.8 KiB
title, slug
title | slug |
---|---|
Механизм доп.отчетов и обработок | общие-подключение-объектов-к-бсп-подключение-к-подсистемам/механизм-доп-отчетов-и-обработок |
Постановка задачи
Есть подсистема МояПодсистема
, в которой необходимо реализовать размещение дополнительных отчетов и обработок
Шаг 1
Создаем общие команды:
- ДополнительныеОбработки_МояПодсистема
, размещаем в группе Панель действий.Сервис
- ДополнительныеОтчеты_МояПодсистема
, размещаем в группе Панель действий.Отчеты
В команде ДополнительныеОбработки_МояПодсистема
прописываем
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ДополнительныеОтчетыИОбработкиКлиент.ОткрытьФормуКомандДополнительныхОтчетовИОбработок(
ПараметрКоманды,
ПараметрыВыполненияКоманды,
ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка(),
"МояПодсистема");
КонецПроцедуры
#КонецОбласти
В команде ДополнительныеОтчеты_МояПодсистема
прописываем
#Область ОбработчикиСобытий
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
ДополнительныеОтчетыИОбработкиКлиент.ОткрытьФормуКомандДополнительныхОтчетовИОбработок(
ПараметрКоманды,
ПараметрыВыполненияКоманды,
ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительныйОтчет(),
"МояПодсистема");
КонецПроцедуры
#КонецОбласти
Шаг 2
Добавляем созданные команды в состав функциональной опции ИспользоватьДополнительныеОтчетыИОбработки
Шаг 3
Для роли, в которой установлены права на просмотр подистемы "МояПодсистема" устанавливаем права на просмотр созданных команде
Шаг 4
В общем модуле ДополнительныеОтчетыИОбработкиПереопределяемый
(или ДополнительныеОтчетыИОбработкиЛокализация
)
дополняем методы ОпределитьРазделыСДополнительнымиОбработками
и ОпределитьРазделыСДополнительнымиОтчетами
.
Например:
Процедура ОпределитьРазделыСДополнительнымиОбработками(Разделы) Экспорт
ДополнитьМассивРазделовСДополнительнымиОтчетамиОбработками(Разделы);
КонецПроцедуры
Процедура ОпределитьРазделыСДополнительнымиОтчетами(Разделы) Экспорт
ДополнитьМассивРазделовСДополнительнымиОтчетамиОбработками(Разделы);
КонецПроцедуры
Процедура ДополнитьМассивРазделовСДополнительнымиОтчетамиОбработками(Разделы)
ИменаДобавляемыхПодсистем = Новый Массив;
ИменаДобавляемыхПодсистем.Добавить("МояПодсистема");
Для Каждого ИмяПодсистемы Из ИменаДобавляемыхПодсистем Цикл
ПроверитьДобавитьПодсистемуПоИмениВСписокДоступныхРазделов(Разделы, ИмяПодсистемы);
КонецЦикла;
КонецПроцедуры
Процедура ПроверитьДобавитьПодсистемуПоИмениВСписокДоступныхРазделов(Разделы, ИмяПодсистемы)
Если Метаданные.Подсистемы.Найти(ИмяПодсистемы) = Неопределено Тогда
ТекстСообщения = "Не найдена подсистема по имени """ + ИмяПодсистемы + """
|<ОбщийМодуль.ДополнительныеОтчетыИОбработкиПереопределяемый.ПроверитьДобавитьПодсистемуПоИмениВСписокДоступныхРазделов>";
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения);
Возврат;
КонецЕсли;
Если Разделы.Найти(Метаданные.Подсистемы[ИмяПодсистемы]) = Неопределено Тогда
Разделы.Добавить(Метаданные.Подсистемы[ИмяПодсистемы]);
КонецЕсли;
КонецПроцедуры