Хочу не влезаю в конфигурацию добавить свою команду в основную форму отчета из модуля внешнего отчета.
Интерфейс править могу. Могу назначить свою команду.
А как подставить обработчик команды не влезая в форму не знаю.
В отчете только компановка. Формы нет.
// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.
//
// Параметры:
// Форма - УправляемаяФорма - Форма отчета.
// Отказ - Передается из параметров обработчика "как есть".
// СтандартнаяОбработка - Передается из параметров обработчика "как есть".
//
// См. также:
// "УправляемаяФорма.ПриСозданииНаСервере" в синтакс-помощнике.
//
Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка) Экспорт
Параметры = ЭтаФорма.Параметры;
КомпоновщикНастроекФормы = ЭтаФорма.Отчет.КомпоновщикНастроек;
Если Параметры.Свойство("ПараметрКоманды")
И Параметры.Свойство("ОписаниеКоманды")
И Параметры.ОписаниеКоманды.Свойство("ДополнительныеПараметры") Тогда
СформироватьПараметрыОтчета(Параметры.ПараметрКоманды, ЭтаФорма.ФормаПараметры, Параметры);
КонецЕсли;
ЭтаФорма.Команды.ОтправитьПоПочте.Действие = "Подключаемый_Команда"; //Изменил на свою команду
КонецПроцедуры
Просвещаю из документации. Жирным выделено нужное вам
ВывестиКоманду
Выводит команду в форму отчета в виде кнопки в указанную группу.
Также регистрирует команду, защищая ее от удаления при перерисовке формы.
Для вызова из события ПриСозданииНаСервере формы отчета.
Синтаксис
ФормаОтчета - УправляемаяФорма - форма отчета, в которую добавляется команда.
КомандаИлиКоманды - КомандаФормы - команда, с которой будут связаны выводимые кнопки.
Если в свойстве Действие указана пустая строка,
то при выполнении команды будет вызвана процедура ОтчетыКлиентПереопределяемый.ОбработчикКоманды.
Если в свойстве Действие указана строка вида "<ИмяКлиентскогоОбщегоМодуля>.<ИмяЭкспортнойПроцедуры>", то при выполнении команды в указанном модуле будет вызвана указанная процедура с двумя параметрами,
аналогичным двум первым параметрам процедуры ОтчетыКлиентПереопределяемый.ОбработчикКоманды.
- Массив - набор команд (КомандаФормы), которые будут выведены в указанную группу.
ТипГруппы - Строка - условное имя группы, в которой требуется вывести кнопку.
"Главное" - группа с кнопками "Сформировать" и "Формировать сразу".
"Настройки" - группа с кнопками "Настройки", "Изменить вариант отчета" и т.п.
"РаботаСТабличнымДокументом" - группа с кнопками "Найти", "Развернуть все группы" и т.п.
"Интеграция" - группа такими кнопками как "Печать, Сохранить, Отправить" и т.п.
"ПодменюОтправить" - подменю в группе "Интеграция" для отправки по почте.
"Прочее" - группа с кнопками "Изменить форму", "Справка" и т.п.
ВНачалоГруппы - Булево - если Истина, то кнопка будет выведена в начале группы. Иначе в конце группы.
ТолькоВоВсехДействиях - Булево - если Истина, то кнопка будет выведена только в подменю "Еще".
Иначе и в подменю "Еще", и в командной панели формы.
СуффиксПодгруппы - Строка - если заполнен, то команды будут объединены в подгруппу.
СуффиксПодгруппы добавляется к имени группы справа.
Пример вызова
(8) Подскажите мне, пожалуйста, для общего образования. Можно ли каким-либо образом определить свой обработчик команды для внешней формы? Сам я не смог разобраться.
(10) Задачи нет, для общего развития. Возможно ли для внешнего отчета в модуле объекта описать создание своей команды на форме и там же, в модуле объекта, реализовать обработчик команды? Или же каким-либо финтом реализовать обработчик своей команды в неосновной форме обработки. Главное условие: без доработки конфигурации, без использования собственной формы отчета, весь код только во внешней обработке.
Или же каким-либо финтом реализовать обработчик своей команды в неосновной форме обработки
Я сам не пробовал, потому что это извращение. Просто делал расширение (в нем 1 модуль ОтчетыКлиентПереопределяемый или СобытияФормКлиент нужно заимствовать и там все прописать)
Можно сделать не команду а гиперссылку. В гиперссылке написать навигационную ссылку на внешнюю обработку с типов "ВызовКлиентскогоМетода" или "открытиеФормы"и в этой команде выполнять. Но это кощунство
(12) Ну в общем-то это извращение ровно потому, что нет для этого программного интерфейса от разработчиков БСП. Такого, например, как есть в подключаемых обработках заполнения объектов.
Спасибо.
(15) Согласен. Проще всего сделать расширением. В нем Отчет, ОбщийМодуль и даже можно красиво в интерфейсе разместить если другие переопределяемые модули затронуть.
(13) Существует. ВыполнитьМетодКонфигурации или ВыполнитьМетодОбъекта. Так же можно что-то выполнить в фоне из внешней обработки.
Что-то выполнить не проблема. Проблема в том, что будет стоять в Действии у команды