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