Как сохранить/восстановить настройки схемы и вариант схемы СКД?
Платформа 8.2, обычное приложение. В отчете есть несколько схем СКД, на форме отчета в списке выбора пользователь сам выбирает нужную схему, помогите разобраться как сохранять/воостанавливать настройки схемы вместе с вариантом отчета.
Настройки сохраняю в РС.СохраненныеНастройки. Проблема в том что я не понимаю как сохранить настройки СКД и значения реквизитов отчета вместе, получается только либо первое либо второе.
Код такой:
//Заполнение вариантов отчета Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) Варианты = Новый СписокЗначений; Макеты = ЭтотОбъект.Метаданные().Макеты; Для Каждого Схема ИЗ Макеты Цикл Варианты.Добавить(Схема.Имя,Схема.Синоним); КонецЦикла; ЭлементыФормы.СписокВариантов.СписокВыбора = Варианты; КонецПроцедуры //выбор варианта отчета Процедура СписокВариантовПриИзменении(Элемент) СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет(Элемент.Значение); КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); КонецПроцедуры Процедура ПриОткрытии() СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь")); СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект)); Если УниверсальныеМеханизмы.ПолучитьНастройкуИспользоватьПриОткрытии(СтруктураНастройки) Тогда мТекущаяНастройка = СтруктураНастройки; КомпоновщикНастроек.ЗагрузитьНастройки(мТекущаяНастройка.СохраненнаяНастройка.Получить()); КонецЕсли; КонецПроцедуры //переопределение стандартных кнопке Сохранить/Восстановить значения Процедура СохранитьНастройки() Экспорт Перем СохраненнаяНастройка; Если мТекущаяНастройка<>Неопределено Тогда СтруктураНастройки = мТекущаяНастройка; Иначе СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект)); СтруктураНастройки.Вставить("НаименованиеНастройки", Неопределено); СтруктураНастройки.Вставить("ИспользоватьПриОткрытии", Ложь); СтруктураНастройки.Вставить("СохранятьАвтоматически", Ложь); КонецЕсли; СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь")); СохраненнаяНастройка = Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки()); СтруктураНастройки.Вставить("СохраненнаяНастройка", СохраненнаяНастройка); ВозвращаемаяСтруктура = УниверсальныеМеханизмы.СохранениеНастроек(СтруктураНастройки); Если ВозвращаемаяСтруктура <> Неопределено Тогда мТекущаяНастройка = ВозвращаемаяСтруктура; Иначе мТекущаяНастройка = СтруктураНастройки; КонецЕсли; КонецПроцедуры Процедура ВосстановитьНастройки() Экспорт СтруктураНастройки = Новый Структура; СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь")); СтруктураНастройки.Вставить("ИмяОбъекта", Строка(ЭтотОбъект)); СтруктураНастройки.Вставить("НаименованиеНастройки", ?(мТекущаяНастройка = Неопределено, Неопределено, мТекущаяНастройка.НаименованиеНастройки)); ВозвращаемаяСтруктура = УниверсальныеМеханизмы.ВосстановлениеНастроек(СтруктураНастройки); Если ВозвращаемаяСтруктура <> Неопределено Тогда мТекущаяНастройка = ВозвращаемаяСтруктура; КомпоновщикНастроек.ЗагрузитьНастройки(мТекущаяНастройка.СохраненнаяНастройка.Получить()); КонецЕсли; КонецПроцедуры |