logo

GetPreference. Получение значений из записи настроек

Андрей Волков

Во всех проектах существует таблица «настроек» или «значений по умолчанию». Называется по-разному, но суть одна: таблица хранит некоторые данные, которые в системе используются как значения по умолчанию: ставка НДС, валюта по умолчанию, основной почтовый адрес и т.д.

Самый простой доступ к этой таблице – не через реляции, а через SQL запрос.

Используем кастом-функцию GetPreference(field)

Let(
~Name = If(PatternCount(field; "::"); GetValue(Substitute(field; "::"; ¶);2) ; field);
ExecuteSQL("Select " & Quote(~Name) & " FROM Settings"; ""; "")
)

где Settings – имя справочной таблицы, а field – искомое имя поля из этой таблицы.

Обращение к кастом функции может быть по имени поля и по ссылке на поле:

GetPreference(“NDS”) – указывается имя поля, возвращается ставка НДС

GetPreference(GetFieldName(Settings::NDS)) – указывается ссылка, что надежнее.

Преимущества: таблицу Settings не нужно линковать к каждой группе. Обращение к ней всегда стандартно.

Возможные проблемы:  дробные числа передаются как текст, и может неправильно распознаваться формат. То есть 3,14 может быть прочитано в итоге как 314. Так что не забудьте использовать функцию Substitute при обработке цифровых значений.

 

 

 

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

− 3 = 2