Решение проблемы отображения интерфейса Такси на экранах с маленьким разрешением


Решение возникшей проблемы при переходе с интерфейса 8.2 на интерфейс Такси на экранах с маленьким разрешением.

Т.к. база начинала писаться еще до появления интерфейса Такси, все формы были созданы под 8.2. Появилось желание перевести конфигурацию на интерфейс Такси, чтобы визуально она не отличалась от все остальных конфигураций используемых на Предприятия. Казалось бы, ничего сложного. Запретить в конфигураторе старый интерфейс и оставить только Такси. Так было и сделано. Не прошло и получаса с начала рабочего дня, как посыпался шквал звонков от недовольных пользователей ноутбуков, что все окна поплыли. Пришлось все вернуть обратно. Но идея перевести на Такси все равно засела в голове. Было найдено следующее решение.

Анализируем разрешение экрана и, если оно отличается от заданного в меньшую сторону, тогда включаем компактный режим, иначе режим обычный. Т.к. для применения параметров нужен перезапуск. Анализируем, произошла ли смена режимов отображения. Если она произошла, делаем перезапуск платформы. Для пользователя это выглядит как повторное появление окна выбора пользователя для входа в конфигурацию.

Процедура ПередНачаломРаботыСистемы(Отказ)

АдаптацияИнтерфейсаПодРазрешение()

КонецПроцедуры


Процедура АдаптацияИнтерфейсаПодРазрешение()
//
Экраны = ПолучитьИнформациюЭкрановКлиента();
ВысотаЭкрана = Экраны[0].Высота;
ШиринаЭкрана = Экраны[0].Ширина;
Если ВысотаЭкрана < 1080 ИЛИ ШиринаЭкрана < 1920 Тогда
Если КонсулНастройкаИнтерфейса.УстановитьКомпактныйРежим() Тогда
ЗавершитьРаботуСистемы(Истина);
ЗапуститьПриложение(КонсулНастройкаИнтерфейса.ПовторныйЗапускКонфигурации())
КонецЕсли;
Иначе
Если КонсулНастройкаИнтерфейса.УстановитьОбычныйРежим() Тогда
ЗавершитьРаботуСистемы(Истина);
ЗапуститьПриложение(КонсулНастройкаИнтерфейса.ПовторныйЗапускКонфигурации())
КонецЕсли;
КонецЕсли;
ОбновитьИнтерфейс();
КонецПроцедуры
Функция УстановитьКомпактныйРежим()  Экспорт
Настройки =  ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиКлиентскогоПриложения");
ТекущаяНастройка = Настройки.ВариантМасштабаФормКлиентскогоПриложения;
Настройки.ВариантМасштабаФормКлиентскогоПриложения = ВариантМасштабаФормКлиентскогоПриложения.Компактный;
ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиКлиентскогоПриложения",,Настройки);
Если ТекущаяНастройка <> ВариантМасштабаФормКлиентскогоПриложения.Компактный Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;

КонецФункции

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

Функция ПовторныйЗапускКонфигурации()Экспорт
СтрокаСоединенияИБ = СтрЗаменить(СтрокаСоединенияИнформационнойБазы(), """", """""");
ИмяПрограммыЗапуска = КаталогПрограммы() + ?(Прав(КаталогПрограммы(), 1) = "", "", "") + "1cv8s.exe";
ИмяПользователя = ИмяПользователя();
Если Не ПустаяСтрока(ИмяПользователя) Тогда
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя);
Если ПользовательИБ = Неопределено Тогда
АутентификацияОС = Ложь;
Иначе
АутентификацияОС = ПользовательИБ.АутентификацияОС;
КонецЕсли;
Пользователь = "/N""" + ИмяПользователя + """ " + ?(АутентификацияОС, "/WA+", "/WA-");
Иначе
Пользователь = "";
КонецЕсли;
Возврат( """" + ИмяПрограммыЗапуска + """ " +
"ENTERPRISE " +
"/IBConnectionString""" + СтрокаСоединенияИБ + """ " +
Пользователь +
"/DisableStartupMessages");


КонецФункции

 

18 Comments

  1. Dream_kz

    Вон, лупа с плюсиком (масштабирование) для кого придумана? Хай жмут, да крутят как надо

    з.Ы Знаю что только с 8.3.10, но на скринах оно есть

    Reply
  2. Drak87

    (1) На 15″ ноутбуках лупа не выход. Текст становиться не совсем читабельным. Переход на компактный режим более приятен глазу. Хотя лупу тоже пробовали.

    Reply
  3. ildary

    (1) Прошу прощения, но разве результат действия лупы и компактного такси — идентичный?

    Reply
  4. Dream_kz

    (3) https://wonderland.v8.1c.ru/blog/bystroe-masshtabirovanie-form/?sphrase_id=33066

    Исходить нужно из того, что в компактном режиме масштаб формы равняется примерно 80%.
    Reply
  5. Drak87

    (4)Не совсем. в компактном режиме используются стили, шрифты и отступы как в интерфейсе для 8.2. И говорить про 80 процентов наверное не совсем корректно. Тут все таки идет не масштабирование. а смена стиля отображения

    Reply
  6. ildary

    (5) именно это я и имел в виду — что компактный режим — не просто масштабирование, поэтому Ваше решение имеет право на жизнь.

    Reply
  7. kauksi

    вот бы и в типовых так. А разработчики такси поработали б в 1400х900

    Reply
  8. Yashazz

    (7) А разработчикам типовых как купили несколько лет назад здоровенные мониторы, так они и размахнулись. И в результате вплоть до 8.3.10 извольте, господа, мучиться, туда-сюда крутить постоянно прыгающий экран с бессмысленно здоровенными полями, пустыми местами и уезжающими вдаль кнопками. За эту их поделку по прозвищу «такси» вообще надо сразу гнать как профнепригодных к созданию удобных эргономичных дружественных интерфейсов.

    Reply
  9. CheBurator

    в панели разделов отключите вывод картинок, оставьте только тескт — сэкономите еще место

    Reply
  10. Online-Ufa

    (9) В панели разделов удобнее наоборот отключить текст, который занимает больше места, и оставить только картинки, тогда свободным остается большее пространство экрана

    или научить пользоваться сочетанием горячих клавиш «Ctrl+Shift+Ё», которое позволяет быстро сворачивать/отображать панель разделов

    Reply
  11. paulpit

    Если очень Важна оперативность и надежность вводимых данных, то самая большая проблема — это скупердяйство директора.

    Диспетчеру всегда надо ставить экран с максимальным разрешением.

    Reply
  12. Drak87

    (11)Дело наоборот в слишком большой лояльности директора. Когда работник сам решает хочет он ноутбук или пк с 27 дюймовым и моником. А нам теперь ищи решение т. к. многие взяли себе ноутбуки

    Reply
  13. 7OH

    Дайте пользователю кнопку настройки компакт или нет, и объясните как пользоваться кнопкой масштабирования (которая работает только в НЕ компакте).

    И пусть сами себе настраивают как хотят.

    Reply
  14. mister_tula

    Отличное решение.

    Reply
  15. the1

    (8) Так им и системники наверное обновили на core i9 с 16-ю ядрами, да по 48 Гигов оперативы. А ты жди открытия формы минуту или две =(

    Reply
  16. the1

    (10) Подтверждаю

    Reply
  17. bforce

    Формы на такси, обычно, переписывают. Используют закладки, оптимизируют размещение элементов.

    Какой смысл переходить на такси, если все размещение элементов остается прежним (как для обычного или управляемого (в виде 8.2) приложения?

    Reply
  18. Drak87

    Тут я с вами согласен. И на данный момент все формы меняются. Но вы попробуйте любое типовое решение на такси запустить на маленьком разрешение экрана. Без компактного режима там все поплывёт и работать будет неудобно

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *