Перейти к основному содержимому

Сериализация и передача СКД

Сценарий. Сохранить пользовательские настройки отчёта СКД в файл, передать коллеге и восстановить в его базе.

Сохранение настроек в JSON

Функция СохранитьНастройкиОтчетаВФайл(ИмяФайла, НастройкиСКД)

СериализаторJSON = Обработки.УИ_ПреобразованиеДанныхJSON.Создать();

СтруктураНастроек = СериализаторJSON.ЗначениеВСтруктуру(НастройкиСКД);
СтрокаJSON = СериализаторJSON.ЗаписатьОписаниеОбъектаВJSON(СтруктураНастроек);

Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
Текст.Записать(СтрокаJSON);
Текст.Закрыть();

Возврат Истина;

КонецФункции

Процедура ПримерСохранения()

Отчет = Отчеты.ОтчетПоОстаткамТоваров.Создать();
Отчет.КомпоновщикНастроек.ЗагрузитьНастройкиИзХранилища();

СохранитьНастройкиОтчетаВФайл(
"C:\settings\ostatki_otchet.json",
Отчет.КомпоновщикНастроек.Настройки
);

Сообщить("Настройки сохранены");

КонецПроцедуры

Загрузка настроек из JSON

Функция ЗагрузитьНастройкиОтчетаИзФайла(ИмяФайла)

СериализаторJSON = Обработки.УИ_ПреобразованиеДанныхJSON.Создать();

Текст = Новый ЧтениеТекста(ИмяФайла, КодировкаТекста.UTF8);
СтрокаJSON = Текст.Прочитать();
Текст.Закрыть();

СтруктураНастроек = СериализаторJSON.ПрочитатьОписаниеОбъектаИзJSON(СтрокаJSON);
НастройкиСКД = СериализаторJSON.СтруктураВЗначение(
СтруктураНастроек,
Тип("НастройкиКомпоновкиДанных")
);

Возврат НастройкиСКД;

КонецФункции

Процедура ПримерВосстановления()

Отчет = Отчеты.ОтчетПоОстаткамТоваров.Создать();
Отчет.КомпоновщикНастроек.Настройки = ЗагрузитьНастройкиОтчетаИзФайла(
"C:\settings\ostatki_otchet.json"
);

Отчет.КомпоновщикНастроек.СохранитьНастройкиВХранилище();
Сообщить("Настройки восстановлены");

КонецПроцедуры

Связанные разделы