Разобрать профиль Такси и отличить режим форм от новых окон 8.5

Учебные задачи

На отдельном собственном объекте показаны панели старого интерфейса, компактные формы и начальная скорость клиентского соединения.

Где и как запускать

Полный серверный общий модуль собственной учебной конфигурации. Не модуль запуска рабочей базы.

Подготовка

  1. Создайте серверный общий модуль УчебныеНастройкиКлиента в отдельной своей конфигурации УчебнаяКонфигурацияСинтаксиса. Флаг Сервер включён. Вставьте весь код одного выбранного урока.

  2. Из серверной команды собственной обработки вызовите УчебныеНастройкиКлиента.ВыполнитьПример(). Используйте платформу 8.5.1.1343: новые свойства 8.5 отсутствуют на старых релизах.

  3. Для первого опыта вручную сохраните настройки клиентского приложения через его стандартное окно параметров и заново войдите своим учебным пользователем. Отсутствие сохранённой настройки тоже обрабатывается.

  4. Во всех опытах имя другого пользователя не передаётся. Первый урок только читает системный ключ текущего пользователя; следующие не перезаписывают этот системный ключ.

  5. Последний урок сохраняет один собственный профиль под учебным ключом в ХранилищеОбщихНастроек. Нужна роль с правом СохранениеДанныхПользователя; не включайте привилегированный режим ради опыта.

  6. Проверка объекта и его сериализации не доказывает видимое применение темы, масштаба или расположения панелей. Эксперименты с внешним видом выполняйте только в собственной учебной базе.

Процедура ВыполнитьПример() Экспорт
    Профиль = СоздатьСвойПрофиль85();
    Профиль.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Такси;
    Профиль.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Компактный;
    Профиль.ОтображатьПанелиНавигацииИДействий = Истина;
    Профиль.ОтображатьПанельРазделов = Истина;
    Профиль.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.ОтдельныеОкна;
    Профиль.СкоростьКлиентскогоСоединения = СкоростьКлиентскогоСоединения.Низкая;
    Снимок = СнимокСвоегоПрофиля(Профиль);
    Сообщить(Снимок.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Такси);
    Сообщить(Снимок.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Компактный);
    Сообщить(Снимок.ОтображатьПанелиНавигацииИДействий И Снимок.ОтображатьПанельРазделов);
    Сообщить(Снимок.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.ОтдельныеОкна);
    Сообщить(Снимок.СкоростьКлиентскогоСоединения = СкоростьКлиентскогоСоединения.Низкая);
    Сообщить("Отдельная настройка 8.5, не режим форм: " + Строка(Снимок.ВариантОткрытияОконКлиентскогоПриложения));
    Сообщить("Масштаб клиента только читаем: " + Строка(Снимок.ВариантМасштабаКлиентскогоПриложения));
КонецПроцедуры

Функция СоздатьСвойПрофиль85()
    Профиль = Новый НастройкиКлиентскогоПриложения;
    Профиль.ВариантИнтерфейсаКлиентскогоПриложения = ВариантИнтерфейсаКлиентскогоПриложения.Версия8_5;
    Профиль.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Обычный;
    Профиль.ВариантОткрытияОконКлиентскогоПриложения = ВариантОткрытияОконКлиентскогоПриложения.ОткрыватьДанныеВДиалоговыхОкнах;
    Профиль.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения = ВариантОтображенияОсновногоОкнаКлиентскогоПриложения.НавигацияСлева;
    Профиль.ОтображатьПанелиНавигацииИДействий = Ложь;
    Профиль.ОтображатьПанельРазделов = Истина;
    Профиль.РежимОткрытияФормПриложения = РежимОткрытияФормПриложения.Закладки;
    Профиль.СкоростьКлиентскогоСоединения = СкоростьКлиентскогоСоединения.Обычная;
    Профиль.ТемаКлиентскогоПриложения = ТемаКлиентскогоПриложения.Светлая;
    Возврат Профиль;
КонецФункции

Функция СнимокСвоегоПрофиля(Профиль)
    Если ТипЗнч(Профиль) <> Тип("НастройкиКлиентскогоПриложения") Тогда
        ВызватьИсключение "Ожидался объект настроек клиентского приложения";
    КонецЕсли;
    Снимок = Новый Структура;
    Снимок.Вставить("ВариантИнтерфейсаКлиентскогоПриложения", Профиль.ВариантИнтерфейсаКлиентскогоПриложения);
    Снимок.Вставить("ВариантМасштабаКлиентскогоПриложения", Профиль.ВариантМасштабаКлиентскогоПриложения);
    Снимок.Вставить("ВариантМасштабаФормКлиентскогоПриложения", Профиль.ВариантМасштабаФормКлиентскогоПриложения);
    Снимок.Вставить("ВариантОткрытияОконКлиентскогоПриложения", Профиль.ВариантОткрытияОконКлиентскогоПриложения);
    Снимок.Вставить("ВариантОтображенияОсновногоОкнаКлиентскогоПриложения", Профиль.ВариантОтображенияОсновногоОкнаКлиентскогоПриложения);
    Снимок.Вставить("ОтображатьПанелиНавигацииИДействий", Профиль.ОтображатьПанелиНавигацииИДействий);
    Снимок.Вставить("ОтображатьПанельРазделов", Профиль.ОтображатьПанельРазделов);
    Снимок.Вставить("РежимОткрытияФормПриложения", Профиль.РежимОткрытияФормПриложения);
    Снимок.Вставить("СкоростьКлиентскогоСоединения", Профиль.СкоростьКлиентскогоСоединения);
    Снимок.Вставить("ТемаКлиентскогоПриложения", Профиль.ТемаКлиентскогоПриложения);
    Возврат Снимок;
КонецФункции

Разбор по шагам

  1. Создать свой профиль и переопределить параметры для сравнения старого Такси с новым 8.5.

  2. Задать панели, компактный масштаб форм и ОтдельныеОкна. Проверить значения из фактического снимка.

  3. СкоростьКлиентскогоСоединения — режим запуска веб-клиента, не количество мегабит и не результат сетевого замера.

  4. ВариантОткрытияОконКлиентскогоПриложения относится к окнам новых режимов 8.5; не считать его синонимом РежимОткрытияФормПриложения.

  5. Прочитать общий масштаб клиента отдельно от изменяемого масштаба форм.

Как проверить результат

  1. Пять сообщений Истина, затем две фактические настройки: новый вариант окон и только читаемый масштаб клиента.

  2. Нет открытия формы, изменения настроек запуска рабочей базы или попытки измерить сеть.

Ожидаемый результат

Параметры старого интерфейса изучены отдельным опытом без смешения похожих названий.

На что обратить внимание

  1. Не все свойства имеют видимый эффект в каждом варианте интерфейса.

  2. Режим низкой скорости нельзя включать незаметно пользователям рабочей конфигурации ради учебного примера.

  3. Нельзя программно редактировать через этот объект Функции для технического специалиста и отладку при перезапуске: таких свойств в контракте нет.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.