|
Сохранение настроек отбора (КомпоновщикНастроекКомпоновкиДанных) в обработке |
☑ |
0
Sanchez777
08.08.18
✎
10:50
|
Добрый день! Помогите пожалуйста решить данную проблему: в обработке есть возможность настройки отбора, нужно чтобы при закрытии формы настройки сохранялись, соответственно при открытии повторно считывались. Вот как реализовано:
Объект.ОтборПересчета - это реквизит обработки с произвольным типом данных, в него я потом записываю значения отбора с типом
КомпоновщикНастроекКомпоновкиДанных
&НаСервере
Процедура СохранитьНастройки()
Объект.ОтборПересчета = ОтборПересчетаНаФорме;
КлючОбъекта = "ОтборПересчета";
КлючНастроек = "ОтборПересчета";
ОписаниеНастроек = "ОтборПересчета";
ИмяПользователя = "";
Настройки = Новый Структура("ЭтоНастройки", Объект.ОтборПересчета);
ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, ИмяПользователя);
КонецПроцедуры
Возникает след. ошибка: Ошибка при вызове метода контекста (Сохранить)
ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, ОписаниеНастроек, ИмяПользователя);
по причине:
Ошибка формата объекта настроек
Я понимаю, что например, если сохранить например реквизит "ДатаНачала" то будет работать. Но как сохранить именно данные Компановщика?
|
|
1
Tonik992
08.08.18
✎
10:54
|
Четвертый параметр ОписаниеНастроек - надо использовать не строку, и тип ОписаниеНастроек
|
|
2
Sanchez777
08.08.18
✎
11:21
|
Не помогло, ошибка осталась. Пробовал даже убрать параметр (т.к. он не обязательный)
|
|
3
Cyberhawk
08.08.18
✎
11:22
|
Много букв. В трех словах давай.
|
|
4
Sanchez777
08.08.18
✎
11:25
|
В трех словах: Как сохранить настройки отбора (КомпоновщикНастроекКомпоновкиДанных)?
|
|
5
youalex
08.08.18
✎
11:41
|
попробуй Объект.ОтборПересчета.ПолучитьНастройки()
|
|
6
DrWatson
08.08.18
✎
11:50
|
Есть реквизит ЭтотОбъект.КомпоновщикНастроек типа КомпоновщикНастроекКомпоновкиДанных. На форму выводится КомпоновщикНастроек.Настройки.Отбор.
Сохраняются настройки этого компоновщика Новый ХранилищеЗначения(ФормаОбъект.КомпоновщикНастроек.Настройки).
Но это же только часть вопроса. Нужно ещё инициализировать эти настройки через СхемаКомпоновкиДанных и загружать сохраненные настройки.
|
|
7
Cyberhawk
08.08.18
✎
12:21
|
ИР в помощь
|
|
8
Tonik992
08.08.18
✎
12:34
|
"В качестве настроек системное хранилище принимает любое значение, которое может быть помещено в хранилище значений."
а тип КомпоновщикНастроекКомпоновкиДанных не сериализуется.
Поэтому, надо в (5) делать.
|
|
9
Sanchez777
08.08.18
✎
16:20
|
Всем спасибо! Решил проблему таким образом путем :
Настройки = ОтборПересчета.ПолучитьНастройки();
Объект.ЗначНастройки = ЗначениеВСтрокуВнутр(Настройки);
КлючОбъекта = "ОтборПересчета";
КлючНастроек = "ОтборПересчета";
ИмяПользователя = "";
Настройки = Новый Структура("ЭтоНастройки, ДатаНач, ДатаКон", Объект.ЗначНастройки, Объект.ДатаНач, Объект.ДатаКон);
ХранилищеОбщихНастроек.Сохранить(КлючОбъекта, КлючНастроек, Настройки, , ИмяПользователя);
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший