Имя: Пароль:
1C
1С v8
Настройки СКД в ХранилищеЗначений
0 G-P
 
19.08.16
16:10
Не могу поместить тип "НастройкиКомпоновкиДанных" в реквизит с типом "ХранилищеЗначения". FAQ вроде как разрешает хранить сериализуемые типы в хранилище, а настройки сериализуются. Тем не менее, после помещения в хранилище, даже в текущем серверном вызове повторное получение возвращает "Неопределено". Подскажите пожалуйста, что я делаю не так.

Код на форме справочника, реквизит "НастройкиОтчета" имеет тип "ХранилищеЗначения", контекстовый серверный вызов.

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

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

Выдержка из FAQ:

ХранилищеЗначения (ValueStorage)
Описания типов объектов, которые могут быть помещены в ХранилищеЗначения, включают текст "Сериализуется".

НастройкиКомпоновкиДанных (DataCompositionSettings)
Сериализуется. Данный объект может быть сериализован в/из XML. Может использоваться в реквизитах управляемой формы. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data-composition-system/settings}. Имя типа XDTO: Settings.
1 apokrit
 
19.08.16
16:23
(0) Настройки тут не при чем. Просто при конвертации в данные формы ХранилиащеЗначения не сохраняется.

Если очень нужно сохранять прямо в форме - можно через СериализаторXDTO преобразовать в строку (XML) и хранить так.
(В БСП есть что-то типа ЗначениеВXML / ЗначениеИзXML)
2 G-P
 
19.08.16
16:27
(1) apokrit, спасибо, я уже про это подумал, придется сериализовать вручную и хранить строку. Кривовато, зато работает.
Независимо от того, куда вы едете — это в гору и против ветра!