Бывает часто нужно сделать сохранение реквизитов в какой-нибудь обработке, если реквизитов мало, то это не так трудно, например, пишешь:
СохранитьЗначение("Дата", Дата);
а потом при открытии
Дата = ВосстановитьЗначение("Дата");
Но! Бывает реквизитов много и они часто меняются в процессе разработки, что создаёт лишнюю работу по исправлению комбинаций Сохранить/Восстановить.
Вышеперечисленные обстоятельства подтолкнули на создание процедур автоматического сохранения значений реквизитов.
//-автосохранятор
Процедура автосохранятор_СохранитьРеквизиты(Объект)
М = Объект.Метаданные();
имя = М.Имя;
для каждого Рекв из М.Реквизиты цикл
Имя_сохр = М.Имя+"__"+Рекв.Имя;
СохранитьЗначение(Имя_сохр,Объект[Рекв.Имя]);
КонецЦикла;
КонецПроцедуры
Процедура автосохранятор_ВостановитьРеквизиты(Объект)
М = Объект.Метаданные();
имя = М.Имя;
для каждого Рекв из М.Реквизиты цикл
Имя_сохр = М.Имя+"__"+Рекв.Имя;
//СохранитьЗначение(Имя_сохр,Объект[Рекв.Имя]);
Объект[Рекв.Имя] = ВосстановитьЗначение(Имя_сохр);
КонецЦикла;
КонецПроцедуры
В качестве примера использования этих функций выложил обработочку для 8.2, но сам код будет работать и на 8.1, и 8.0