БСП 2.4.4. Общая форма отчета. Добавить свои команды на панель формы отчета
БСП 2.4.4. Подсистема ВариантыОтчетов
По возможности стараемся использовать общую форму ФормаОтчета для отчетов.
Ситуация: надо на форму отчета добавить свою команду, ну и обработчик для нее само собой.
События штатный механизм позволяет доопределять, а как добавить в общую форму свою команду и обработчик?
Или нет такой возможности?
По возможности стараемся использовать общую форму ФормаОтчета для отчетов.
Ситуация: надо на форму отчета добавить свою команду, ну и обработчик для нее само собой.
События штатный механизм позволяет доопределять, а как добавить в общую форму свою команду и обработчик?
Или нет такой возможности?
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
по-моему взлетит только через расширение.
в подобных случаях(кроме расширения) мне приходилось писать свою форму отчета с фоновым исполнением и "запиливать" открытие типовой формы(не заглушки в общих формах, а именно полноценной формы настроек в общих формах) настроек в которой любимые пользователями отборы из буфера и т.п..
Работенки первый раз было много - потом уже тираж: свои формы отчета с блек-джеком и женщинами низкой соцответственности + фоновое исполнение(бсп) + типовая форма настроек из общих форм(бсп).
в подобных случаях(кроме расширения) мне приходилось писать свою форму отчета с фоновым исполнением и "запиливать" открытие типовой формы(не заглушки в общих формах, а именно полноценной формы настроек в общих формах) настроек в которой любимые пользователями отборы из буфера и т.п..
Работенки первый раз было много - потом уже тираж: свои формы отчета с блек-джеком и женщинами низкой соцответственности + фоновое исполнение(бсп) + типовая форма настроек из общих форм(бсп).
(7) БСП позволяет переопределить события формы для общей формы отчета конкретного отчета.
В данном случае для ПриСозданииНаСервере добавляем свою кнопку через ОтчетыСервер.ВывестиКоманду
для обработчиков команд используем общие модули (клиент или вызов сервера в зависимости от необходимости)
В данном случае для ПриСозданииНаСервере добавляем свою кнопку через ОтчетыСервер.ВывестиКоманду
для обработчиков команд используем общие модули (клиент или вызов сервера в зависимости от необходимости)
+ (8)
* в ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов() добавляем вызов ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера для нужного отчета
* в модуль менеджера отчета добавляем
Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
НастройкиОтчета.ОпределитьНастройкиФормы = Истина;
КонецПроцедуры
* в модуль объекта отчета
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры
* в модуль объекта отчета
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
// Тут добавляем команду через ОтчетыСервер.ВывестиКоманду
КонецПроцедуры
* получаем в процедуре-обработчике команды параметры ФормаОтчета типа УправляемаяФорма и Команда типа КомандаФормы
* в ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов() добавляем вызов ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера для нужного отчета
* в модуль менеджера отчета добавляем
Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
НастройкиОтчета.ОпределитьНастройкиФормы = Истина;
КонецПроцедуры
* в модуль объекта отчета
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
Настройки.События.ПриСозданииНаСервере = Истина;
КонецПроцедуры
* в модуль объекта отчета
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
// Тут добавляем команду через ОтчетыСервер.ВывестиКоманду
КонецПроцедуры
* получаем в процедуре-обработчике команды параметры ФормаОтчета типа УправляемаяФорма и Команда типа КомандаФормы
(4)Прибиндить конечно можно! Но что? Можно же обработчиком команды назначить только клиентскую процедуру в форме. Есть типовая процедура в типовой форме отчета "Подключаемый_Команда" - позволяющая обрабатывать события любых команд. Но что толку. Она может либо вызывать через кривожопное "ОписаниеОповещения" другую процедуру из формы, общего модуля или общей команды. Либо вызывать предопределённую (пустую) процедуру общего модуля "ОтчетыКлиентПереопределяемый.ОбработчикКоманды". Но всё это лишь клиентский контекст. А у таких отчетов, весь основной функционал сосредоточен в модуле объекта (ну просто больше негде, если это к тому же ещё и внешний отчет) а он, доступен только в серверном контексте (в который, сохранением контекста объекта отчета вне формы отчета перейти очень "сложно и через одно место"; ну что поделаешь, с архитекторами платформы у компании 1С полная беда) и, вот тут то вся загвоздка: использование процедуры "Подключаемый_Команда" никак не позволяет обратиться к модулю объекта отчета (не внося изменений в саму конфигурацию и не назначая отчету свою форму) - как говорится ПРИЕХАЛИ! Ну или я ни черта не понимаю как работать с отчетами в управляемом приложении.
Придётся, всё-таки, свою форму отчету назначать.
Придётся, всё-таки, свою форму отчету назначать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот