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