Здравствуйте.
Подскажите пожалуйста как на клиенте и на сервере получить и установить значения системных настроек?
Нравится
Добрый день.
На сервере:
//получить значение системной настройки var ss=Terrasoft.Core.Configuration.SysSettings.GetValue(UserConnection, "SysSettingsName"); //Установить значение системной настройки Terrasoft.Core.Configuration.SysSettings.SetValue(UserConnection, "SysSettingsName","SysSettingsValue"); //Установить значение системной настройки без учета прав Terrasoft.Core.Configuration.SysSettings.SetValue(UserConnection, UserConnection.RootAdminUnitGroupId, "SysSettingsName", "SysSettingsValue");
На клиенте:
//значение системной настройки Terrasoft.SysSettings.querySysSettingsItem("MaxDayTransitionCount", function(value) { maxDayTransitionCount = value; }, this); //Часто возникает задача получить контакт текущего пользователя var userContact=Terrasoft.SysValue.CURRENT_USER_CONTACT.value,
Задача установить значение системной настройки на клиенте возникает крайне редко, поэтому при необходимости можно написать Update для таблицы SysSettingsValue
После установки значения системной настройки методом
Terrasoft.Core.Configuration.SysSettings.SetValue(UserConnection, UserConnection.RootAdminUnitGroupId,
"SysSettingsName", "SysSettingsValue")
через раздел системные настройки изменить значение не получается (под админом), сохранение происходит без ошибок в консоли, но открыв заново - значение остается тем же. Системная настройка целочисленного типа.
UPD: В таблице SysSettingsValue добавляется второе значение для системной настройки (с полем IsDef = 0) измененной командой выше, когда пользователь меняет значение через раздел оно изменяться у настройки с параметром IsDef=1. Как сделать что бы пользователь(администратор) мог менять значение системной настройки, а не значение по умолчанию.
Версия 7.7.0.2325
Можете попробовать воспользоваться ESQ - http://academy.terrasoft.ru/documents/docs/technic/SDK/7.7.0/UsingEntit…. Это серверная, на клиенте почти похожий алгоритм.