четверг, 6 марта 2014 г.

Сохранение параметров и отборов при изменении варианта отчет (толстый клиент)

Как мы знаем, при изменении варианта отчета в СКД, происходит и замена всех его настроек, включая параметры, отборы. Это не очень удобно, т.к. при каждом изменении нужно будет вводить его параметры и отборы вручную. Чтобы выполнить сохранение настроек параметров и отборов при изменении варианта отчета напишем несколько нехитрых строк кода. В качестве примера будет взят ШаблонСКД.epf и в нем доработано сохранение параметров и отборов.

Код следующий:

Процедура _СменаВариантаНастройки(Элемент)

    Для каждого
Настройка Из СхемаКомпоновкиДанных.ВариантыНастроек Цикл

        Если
Элемент.Текст = Настройка.Представление тогда

           
// 1. сохраняем текущие настройки варианта отчета
           
ПредыдущиеНастройки = КомпоновщикНастроек.Настройки;

           
// 2. загружаем новый вариант отчета
           
КомпоновщикНастроек.ЗагрузитьНастройки(Настройка.Настройки);

           
// 3. оставляем старые параметры при изменении варианта отчета
           
ТекущиеНастройки = КомпоновщикНастроек.Настройки;
            Для Каждого
текЭлемент Из ПредыдущиеНастройки.ПараметрыДанных.Элементы Цикл
               
текПараметр = ТекущиеНастройки.ПараметрыДанных.Элементы.Найти(текЭлемент.Параметр);
                Если НЕ
текПараметр = Неопределено Тогда
                   
ЗаполнитьЗначенияСвойств(текПараметр, текЭлемент);
                КонецЕсли;
            КонецЦикла;

           
// 4. оставляем старый отбор
           
текОтбор = КомпоновщикНастроек.Настройки.Отбор.Элементы;
           
текОтбор.Очистить();

            Для Каждого
ЭлементОтбора Из ПредыдущиеНастройки.Отбор.Элементы Цикл
               
нЭлемент = текОтбор.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
               
ЗаполнитьЗначенияСвойств(нЭлемент, ЭлементОтбора);
            КонецЦикла;

            Прервать;

        КонецЕсли;

    КонецЦикла;

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

Краткую информация по шаблону СКД смотрим ЗДЕСЬ>>


Добавить комментарий

Комментариев нет :

Отправить комментарий