Кнопки управления группировками табличного документа для управляемых форм (через подменю командной панели)
02.03.17
Разработка - Работа с интерфейсом
Есть замечательная публикация по добавлению кнопок управления группировок отчета.
Для меня, минусом является то, что нужно править формирование отчетов (при компоновке результата).
В текущей публикации раскрывается другой способ (через подменю командной панели формы отчета).
Ссылка на публикацию-основание.
Все изменения выполняются в общей форме "ФормаОтчета".
Изменения в элементах формы.
В командную панель добавил подменю "ПодменюГруппировка". Добавление/удаление команд и элементов формы выполняется программно в процедуре "ОбновитьПодменюГруппировка".
Изменения в модуле.
Изменения в типовой процедуре "ПослеФормированияНаКлиенте".
Добавил две новых процедуры.
&НаКлиенте
Процедура ПослеФормированияНаКлиенте()
// Типовой код
ОбновитьПодменюГруппировка();
КонецПроцедуры
&НаСервере
Процедура ОбновитьПодменюГруппировка()
Родитель = Элементы.ПодменюГруппировка;
РодительПодчиненныеЭлементы = Родитель.ПодчиненныеЭлементы;
Пока РодительПодчиненныеЭлементы.Количество() Цикл
ПодчиненныйЭлемент = РодительПодчиненныеЭлементы.Получить(0);
Команды.Удалить(Команды.Найти(ПодчиненныйЭлемент.Имя));
Элементы.Удалить(ПодчиненныйЭлемент);
КонецЦикла;
ПрефиксКоманды = "УровеньГруппировки_";
ПрефиксКомандыЗаголовок = "Группировка ";
Для Инд = 1 По ОтчетТабличныйДокумент.КоличествоУровнейГруппировокСтрок() Цикл
ИмяКоманды = ПрефиксКоманды + Инд;
НоваяКоманда = Команды.Добавить(ИмяКоманды);
НоваяКоманда.Действие = "КомандаНомерГруппировки";
НоваяКоманда.Заголовок = ПрефиксКомандыЗаголовок + Инд;
НовыйЭлемент = Элементы.Добавить(ИмяКоманды, Тип("КнопкаФормы"), Родитель);
НовыйЭлемент.ИмяКоманды = ИмяКоманды;
КонецЦикла;
КонецПроцедуры // ОбновитьПодменюГруппировка
&НаКлиенте
Процедура КомандаНомерГруппировки(Команда)
Попытка
НомерГруппировки = Число(СтрЗаменить(Команда.Имя, "УровеньГруппировки_", "")) - 1;
ОтчетТабличныйДокумент.ПоказатьУровеньГруппировокСтрок(НомерГруппировки);
Исключение
КонецПопытки;
КонецПроцедуры
Так как анализ группировок выполняется после формирования отчета, то можно создать заголовки команд согласно группировкам отчета (через анализ настроек отчета, через поиск по табличному документу или еще каким-то уникальным способом ;) ).
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.