Как хранить предопределенные значения или список значений?
Можно добавить константу в метаданные и не забыть дать на нее права всем кому потребуется...
Можно в коде прописать НайтиПоНаименованию(...), НайтиПоКоду(...) и надеяться, что наименование или код не поменяется...
Можно добавить предопределенное значение в объект метаданных, но такой элемент уже есть в базе...
Для хранения подобных констант будем использовать справочник. Где наименование будет название константы, а в табличной части будут храниться значения.
Чем удобен данный справочник:
Права выдаются единоразово для нужных ролей.
Получать константу сразу в коде внешних обработок и отчетов без обновления конфигурации.
Получать константы без обращения к базе данных (общий модуль с повторно используемыми возвращаемых значений)
Примеры использования:
в коде:
МояОрганизация = Справочники.БДВ_Константы.ПолучитьЗначениеКонстанты("Моя организация", 1);
СписокПользователей = Справочники.БДВ_Константы.ПолучитьЗначениеКонстанты("СписокПользователей", 0);
Второй параметр указывает в каком виде возвращается значение:
0 - список значений,
1 - текущее значение.
в запросе:
"ВЫБРАТЬ Первые 1
| К.Значение КАК Значение
|ИЗ
| Справочник.БДВ_Константы.Значения КАК К
|ГДЕ
| К.НаименованиеКонстанты = ""Моя организация"""
установка константы в коде:
Справочники.БДВ_Константы.УстановитьЗначениеКонстанты("Моя организация", Справочники.Организация.НайтиПоКоду("000001"));
СписокПользователей = Новый СписокЗначений;
СписокПользователей.Добавить(ПараметрвСеанса.ТекущийПользователь);
Справочники.БДВ_Константы.УстановитьЗначениеКонстанты("СписокПользователей", СписокПользователей, Истина);
Наименование константы может содержать любые символы.
При записи константы проверяется уникальность наименования, второй с таким же именем создать нельзя.
Перед записью проверяется наличие значений в других константах и выводится список констант, где эти значения присутствует.
Константы можно группировать по папкам.
Конфигурация тестировалась на платформе 8.3.10.2580.