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

Не вижу настройки компоновщика на форме, ОФ

Не вижу настройки компоновщика на форме, ОФ
Я
   mikecool
 
28.07.19 - 22:36
Внешняя обработка, на форме лежит табличное поле, связанное с реквизитом обработки тип Компоновщик настроек
В пользовательском режиме добавляю отборы, при закрытии формы  сохраняю настройки компоновщика через ХЗ
при открытии формы восстанавливаю настройки из ХЗ, вижу отладчиком свои добавленные отборы, но на форме их нет
думал СоздатьКолонки() полю надо - не помогло
чего еще надо сделать?
 
 
   mikecool
 
1 - 28.07.19 - 22:50
пробовал прямое присвоение настроек, загрузку настроек, загрузку и восстановление - результат одинаков, настройки восстанавливаются, но не отображаются
   RomanYS
 
2 - 28.07.19 - 22:54
Не отображаются где?
   mikecool
 
3 - 28.07.19 - 22:59
(2) на форме в табличном поле, которое отображает компоновщик настроек
   RomanYS
 
4 - 28.07.19 - 23:01
(3) табличное поле ты сам добавлял? Какой у него источник? Изменение настроек в этом ТП учитывается при выполнении СКД?
   mikecool
 
5 - 28.07.19 - 23:04
(4) источник у поля - КомпоновщикНастроек.Настройки.Отбор
при выполнении схемы с этим компоновщикам отборы применяются
   mikecool
 
6 - 29.07.19 - 10:03
подниму
   mikecool
 
7 - 29.07.19 - 11:18
может еще мысли будут?
   mikecool
 
8 - 29.07.19 - 16:52
еще раз подниму
   RomanYS
 
9 - 29.07.19 - 17:26
Посмотри отладчиком куда загружаются твои настройки: там ещё пользовательские настройки есть и фиксированные. Это навскидку
   mikecool
 
10 - 29.07.19 - 17:28
(9) смотрел, при сохранении - мои отборы в группе Настройки, при восстановлении - там же
   RomanYS
 
11 - 29.07.19 - 17:31
(10) А если ты вручную добавляешь новые отборы в ТП, они учитываются?
   mikecool
 
12 - 29.07.19 - 17:31
(11) да, учитываются
   mikecool
 
13 - 29.07.19 - 17:32
+12 при этом - если после загрузки, когда в ТП ничего не добавляется, добавить руками новый отбор с теми же полями - проблем нет, как будто компановщики разные
   Greeen
 
14 - 29.07.19 - 17:50
код покажи =)
   mikecool
 
15 - 29.07.19 - 18:11
Добавляю отбор на форме, обновляю список - отбор применяется: https://ibb.co/FqSrpvk
сохраняю настройки при закрытии формы, отбор есть: https://ibb.co/pbJ9CgJ
сохраняю так:
Процедура СохранитьНастройкиСеанса() Экспорт
    
    СтруктураНастроек = Новый Структура;
    
    пМетаданные = ЭтотОбъект.Метаданные();
    Для Каждого пРеквизит Из пМетаданные.Реквизиты Цикл
        Если пРеквизит.Имя = "КомпоновщикНастроек" Тогда
            пЗначение = Новый ХранилищеЗначения(ЭтотОбъект[пРеквизит.Имя].ПолучитьНастройки());
        Иначе
            пЗначение = ЭтотОбъект[пРеквизит.Имя];
        КонецЕсли;
        СтруктураНастроек.Вставить(пРеквизит.Имя, пЗначение);
    КонецЦикла;
    Для Каждого пТабличнаяЧасть Из пМетаданные.ТабличныеЧасти Цикл
        СтруктураНастроек.Вставить(пТабличнаяЧасть.Имя, ЭтотОбъект[пТабличнаяЧасть.Имя].Выгрузить());
    КонецЦикла;
    
    ХранилищеСистемныхНастроек.Сохранить(ИмяКлючаОбъекта(), КлючНастроекОбщиеНастройки(), СтруктураНастроек); 
    
КонецПроцедуры

восстанавливаю настройки при открытии формы, отбор есть: https://ibb.co/w4n0Wc3
восстанавливаю так:
Процедура ВосстановитьНастройкиСеанса(СтруктураНастроек = Неопределено) Экспорт
    
    Если СтруктураНастроек = Неопределено Тогда
        СтруктураНастроек = ХранилищеСистемныхНастроек.Загрузить(ИмяКлючаОбъекта(), КлючНастроекОбщиеНастройки());
    КонецЕсли;    
    
    Если СтруктураНастроек = Неопределено Тогда 
        Возврат;
    КонецЕсли;
    
    пМетаданные = ЭтотОбъект.Метаданные();
    Для Каждого КлючИЗначение Из СтруктураНастроек Цикл
        
        Если Не пМетаданные.Реквизиты.Найти(КлючИЗначение.Ключ) = Неопределено Тогда
            Если КлючИЗначение.Ключ = "КомпоновщикНастроек" Тогда
                пЗначение = КлючИЗначение.Значение.Получить();
                пКомпоновщик = ЭтотОбъект[КлючИЗначение.Ключ];
                пКомпоновщик.ЗагрузитьНастройки(пЗначение);
                пКомпоновщик.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное);
            Иначе
                ЭтотОбъект[КлючИЗначение.Ключ] = КлючИЗначение.Значение;
            КонецЕсли;
            Продолжить;
        КонецЕсли;
        
        Если Не пМетаданные.ТабличныеЧасти.Найти(КлючИЗначение.Ключ) = Неопределено Тогда
            ЭтотОбъект[КлючИЗначение.Ключ].Загрузить(КлючИЗначение.Значение);
            Продолжить;
        КонецЕсли;
            
    КонецЦикла;
    
КонецПроцедуры
   Вафель
 
16 - 29.07.19 - 18:32
компоновщик инициализирован к моменту восстановления?
   Greeen
 
17 - 29.07.19 - 18:38
Ага, можно так попробовать

    ИсточникНастроек = Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемы);
    НастройщикКомпоновкиФИ.Инициализировать(ИсточникНастроек);
    НастройщикКомпоновкиФИ.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);
    Если Не НастройкиКомпоновки = Неопределено Тогда
        НастройщикКомпоновкиФИ.ЗагрузитьНастройки(НастройкиКомпоновки);
        НастройщикКомпоновкиФИ.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное);
    КонецЕсли;
   mikecool
 
18 - 29.07.19 - 18:47
а, не инициализирован, вот оно в чем...
проверю
спасибо
   mikecool
 
19 - 29.07.19 - 21:46
проинициализировал, настройки не загрузились все равно
   mikecool
 
20 - 29.07.19 - 21:48
+19 хотя, надо проверить - полей выбора нет, наверное криво прошло
   mikecool
 
21 - 29.07.19 - 21:57
не, все нормально инициализируется, а настройки отбора не появляются в табличном поле (((
   mikecool
 
22 - 30.07.19 - 09:01
подниму раз
   mikecool
 
23 - 30.07.19 - 10:03
подниму два
   mikecool
 
24 - 30.07.19 - 14:29
ну не переносить же отборы по отдельности?
   mikecool
 
25 - 01.08.19 - 22:11
еще раз подниму, задача пока еще висит


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