Кнопки управления группировками, отчет
Процедура СгенерироватьКнопкиУправленияГруппировкой(ЭлементТабПоле, Панель)
// ЭлементТабПоле = ЭлементыФормы.ТабДопИнформация;
НачалоВерх = ЭлементТабПоле.Верх + 3; // Привязка к верхнему левому углу ПоляТабличногоДокумента
НачалоЛево = ЭлементТабПоле.Лево + 3; // Привязка к верхнему левому углу ПоляТабличногоДокумента
Имя = ЭлементТабПоле.Имя;
ШагКнопок = 13;
ПрефиксИмениКн = "КнГрГор_" + Имя + "_";
ПрефиксИмениКнВерт = "КнГрВерт_" + Имя + "_";
// Удалить старые кнопки
Сч = 0;
Пока Сч < ЭлементыФормы.Количество() Цикл
ТекЭлемент = ЭлементыФормы.Получить(Сч);
Если (Найти(ТекЭлемент.Имя, ПрефиксИмениКн) > 0) ИЛИ
(Найти(ТекЭлемент.Имя, ПрефиксИмениКнВерт) > 0) Тогда
ЭлементыФормы.Удалить(ТекЭлемент);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
// Добавть новые кнопки по количеству группировок
КоличествоГруппировок = ЭлементТабПоле.КоличествоУровнейГруппировокСтрок();
Для Сч = 1 По КоличествоГруппировок Цикл
НоваяКнопка = ЭлементыФормы.Добавить(Тип("Кнопка"), ПрефиксИмениКн + Сч, , Панель);
НоваяКнопка.Верх = НачалоВерх;
НоваяКнопка.Лево = НачалоЛево + (ШагКнопок * (Сч - 1));
НоваяКнопка.Высота = 11;
НоваяКнопка.Ширина = 11;
НоваяКнопка.Шрифт = Новый Шрифт("Шрифт диалогов и меню", 6);
НоваяКнопка.Заголовок = "" + Сч;
НоваяКнопка.УстановитьДействие("Нажатие", Новый Действие("СвернутьДоУровня"));
КонецЦикла;
НачалоЛево = НачалоЛево + Сч * ШагКнопок + 3;
// Добавть новые кнопки по количеству группировок
КоличествоГруппировок = ЭлементТабПоле.КоличествоУровнейГруппировокКолонок();
Для Сч = 1 По КоличествоГруппировок Цикл
НоваяКнопка = ЭлементыФормы.Добавить(Тип("Кнопка"), ПрефиксИмениКнВерт + Сч, , Панель);
НоваяКнопка.Верх = НачалоВерх + (ШагКнопок * (Сч - 1));
НоваяКнопка.Лево = НачалоЛево;
НоваяКнопка.Высота = 11;
НоваяКнопка.Ширина = 11;
НоваяКнопка.Шрифт = Новый Шрифт("Шрифт диалогов и меню", 6);
НоваяКнопка.Заголовок = "" + Сч;
НоваяКнопка.УстановитьДействие("Нажатие", Новый Действие("СвернутьДоУровняКолонки"));
КонецЦикла;
КонецПроцедуры //СгенерироватьКнопкиУправленияГруппировкой()
Процедура СвернутьДоУровня(Элемент)
Уровень = Число(Элемент.Заголовок); // здесь записан нужный уровень
Имя = СтрЗаменить(Элемент.Имя, "_", Символы.ПС);
Имя = СтрПолучитьСтроку(Имя, 2);
ЭлементыФормы[Имя].ПоказатьУровеньГруппировокСтрок(Уровень - 1);
КонецПроцедуры //СвернутьДоУровня()
Процедура СвернутьДоУровняКолонки(Элемент)
Уровень = Число(Элемент.Заголовок); // здесь записан нужный уровень
Имя = СтрЗаменить(Элемент.Имя, "_", Символы.ПС);
Имя = СтрПолучитьСтроку(Имя, 2);
ЭлементыФормы[Имя].ПоказатьУровеньГруппировокКолонок(Уровень - 1);
КонецПроцедуры //СвернутьДоУровня()
Орфографическая ошибка в Добавть (найдено 2): Добавть
Добавить кнопку на форму в командную панель
ПолучитьПроксиУправленияКонференцией (БСП)
ИР Кнопка "Прервать" в окне "Выражение"
ИР Кнопка "Изменить" в окне "Пользователь"
КомандаУправленияПрисоединеннымиФайлами (БСП)
ЭтоЭлементДинамическогоСписка (БСП)
Поведение СКД при формировании табличного документа с использованием макета для оформления