Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

БСП 3.1.4: Как добавить свою кнопку на панель формы отчета?

БСП 3.1.4: Как добавить свою кнопку на панель формы отчета?
Я
   conscious
 
04.08.21 - 13:30
Нужно добавить свою кнопку на форму отчета (рядом со "Сформировать"). Отчет на СКД.
Конфигурация на базе БСП 3.1.4

Добавил свой отчет в конфигурациию, добавил в него свою форму отчета, когда запустил в пользовательском режиме, при нажатии на кнопку "Настройки" формы отчета выдается сообщение об ошибке: Не передан служебный параметр "Настройки отчета".

Удалил свою форму отчета из отчета, выбрал в свойствах отчета общую форму "ФормаОтчета" конфигурации.
В модуле "ВариантыОтчетовПереопределяемый", в процедуре "НастроитьВариантыОтчетов" попытался вызвать ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.МойОтчет), чтобы в ней попытаться вызвать ОтчетыСервер.ВывестиКоманду
Но в эту процедуру даже не заходит выполнение (ставил точку останова).

Подскажите, как правильно сделать, плиз.
   banco
 
1 - 04.08.21 - 14:13
Всю информацию можно прочитать к документации к БСП и пример посмотреть в демо базе.

В процедуре НастроитьВариантыОтчета
ВариантыОтчетов.ОписаниеОтчета(Настройки, Метаданные.Отчеты.ТвойОтчет).ОпределитьНастройкиФормы = Истина;

в модуле отчета
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
    Настройки.События.ПриСозданииНаСервере = Истина;        
КонецПроцедуры

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

ТвояКоманда = Форма.Команды.Добавить("названиекоманды");
ТвояКоманда.Действие  = "Подключаемый_Команда";
ТвояКоманда.заголовок = "Заголовок";
Форма.ПостоянныеКоманды.Добавить(ТвояКоманда.Имя);
        
ТвояКнопка= Форма.Элементы.Добавить(ТвояКоманда .Имя, Тип("КнопкаФормы"), Форма.Элементы.ГруппаПрограммныйИнтерфейс);
ТвояКнопка.ИмяКоманды = ТвояКоманда .Имя;
ТвояКнопка.ТолькоВоВсехДействиях = Ложь;

КонецПроцедуры
   conscious
 
2 - 04.08.21 - 14:55
(1) Странно, но отладчик так и не останавливается в ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов(). Т.е., выполнение туда не заходит.
   conscious
 
3 - 04.08.21 - 15:02
(2) Заработало после запуска обновления вспомогательных данных.
(1) Большое спасибо!
   xaozai
 
4 - 05.08.21 - 09:57
(1) А не могли бы дать ссылку на статью ИТС, где вот это всё описано?
   banco
 
5 - 05.08.21 - 09:59
   xaozai
 
6 - 05.08.21 - 10:07
(5) Я имел ввиду непосредственно по теме этой ветке. Где там описано, как события переопределять (ПриСозданииНаСервере), про ОпределитьНастройкиФормы, как действие команды описывается?
   banco
 
7 - 05.08.21 - 10:19
(6) https://its.1c.ru/db/bsp315doc#content:4:1:issogl3_установить_настройки_формы_отчета

События – Структура – события, для которых определены обработчики в модуле объекта отчета (обработчики событий рекомендуется определять в области ПрограммныйИнтерфейс, после процедуры ОпределитьНастройкиФормы):
ПриСозданииНаСервере – если установить в значение Истина, то в модуле объекта отчета следует определить процедуру ПриСозданииНаСервере по шаблону:
// Вызывается в обработчике одноименного события формы отчета после выполнения кода формы.

//
// Параметры:

//   Форма - ФормаКлиентскогоПриложения - Форма отчета.
//   Отказ - Булево - Признак отказа от создания формы.

//      См. описание одноименного параметра "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике.
//   СтандартнаяОбработка - Булево - Признак выполнения стандартной (системной) обработки события.

//      См. описание одноименного параметра "ФормаКлиентскогоПриложения.ПриСозданииНаСервере" в синтакс-помощнике.
//

// См. также:
//   Процедура для вывода добавленных команд в форму: ОтчетыСервер.ВывестиКоманду().

//   Глобальный обработчик этого события: ОтчетыПереопределяемый.ПриСозданииНаСервере().
//

// Пример добавления команды:
//    Команда = Форма.Команды.Добавить("<ИмяКоманды>");

//    Команда.Действие  = "Подключаемый_Команда";
//    Команда.Заголовок = НСтр("ru = '<Представление команды...>'");

//    ОтчетыСервер.ВывестиКоманду(Форма, Команда, "<ВидГруппы>");
// Обработчик команды пишется в процедуре ОтчетыКлиентПереопределяемый.ОбработчикКоманды.

//
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    // Обработка события.

КонецПроцедуры

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.