Методы сохранения / восстановления настроек
Задача: Необходим механизм, позволяющий сохранять произвольные пользовательские данные (настройки). Настройки относятся к внешней обработке, вариант с изменением конфигурации не рассматривается. План видов характеристик трогать тоже нет желания.
В рамках заметки предложено два вариант работы с настройками пользователя.
- Описание
- Подробнее
Описание
Ваиант 1
Сохранение настроек:
ИмяНастройки = «ТЕСТ»;
ЗначениеНастройки = Новый Структура(«Это настройки произвольного типа, к примеру структура», «»);
СохранитьЗначение(ИмяНастройки, ЗначениеНастройки) ;
- ИмяНастройки — ключ настроек, тип “строка”.
- значение — значение произвольного типа, возможность заманчивая, но не стоит слишком увлекаться и сохранять все подряд.
Восстановление настроек:
ИмяНастройки = «ТЕСТ»;
ЗначениеНастройки = ВосстановитьЗначение(ИмяНастройки);
Если ЗначениеНастройки = Неопределено Тогда
Сообщить(«Нет настройки с ключем ТЕСТ!»);
КонецЕсли;
- ИмяНастройки — ключ настройки, тип “строка”
- возвращает значение произвольного типа, сохраненное ранее.Если восстановить не удалось, возвращает “Неопределено”
Плюсы
- прост в использовании
- возможно сохранить настройки произвольного типа текущего пользователя в текущей информационной базе
Минусы
Только толстый клиент
- Возможно работать ТОЛЬКО с настройками текущего пользователя
Вариант 2
Использование объекта ХранилищеОбщихНастроек. Считаю этот вариант наиболее удобным и гибким.
Объект доступен в глобальном контексте. Содержит следующие методы:
Сохранение настроек:
// ключи могут быть произвольными строками
КлючОбъекта = «MIKO«;
КлючНастроек = «ПанельТелефонии»;
// настройки могут быть произвольного типа
Настройки = Новый Структура(«Это настройки произвольного типа, к примеру структура», «»);
ИмяПользователя = ИмяПользователя();
// имя пользователя — пользователь владелец настроек, если параметр не указать,
// то настройки будут сохранены для ТЕКУЩЕГО пользователя
ИмяПользователя = ИмяПользователя();
ХранилищеОбщихНастроек.Cохранить(КлючОбъекта, КлючНастроек, Настройки, , ИмяПользователя);
