Сериализация и передача СКД
Сценарий. Сохранить пользовательские настройки отчёта СКД в файл, передать коллеге и восстановить в его базе.
Сохранение настроек в 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"
);
Отчет.КомпоновщикНастроек.СохранитьНастройкиВХранилище();
Сообщить("Настройки восстановлены");
КонецПроцедуры
Связанные разделы
- Библиотека сериализации — полный API
- Редактор СКД — интерактивная работа со схемами компоновки