Андрей Волков
Во всех проектах существует таблица «настроек» или «значений по умолчанию». Называется по-разному, но суть одна: таблица хранит некоторые данные, которые в системе используются как значения по умолчанию: ставка НДС, валюта по умолчанию, основной почтовый адрес и т.д.
Самый простой доступ к этой таблице – не через реляции, а через 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 при обработке цифровых значений.