1С 8.3 Скрыть по условию группы (блоки) в СКД
Данные > Примеры кода 1С > 1С 8.3 Схема компоновки данных (СКД)
Перейти в раздел примеры кода 1С 8.3:
Пример от olja-ljaaa (сокр.вариант) в 1С 8.3:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ПарОтчета_ЗнКД = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
ПараметрыОтчета_ГруппировкаКомпоновкиДанных = КомпоновщикНастроек.Настройки.Структура;
// Параметры для видимости колонок
ПараметрАн = Новый ПараметрКомпоновкиДанных("Аналитика");
ПараметрОб = Новый ПараметрКомпоновкиДанных("ОбъектЭксплуатации");
ПараметрУп = Новый ПараметрКомпоновкиДанных("Управленческий");
// Названия выводимых колонок в отчёте
ЗаголовокВывКолАн = "АналитикаПоСтанциям";
ЗаголовокВывКолОб = "ОбъектЭксплуатации";
ЗаголовокВывКолУп = "УправленческиеАналитики";
Для Каждого ПараметрОтчетаКД Из ПарОтчета_ЗнКД Цикл
ВидАн = ПарОтчета_ЗнКД.Получить(4).Значение;
ВидОб = ПарОтчета_ЗнКД.Получить(5).Значение;
ВидУп = ПарОтчета_ЗнКД.Получить(6).Значение;
Если ТипЗнч(ПараметрОтчетаКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных")
И ПараметрОтчетаКД.Параметр = ПараметрАн Тогда
Для Каждого ПараметрОтчетаГруппировка Из ПараметрыОтчета_ГруппировкаКомпоновкиДанных Цикл
Если ТипЗнч(ПараметрОтчетаГруппировка) = Тип("ГруппировкаКомпоновкиДанных")
И ПараметрОтчетаГруппировка.Имя = "Данные" Тогда
Для Каждого ЭлементПар Из ПараметрОтчетаГруппировка.Выбор.Элементы Цикл
Если ЭлементПар.Заголовок = "Расшифровки" Тогда
ОтображениеБлока(ПараметрАн, ЗаголовокВывКолАн,ВидАн,ЭлементПар.Элементы[0]);
ОтображениеБлока(ПараметрОб, ЗаголовокВывКолОб,ВидОб,ЭлементПар.Элементы[1]);
ОтображениеБлока(ПараметрУп, ЗаголовокВывКолУп,ВидУп,ЭлементПар.Элементы[2]);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
ПарОтчета_ЗнКД = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы;
ПараметрыОтчета_ГруппировкаКомпоновкиДанных = КомпоновщикНастроек.Настройки.Структура;
// Параметры для видимости колонок
ПараметрАн = Новый ПараметрКомпоновкиДанных("Аналитика");
ПараметрОб = Новый ПараметрКомпоновкиДанных("ОбъектЭксплуатации");
ПараметрУп = Новый ПараметрКомпоновкиДанных("Управленческий");
// Названия выводимых колонок в отчёте
ЗаголовокВывКолАн = "АналитикаПоСтанциям";
ЗаголовокВывКолОб = "ОбъектЭксплуатации";
ЗаголовокВывКолУп = "УправленческиеАналитики";
Для Каждого ПараметрОтчетаКД Из ПарОтчета_ЗнКД Цикл
ВидАн = ПарОтчета_ЗнКД.Получить(4).Значение;
ВидОб = ПарОтчета_ЗнКД.Получить(5).Значение;
ВидУп = ПарОтчета_ЗнКД.Получить(6).Значение;
Если ТипЗнч(ПараметрОтчетаКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных")
И ПараметрОтчетаКД.Параметр = ПараметрАн Тогда
Для Каждого ПараметрОтчетаГруппировка Из ПараметрыОтчета_ГруппировкаКомпоновкиДанных Цикл
Если ТипЗнч(ПараметрОтчетаГруппировка) = Тип("ГруппировкаКомпоновкиДанных")
И ПараметрОтчетаГруппировка.Имя = "Данные" Тогда
Для Каждого ЭлементПар Из ПараметрОтчетаГруппировка.Выбор.Элементы Цикл
Если ЭлементПар.Заголовок = "Расшифровки" Тогда
ОтображениеБлока(ПараметрАн, ЗаголовокВывКолАн,ВидАн,ЭлементПар.Элементы[0]);
ОтображениеБлока(ПараметрОб, ЗаголовокВывКолОб,ВидОб,ЭлементПар.Элементы[1]);
ОтображениеБлока(ПараметрУп, ЗаголовокВывКолУп,ВидУп,ЭлементПар.Элементы[2]);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ОтображениеБлока(Параметр,Заголовок,ВидимостьКолонки,ЭлементПар)
// Для выбранной колонки отключаем использование
Если ЭлементПар.Заголовок=Заголовок Тогда
ЭлементПар.Использование = ВидимостьКолонки;
Иначе
ЭлементПар.Использование = НЕ ВидимостьКолонки;
КонецЕсли;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник