Бывает часто нужно сделать сохранение реквизитов в какой-нибудь обработке, если реквизитов мало, то это не так трудно, например, пишешь:
СохранитьЗначение(«Дата», Дата);
а потом при открытии
Дата = ВосстановитьЗначение(«Дата»);
Но! Бывает реквизитов много и они часто меняются в процессе разработки, что создаёт лишнюю работу по исправлению комбинаций Сохранить/Восстановить.
Вышеперечисленные обстоятельства подтолкнули на создание процедур автоматического сохранения значений реквизитов.
//-автосохранятор
Процедура автосохранятор_СохранитьРеквизиты(Объект)
М = Объект.Метаданные();
имя = М.Имя;
для каждого Рекв из М.Реквизиты цикл
Имя_сохр = М.Имя+«__»+Рекв.Имя;
СохранитьЗначение(Имя_сохр,Объект[Рекв.Имя]);
КонецЦикла;
КонецПроцедуры
Процедура автосохранятор_ВостановитьРеквизиты(Объект)
М = Объект.Метаданные();
имя = М.Имя;
для каждого Рекв из М.Реквизиты цикл
Имя_сохр = М.Имя+«__»+Рекв.Имя;
//СохранитьЗначение(Имя_сохр,Объект[Рекв.Имя]);
Объект[Рекв.Имя] = ВосстановитьЗначение(Имя_сохр);
КонецЦикла;
КонецПроцедуры
В качестве примера использования этих функций выложил обработочку для 8.2, но сам код будет работать и на 8.1, и 8.0
Зачем это нужно? Проще же в свойствах формы настроить автосохранение и сохраняемые свойства.
Так наверное быстрее
1. делать лучше через структуру, чтобы была возможность предусмотреть ошибочные настройки
2. для типовых лучше хранить в «СохраненныеНастройки», любой шифт/стрл+ф5 и «пока-пока» все настройки
при это можно предусмотреть в разрезе пользователей, если это критично по настройкам
а для форм и скорости лучше в таких случаях настройками сохранения платформы воспользоваться — там есть галочка «установить все».
*занудствует 🙂
Платформа 8.2.14.540 . ( обычная форма, не УФ)
2 что должно произойти при шифт/стрл+ф5
3 Атосохранение в форме. Не могу найти галочку «установить все»., да и для отдельного реквизита тоже не могу