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

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

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

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

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

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

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

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

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

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