Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Смена Схемы СКД обновление полей настроек. Глюк или отсутствие метода?

Смена Схемы СКД обновление полей настроек. Глюк или отсутствие метода?
Я
   ejiki
 
04.10.16 - 10:57
При смене схемы СКД пишу 

 ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
    
    //Копируем пользовательские настройки и последние настройки варианта по которым будем искать

    ПрошлыеНастройки = ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки;
    ПоследниеНастройкиВарианта = ОтчетОбъект.КомпоновщикНастроек.Настройки;
        
    Если ВариантОтчета="0" Тогда
        СхемаКД = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    ИначеЕсли ВариантОтчета="1" Тогда
        СхемаКД = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных0");
    ИначеЕсли ВариантОтчета="2" Тогда
        СхемаКД = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    ИначеЕсли ВариантОтчета="3" Тогда
        СхемаКД = ОтчетОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных0");    
    КонецЕсли;
    
    ОтчетОбъект.СхемаКомпоновкиДанных = СхемаКД;
        
    АдресСхемы = ПоместитьВоВременноеХранилище(СхемаКД,УникальныйИдентификатор);
    ОтчетОбъект.КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы));
    
    ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКД.НастройкиПоУмолчанию);
    
// тут я копирую пользовательские настройки из одной схемы в другую

    ЗапихнутьВПользовательскиеНастройки(ОтчетОбъект,ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки,ПрошлыеНастройки,ОтчетОбъект.КомпоновщикНастроек.Настройки);
    
    ЗначениеВРеквизитФормы(ОтчетОбъект,"Отчет");



В случае если копирую и заполняю пользовательские настройки то на форме отчета после выбора схемы не обновляются поля параметров и отборов. Если закомментировать копирование настроек, а именно процедуру "ЗапихнутьВПользовательскиеНастройки" то поля обновляются на форме.

Зато если щелкнуть по флажку активности отбора или параметра то поля автоматически обновляются.

ЧЯДНТ?!
 
 
   ejiki
 
1 - 04.10.16 - 12:51
Апну ка я тему
   Cyberhawk
 
2 - 04.10.16 - 12:53
ЗапихнутьВПользовательскиеНастройки где лежит?
   ejiki
 
3 - 04.10.16 - 12:56
&НаСервере
Процедура ЗапихнутьВПользовательскиеНастройки(Отчет,ТекущиеНастройки,ПрошлыеНастройки,ПоследниеНастройкиВарианта)
    
    Если  ПрошлыеНастройки=неопределено тогда
        Возврат;
    КонецЕсли;    
    
    Для каждого ЭлементНастройки из ПрошлыеНастройки.Элементы цикл
        
        Если ТипЗнч(ЭлементНастройки)=Тип("ЗначениеПараметраНастроекКомпоновкиДанных") тогда
            Для каждого ЭлементТекущейНастройки из ТекущиеНастройки.Элементы цикл
                Если ТипЗнч(ЭлементТекущейНастройки)=Тип("ЗначениеПараметраНастроекКомпоновкиДанных") тогда
                    
                    Если СокрЛП(ЭлементНастройки.Параметр)=СокрЛП(ЭлементТекущейНастройки.Параметр) тогда
                        ЭлементТекущейНастройки.Использование = ЭлементНастройки.Использование;
                        ЭлементТекущейНастройки.Значение      = ЭлементНастройки.Значение;
                    КонецЕсли;
                    
                КонецЕсли;
            КонецЦикла;    
        КонецЕсли;    
        
        Если  ПоследниеНастройкиВарианта=неопределено тогда
            Возврат;
        КонецЕсли;    
        
        Если ТипЗнч(ЭлементНастройки)=Тип("ЭлементОтбораКомпоновкиДанных") тогда
            
             ИмяПараметра  = НайтиИмяПараметраОтбора(ПоследниеНастройкиВарианта,ЭлементНастройки.ИдентификаторПользовательскойНастройки);
             ПользовательскийОтбор = ПолучитьПользовательскуюНастройкуОтбора(Отчет,ИмяПараметра);
             
             Если ПользовательскийОтбор=неопределено тогда
                 продолжить;
             КонецЕсли;     
             
            ПользовательскийОтбор.Использование  = ЭлементНастройки.Использование;
            ПользовательскийОтбор.ВидСравнения   = ЭлементНастройки.ВидСравнения;
            ПользовательскийОтбор.ПравоеЗначение = ЭлементНастройки.ПравоеЗначение;
             
        КонецЕсли;    
        
    КонецЦикла;    
    
КонецПроцедуры

   ejiki
 
4 - 04.10.16 - 12:57
(2) вот примерно так выполняю. Это все на форме отчета.
   Cyberhawk
 
5 - 04.10.16 - 14:00
Передавай в эту процедуру Отчет через Знач
   aleks_default
 
6 - 04.10.16 - 14:03
Есть же вроде метод ЗагрузитьПользовательскиеНастройки()
   ejiki
 
7 - 05.10.16 - 04:01
(6) Это только в том случае пройдет если состав настройки соответствует. А у меня схемы различаются на один параметр и ЗагрузитьПользовательскиеНастройки() выдает ошибку.

(5) Сейчас попробую, спасибо!
   ejiki
 
8 - 05.10.16 - 04:39
(5) нет) увы не получилось) пробовал всё: Знач в процедуре, само копирование засунуть в эту процедуру.

Как итог все так же, на форме чтобы увидеть обновленный список настроек нужно нажать "галочку" любого из параметров/отборов.
   ejiki
 
9 - 05.10.16 - 08:02
КАК же обновить измененные параметры и отборы в окне пользовательских настроек?)

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует