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

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

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