Читается известный ключ платформенных параметров из системного хранилища. Отсутствие записи не заменяется новым профилем и не считается ошибкой индекса.
Где и как запускать
Полный серверный общий модуль собственной учебной конфигурации. Не модуль запуска рабочей базы.
Подготовка
Создайте серверный общий модуль УчебныеНастройкиКлиента в отдельной своей конфигурации УчебнаяКонфигурацияСинтаксиса. Флаг Сервер включён. Вставьте весь код одного выбранного урока.
Из серверной команды собственной обработки вызовите УчебныеНастройкиКлиента.ВыполнитьПример(). Используйте платформу 8.5.1.1343: новые свойства 8.5 отсутствуют на старых релизах.
Для первого опыта вручную сохраните настройки клиентского приложения через его стандартное окно параметров и заново войдите своим учебным пользователем. Отсутствие сохранённой настройки тоже обрабатывается.
Во всех опытах имя другого пользователя не передаётся. Первый урок только читает системный ключ текущего пользователя; следующие не перезаписывают этот системный ключ.
Последний урок сохраняет один собственный профиль под учебным ключом в ХранилищеОбщихНастроек. Нужна роль с правом СохранениеДанныхПользователя; не включайте привилегированный режим ради опыта.
Проверка объекта и его сериализации не доказывает видимое применение темы, масштаба или расположения панелей. Эксперименты с внешним видом выполняйте только в собственной учебной базе.
Процедура ВыполнитьПример() Экспорт
Профиль = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиКлиентскогоПриложения", "");
Если Профиль = Неопределено Тогда
Сообщить("У текущего учебного пользователя ещё нет сохранённого профиля; стандартные параметры не изменены");
Возврат;
КонецЕсли;
Снимок = СнимокСвоегоПрофиля(Профиль);
Сообщить(Снимок.Количество() = 10);
Для Каждого Настройка Из Снимок Цикл
Сообщить(Настройка.Ключ + ": " + Строка(Настройка.Значение));
КонецЦикла;
Сообщить("Это сохранённые параметры, а не измерение фактической раскладки открытого окна");
КонецПроцедуры
Функция СнимокСвоегоПрофиля(Профиль)
Если ТипЗнч(Профиль) <> Тип("НастройкиКлиентскогоПриложения") Тогда
ВызватьИсключение "Ожидался объект настроек клиентского приложения";
КонецЕсли;
Снимок = Новый Структура;
Снимок.Вставить("ВариантИнтерфейсаКлиентскогоПриложения", Профиль.ВариантИнтерфейсаКлиентскогоПриложения);
Снимок.Вставить("ВариантМасштабаКлиентскогоПриложения", Профиль.ВариантМасштабаКлиентскогоПриложения);
Снимок.Вставить("ВариантМасштабаФормКлиентскогоПриложения", Профиль.ВариантМасштабаФормКлиентскогоПриложения);
Снимок.Вставить("ВариантОткрытияОконКлиентскогоПриложения", Профиль.ВариантОткрытияОконКлиентскогоПриложения);
Снимок.Вставить("ВариантОтображенияОсновногоОкнаКлиентскогоПриложения", Профиль.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения);
Снимок.Вставить("ОтображатьПанелиНавигацииИДействий", Профиль.ОтображатьПанелиНавигацииИДействий);
Снимок.Вставить("ОтображатьПанельРазделов", Профиль.ОтображатьПанельРазделов);
Снимок.Вставить("РежимОткрытияФормПриложения", Профиль.РежимОткрытияФормПриложения);
Снимок.Вставить("СкоростьКлиентскогоСоединения", Профиль.СкоростьКлиентскогоСоединения);
Снимок.Вставить("ТемаКлиентскогоПриложения", Профиль.ТемаКлиентскогоПриложения);
Возврат Снимок;
КонецФункцииРазбор по шагам
Загрузить только пустой ключ настройки объекта Общее/НастройкиКлиентскогоПриложения для текущего пользователя.
Если записи нет, вывести объяснение и закончить, не сохранять значения по умолчанию вместо отсутствующей записи.
При существующей записи проверить реальный тип и собрать десять параметров в обычную структуру.
Вывести имена и фактические значения; ВариантМасштабаКлиентскогоПриложения только читается.
Сопоставить с собственными сохранёнными параметрами. Режим запуска, клиент и параметры конфигурации также влияют на фактический внешний вид.
Как проверить результат
При наличии записи первая проверка Истина, затем десять строк с именами параметров.
При отсутствии записи — понятное сообщение; ни новый профиль, ни сохранение в системном хранилище не выполняются.
Ожидаемый результат
Получен реальный снимок сохранённых параметров своего пользователя без изменения профиля.
На что обратить внимание
Системный ключ подтверждён чтением кода КА2 Progress: CommonModules/ПользователиСлужебный/Ext/Module.bsl, процедура УстановитьНачальныеНастройки. БСП не вызывается, зависимости от этого общего модуля нет.
Не подставляйте имя чужого пользователя: это другая задача и потребует дополнительных прав.
Создание нового НастройкиКлиентскогоПриложения не заменяет загрузку существующей сохранённой записи.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.