Содержит настройки клиентского приложения. Следующие настройки редактируются только интерактивно, работа с ними во встроенном языке не предусмотрена: отображать команду "Функции для технического специалиста"; отладка при перезапуске; устанавливать режим низкой скорости соединения при запуске (для веб-клиента); свойство "Внешняя" диалога "Получить ссылку".
Полное описание, параметры и ограничения
НастройкиКлиентскогоПриложения (ClientSettings)
НастройкиКлиентскогоПриложения (ClientSettings)
Доступен, начиная с версии 8.2.
Свойства:
ВариантИнтерфейсаКлиентскогоПриложения (ClientApplicationInterfaceVariant)
ВариантМасштабаКлиентскогоПриложения (ClientApplicationScaleVariant)
ВариантМасштабаФормКлиентскогоПриложения (ClientApplicationFormScaleVariant)
ВариантОткрытияОконКлиентскогоПриложения (ClientApplicationWindowsOpenVariant)
ВариантОтображенияОсновногоОкнаКлиентскогоПриложения (MainClientApplicationWindowInterfaceVariant)
ОтображатьПанелиНавигацииИДействий (ShowNavigationAndActionsPanels)
ОтображатьПанельРазделов (ShowSectionsPanel)
РежимОткрытияФормПриложения (ApplicationFormsOpenningMode)
СкоростьКлиентскогоСоединения (ClientConnectionSpeed)
ТемаКлиентскогоПриложения (ClientApplicationTheme)
Конструкторы:
По умолчанию
Описание:
Содержит настройки клиентского приложения.
Следующие настройки редактируются только интерактивно, работа с ними во встроенном языке не предусмотрена:
отображать команду "Функции для технического специалиста";
отладка при перезапуске;
устанавливать режим низкой скорости соединения при запуске (для веб-клиента);
свойство "Внешняя" диалога "Получить ссылку".
Доступность:
Сервер, толстый клиент.
Сериализуется.
Использование в версии:
Доступен, начиная с версии 8.2.
Описание изменено в версии 8.3.27.
Методическая информация
Практические примеры
Собрать свой профиль 8.5 и изменить независимую копию для сравнения
Один объект описывает светлый профиль с навигацией слева. Его собственное внутреннее представление читается обратно и копия меняется на тёмный вариант с навигацией сверху.
Где и как запускать
Полный серверный общий модуль собственной учебной конфигурации. Не модуль запуска рабочей базы.
Подготовка
Создайте серверный общий модуль УчебныеНастройкиКлиента в отдельной своей конфигурации УчебнаяКонфигурацияСинтаксиса. Флаг Сервер включён. Вставьте весь код одного выбранного урока.
Из серверной команды собственной обработки вызовите УчебныеНастройкиКлиента.ВыполнитьПример(). Используйте платформу 8.5.1.1343: новые свойства 8.5 отсутствуют на старых релизах.
Для первого опыта вручную сохраните настройки клиентского приложения через его стандартное окно параметров и заново войдите своим учебным пользователем. Отсутствие сохранённой настройки тоже обрабатывается.
Во всех опытах имя другого пользователя не передаётся. Первый урок только читает системный ключ текущего пользователя; следующие не перезаписывают этот системный ключ.
Последний урок сохраняет один собственный профиль под учебным ключом в ХранилищеОбщихНастроек. Нужна роль с правом СохранениеДанныхПользователя; не включайте привилегированный режим ради опыта.
Проверка объекта и его сериализации не доказывает видимое применение темы, масштаба или расположения панелей. Эксперименты с внешним видом выполняйте только в собственной учебной базе.
Процедура ВыполнитьПример() Экспорт
Оригинал = СоздатьСвойПрофиль85();
До = СнимокСвоегоПрофиля(Оригинал);
СтрокаСвоегоПрофиля = ЗначениеВСтрокуВнутр(Оригинал);
Копия = ЗначениеИзСтрокиВнутр(СтрокаСвоегоПрофиля);
Если ТипЗнч(Копия) <> Тип("НастройкиКлиентскогоПриложения") Тогда
ВызватьИсключение "Сериализация собственного профиля не сохранила тип";
КонецЕсли;
Копия.ТемаКлиентскогоПриложения = ТемаКлиентскогоПриложения.Темная;
Копия.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения = ВариантОтображенияОсновногоОкнаКлиентскогоПриложения.НавигацияСверху;
После = СнимокСвоегоПрофиля(Копия);
Сообщить(До.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5);
Сообщить(До.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Обычный);
Сообщить(До.ТемаКлиентскогоПриложения = ТемаКлиентскогоПриложения.Светлая);
Сообщить(После.ТемаКлиентскогоПриложения = ТемаКлиентскогоПриложения.Темная);
Сообщить(До.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения = ВариантОтображенияОсновногоОкнаКлиентскогоПриложения.НавигацияСлева);
Сообщить(После.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения = ВариантОтображенияОсновногоОкнаКлиентскогоПриложения.НавигацияСверху);
Сообщить(До.ВариантМасштабаКлиентскогоПриложения = После.ВариантМасштабаКлиентскогоПриложения);
Сообщить(Оригинал.ТемаКлиентскогоПриложения = ТемаКлиентскогоПриложения.Светлая);
Сообщить(Оригинал.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения = ВариантОтображенияОсновногоОкнаКлиентскогоПриложения.НавигацияСлева);
Сообщить("Проверены объекты профилей, не видимое применение к текущему окну");
КонецПроцедуры
Функция СоздатьСвойПрофиль85()
Профиль = Новый НастройкиКлиентскогоПриложения;
Профиль.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5;
Профиль.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Обычный;
Профиль.ВариантОткрытияОконКлиентскогоПриложения = ВариантОткрытияОконКлиентскогоПриложения.ОткрыватьДанныеВДиалоговыхОкнах;
Профиль.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения = ВариантОтображенияОсновногоОкнаКлиентскогоПриложения.НавигацияСлева;
Профиль.ОтображатьПанелиНавигацииИДействий = Ложь;
Профиль.ОтображатьПанельРазделов = Истина;
Профиль.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.Закладки;
Профиль.СкоростьКлиентскогоСоединения = СкоростьКлиентскогоСоединения.Обычная;
Профиль.ТемаКлиентскогоПриложения = ТемаКлиентскогоПриложения.Светлая;
Возврат Профиль;
КонецФункции
Функция СнимокСвоегоПрофиля(Профиль)
Если ТипЗнч(Профиль) <> Тип("НастройкиКлиентскогоПриложения") Тогда
ВызватьИсключение "Ожидался объект настроек клиентского приложения";
КонецЕсли;
Снимок = Новый Структура;
Снимок.Вставить("ВариантИнтерфейсаКлиентскогоПриложения", Профиль.ВариантИнтерфейсаКлиентскогоПриложения);
Снимок.Вставить("ВариантМасштабаКлиентскогоПриложения", Профиль.ВариантМасштабаКлиентскогоПриложения);
Снимок.Вставить("ВариантМасштабаФормКлиентскогоПриложения", Профиль.ВариантМасштабаФормКлиентскогоПриложения);
Снимок.Вставить("ВариантОткрытияОконКлиентскогоПриложения", Профиль.ВариантОткрытияОконКлиентскогоПриложения);
Снимок.Вставить("ВариантОтображенияОсновногоОкнаКлиентскогоПриложения", Профиль.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения);
Снимок.Вставить("ОтображатьПанелиНавигацииИДействий", Профиль.ОтображатьПанелиНавигацииИДействий);
Снимок.Вставить("ОтображатьПанельРазделов", Профиль.ОтображатьПанельРазделов);
Снимок.Вставить("РежимОткрытияФормПриложения", Профиль.РежимОткрытияФормПриложения);
Снимок.Вставить("СкоростьКлиентскогоСоединения", Профиль.СкоростьКлиентскогоСоединения);
Снимок.Вставить("ТемаКлиентскогоПриложения", Профиль.ТемаКлиентскогоПриложения);
Возврат Снимок;
КонецФункцииРазбор по шагам
Создать собственный профиль фабрикой: все девять изменяемых параметров назначены явно, десятый только читается.
Сериализовать только свой объект и сразу восстановить его из своей строки. Не принимать эту строку из HTTP, файла или пользовательского ввода.
В независимой копии изменить тему и направление навигации; исходный объект не присваивать копии.
Сопоставить два снимка и снова прочитать оригинал, чтобы подтвердить независимость объектов.
Смена значения темы в объекте не используется как доказательство изменения цветов открытого приложения.
Как проверить результат
Девять булевых сообщений Истина: обе версии отличаются только выбранными темой и положением навигации; оригинал сохранился.
ВариантМасштабаКлиентскогоПриложения одинаков до и после, присваивания этому свойству нет.
Ожидаемый результат
Сформированы и сравнены полноценные профили, а не универсальная обёртка отдельного свойства.
На что обратить внимание
Внутренняя строка — формат платформы, не JSON и не стабильный публичный контракт обмена.
ЗначениеИзСтрокиВнутр здесь получает исключительно только что созданное собственное представление; не десериализуйте неизвестный внешний текст.
Настройки 8.5 не гарантируют переход рабочего приложения на другой интерфейс: действуют ограничения конфигурации и клиента.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Разобрать профиль Такси и отличить режим форм от новых окон 8.5
На отдельном собственном объекте показаны панели старого интерфейса, компактные формы и начальная скорость клиентского соединения.
Где и как запускать
Полный серверный общий модуль собственной учебной конфигурации. Не модуль запуска рабочей базы.
Подготовка
Создайте серверный общий модуль УчебныеНастройкиКлиента в отдельной своей конфигурации УчебнаяКонфигурацияСинтаксиса. Флаг Сервер включён. Вставьте весь код одного выбранного урока.
Из серверной команды собственной обработки вызовите УчебныеНастройкиКлиента.ВыполнитьПример(). Используйте платформу 8.5.1.1343: новые свойства 8.5 отсутствуют на старых релизах.
Для первого опыта вручную сохраните настройки клиентского приложения через его стандартное окно параметров и заново войдите своим учебным пользователем. Отсутствие сохранённой настройки тоже обрабатывается.
Во всех опытах имя другого пользователя не передаётся. Первый урок только читает системный ключ текущего пользователя; следующие не перезаписывают этот системный ключ.
Последний урок сохраняет один собственный профиль под учебным ключом в ХранилищеОбщихНастроек. Нужна роль с правом СохранениеДанныхПользователя; не включайте привилегированный режим ради опыта.
Проверка объекта и его сериализации не доказывает видимое применение темы, масштаба или расположения панелей. Эксперименты с внешним видом выполняйте только в собственной учебной базе.
Процедура ВыполнитьПример() Экспорт
Профиль = СоздатьСвойПрофиль85();
Профиль.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Такси;
Профиль.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Компактный;
Профиль.ОтображатьПанелиНавигацииИДействий = Истина;
Профиль.ОтображатьПанельРазделов = Истина;
Профиль.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.ОтдельныеОкна;
Профиль.СкоростьКлиентскогоСоединения = СкоростьКлиентскогоСоединения.Низкая;
Снимок = СнимокСвоегоПрофиля(Профиль);
Сообщить(Снимок.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Такси);
Сообщить(Снимок.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Компактный);
Сообщить(Снимок.ОтображатьПанелиНавигацииИДействий И Снимок.ОтображатьПанельРазделов);
Сообщить(Снимок.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.ОтдельныеОкна);
Сообщить(Снимок.СкоростьКлиентскогоСоединения = СкоростьКлиентскогоСоединения.Низкая);
Сообщить("Отдельная настройка 8.5, не режим форм: " + Строка(Снимок.ВариантОткрытияОконКлиентскогоПриложения));
Сообщить("Масштаб клиента только читаем: " + Строка(Снимок.ВариантМасштабаКлиентскогоПриложения));
КонецПроцедуры
Функция СоздатьСвойПрофиль85()
Профиль = Новый НастройкиКлиентскогоПриложения;
Профиль.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5;
Профиль.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Обычный;
Профиль.ВариантОткрытияОконКлиентскогоПриложения = ВариантОткрытияОконКлиентскогоПриложения.ОткрыватьДанныеВДиалоговыхОкнах;
Профиль.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения = ВариантОтображенияОсновногоОкнаКлиентскогоПриложения.НавигацияСлева;
Профиль.ОтображатьПанелиНавигацииИДействий = Ложь;
Профиль.ОтображатьПанельРазделов = Истина;
Профиль.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.Закладки;
Профиль.СкоростьКлиентскогоСоединения = СкоростьКлиентскогоСоединения.Обычная;
Профиль.ТемаКлиентскогоПриложения = ТемаКлиентскогоПриложения.Светлая;
Возврат Профиль;
КонецФункции
Функция СнимокСвоегоПрофиля(Профиль)
Если ТипЗнч(Профиль) <> Тип("НастройкиКлиентскогоПриложения") Тогда
ВызватьИсключение "Ожидался объект настроек клиентского приложения";
КонецЕсли;
Снимок = Новый Структура;
Снимок.Вставить("ВариантИнтерфейсаКлиентскогоПриложения", Профиль.ВариантИнтерфейсаКлиентскогоПриложения);
Снимок.Вставить("ВариантМасштабаКлиентскогоПриложения", Профиль.ВариантМасштабаКлиентскогоПриложения);
Снимок.Вставить("ВариантМасштабаФормКлиентскогоПриложения", Профиль.ВариантМасштабаФормКлиентскогоПриложения);
Снимок.Вставить("ВариантОткрытияОконКлиентскогоПриложения", Профиль.ВариантОткрытияОконКлиентскогоПриложения);
Снимок.Вставить("ВариантОтображенияОсновногоОкнаКлиентскогоПриложения", Профиль.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения);
Снимок.Вставить("ОтображатьПанелиНавигацииИДействий", Профиль.ОтображатьПанелиНавигацииИДействий);
Снимок.Вставить("ОтображатьПанельРазделов", Профиль.ОтображатьПанельРазделов);
Снимок.Вставить("РежимОткрытияФормПриложения", Профиль.РежимОткрытияФормПриложения);
Снимок.Вставить("СкоростьКлиентскогоСоединения", Профиль.СкоростьКлиентскогоСоединения);
Снимок.Вставить("ТемаКлиентскогоПриложения", Профиль.ТемаКлиентскогоПриложения);
Возврат Снимок;
КонецФункцииРазбор по шагам
Создать свой профиль и переопределить параметры для сравнения старого Такси с новым 8.5.
Задать панели, компактный масштаб форм и ОтдельныеОкна. Проверить значения из фактического снимка.
СкоростьКлиентскогоСоединения — режим запуска веб-клиента, не количество мегабит и не результат сетевого замера.
ВариантОткрытияОконКлиентскогоПриложения относится к окнам новых режимов 8.5; не считать его синонимом РежимОткрытияФормПриложения.
Прочитать общий масштаб клиента отдельно от изменяемого масштаба форм.
Как проверить результат
Пять сообщений Истина, затем две фактические настройки: новый вариант окон и только читаемый масштаб клиента.
Нет открытия формы, изменения настроек запуска рабочей базы или попытки измерить сеть.
Ожидаемый результат
Параметры старого интерфейса изучены отдельным опытом без смешения похожих названий.
На что обратить внимание
Не все свойства имеют видимый эффект в каждом варианте интерфейса.
Режим низкой скорости нельзя включать незаметно пользователям рабочей конфигурации ради учебного примера.
Нельзя программно редактировать через этот объект Функции для технического специалиста и отладку при перезапуске: таких свойств в контракте нет.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.