Внедрение настроек приложения
Хорошая поделка состоит не только из желудей и пластилина, но и обвешана маленькими приятными глазу детальками. Причем разные поделки, собранные по одному и тому же чертежу, могут только этими детальками и отличаться.
В примере выше мы передавали Обновлятору1С данные авторизации через переменные среды, читающиеся с помощью &Дуба
и его &Завязей
. Но это не единственный способ работы с настройками приложения.
Осень содержит в себе механизм передачи желудю настроек приложения напрямую из конфигурационного файла. Для этого служит аннотация &Деталька
. &Пластилин
помогает связать между собой несколько полноценных &Желудей
, тогда как &Деталька
налепляется сразу на нужный &Желудь
.
Поддержка загрузки настроек из переменных окружения и аргументов командной строки в ближайших планах разработки. Еще год-два и точно запилим, честно-честно!
Конфигурационный файл может быть в виде json
, yaml
или ini
файла, называется autumn-properties.json
/autumn-properties.yml
/autumn-properties.ini
соответственно и ищется ОСенью в каталоге запуска приложения или в подкаталоге src
.
{
"Логин": "user",
"Пароль": "pass",
"ПрочиеНастройки": {
"Настроение": "Хорошее"
}
}
А вот так их можно использовать в жёлуде:
&Деталька
Перем Логин;
&Деталька
Перем Пароль;
&Деталька("ПрочиеНастройки.Настроение")
Перем Настроение;
&Деталька(Значение = "ПрочиеНастройки.ОтветНаГлавныйВопросЖизниВселеннойИВсегоОстального", ЗначениеПоУмолчанию = 42)
Перем Ответ;
&Желудь
Процедура ПриСозданииОбъекта()
КонецПроцедуры
Вы можете добавлять к желудю любые детальки вне зависимости от того, есть они в конфигурационном файле или нет.
По умолчанию "ОСень" будет пытаться найти значение настройки по имени параметра конструктора: в json есть параметры "Логин" и "Пароль", в конструкторе есть параметры "Логин" и "Пароль", искра, буря, безумие!
JSON обычно содержит вложенные объекты и массивы. Путь к настройкам в таких вложенных структурах можно указать в параметре аннотации &Деталька
в формате библиотеки configor, используя точки для объектов и квадратные скобки для массивов.
Не обязательно заставлять пользователя указывать все настройки в конфигурационном файле, если ему могут подойти значения настроек по умолчанию. Для указания значения по умолчанию в &Детальке
есть параметр ЗначениеПоУмолчанию
. Поразительно, не правда ли?