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

Программирование - Работа с интерфейсом

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

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

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

Процедура ПередНачаломРаботыСистемы(Отказ)
	
	АдаптацияИнтерфейсаПодРазрешение()
	
КонецПроцедуры


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

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

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

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

 

См. также

Комментарии
1. Арман Б. (Dream_kz) 28 06.04.18 12:36 Сейчас в теме
Вон, лупа с плюсиком (масштабирование) для кого придумана? Хай жмут, да крутят как надо

з.Ы Знаю что только с 8.3.10, но на скринах оно есть
bforce; rpgshnik; Brawler; Alien_job; BigB; Gang031; +6 3 Ответить
2. Александр Дубонос (Drak87) 24 06.04.18 12:46 Сейчас в теме
(1) На 15" ноутбуках лупа не выход. Текст становиться не совсем читабельным. Переход на компактный режим более приятен глазу. Хотя лупу тоже пробовали.
3. Ildar Yusupov (ildary) 06.04.18 13:01 Сейчас в теме
(1) Прошу прощения, но разве результат действия лупы и компактного такси - идентичный?
4. Арман Б. (Dream_kz) 28 06.04.18 13:11 Сейчас в теме
(3) https://wonderland.v8.1c.ru/blog/bystroe-masshtabirovanie-form/?sphrase_id=33066

Исходить нужно из того, что в компактном режиме масштаб формы равняется примерно 80%.
5. Александр Дубонос (Drak87) 24 06.04.18 14:09 Сейчас в теме
(4)Не совсем. в компактном режиме используются стили, шрифты и отступы как в интерфейсе для 8.2. И говорить про 80 процентов наверное не совсем корректно. Тут все таки идет не масштабирование. а смена стиля отображения
6. Ildar Yusupov (ildary) 06.04.18 14:13 Сейчас в теме
(5) именно это я и имел в виду - что компактный режим - не просто масштабирование, поэтому Ваше решение имеет право на жизнь.
mister_tula; +1 Ответить
7. Сергей Капустин (kauksi) 202 06.04.18 16:35 Сейчас в теме
вот бы и в типовых так. А разработчики такси поработали б в 1400х900
mister_tula; Yashazz; +2 Ответить
8. Яков Коган (Yashazz) 2239 08.04.18 14:14 Сейчас в теме
(7) А разработчикам типовых как купили несколько лет назад здоровенные мониторы, так они и размахнулись. И в результате вплоть до 8.3.10 извольте, господа, мучиться, туда-сюда крутить постоянно прыгающий экран с бессмысленно здоровенными полями, пустыми местами и уезжающими вдаль кнопками. За эту их поделку по прозвищу "такси" вообще надо сразу гнать как профнепригодных к созданию удобных эргономичных дружественных интерфейсов.
jONES1979; DAnry; Vlad_2008; mister_tula; artfa; for-elenak; shard; +7 Ответить
15. Maxim Kolkin (the1) 311 11.04.18 15:39 Сейчас в теме
(8) Так им и системники наверное обновили на core i9 с 16-ю ядрами, да по 48 Гигов оперативы. А ты жди открытия формы минуту или две =(
9. Сергей Коцюра (CheBurator) 3541 08.04.18 22:04 Сейчас в теме
в панели разделов отключите вывод картинок, оставьте только тескт - сэкономите еще место
jONES1979; +1 Ответить
10. Рустем Шавалеев (Online-Ufa) 09.04.18 08:07 Сейчас в теме
(9) В панели разделов удобнее наоборот отключить текст, который занимает больше места, и оставить только картинки, тогда свободным остается большее пространство экрана
или научить пользоваться сочетанием горячих клавиш "Ctrl+Shift+Ё", которое позволяет быстро сворачивать/отображать панель разделов
Brawler; ifilll; the1; systemevil; +4 Ответить
16. Maxim Kolkin (the1) 311 11.04.18 17:17 Сейчас в теме
(10) Подтверждаю
Прикрепленные файлы:
11. Павел Питеев (paulpit) 20 09.04.18 10:04 Сейчас в теме
Если очень Важна оперативность и надежность вводимых данных, то самая большая проблема - это скупердяйство директора.
Диспетчеру всегда надо ставить экран с максимальным разрешением.
12. Александр Дубонос (Drak87) 24 10.04.18 15:01 Сейчас в теме
(11)Дело наоборот в слишком большой лояльности директора. Когда работник сам решает хочет он ноутбук или пк с 27 дюймовым и моником. А нам теперь ищи решение т. к. многие взяли себе ноутбуки
13. Семён Павлюков (7OH) 31 11.04.18 09:56 Сейчас в теме
Дайте пользователю кнопку настройки компакт или нет, и объясните как пользоваться кнопкой масштабирования (которая работает только в НЕ компакте).
И пусть сами себе настраивают как хотят.
14. Gennady Gennady (mister_tula) 11.04.18 12:07 Сейчас в теме
17. Никита Коротаев (bforce) 399 16.04.18 23:26 Сейчас в теме
Формы на такси, обычно, переписывают. Используют закладки, оптимизируют размещение элементов.
Какой смысл переходить на такси, если все размещение элементов остается прежним (как для обычного или управляемого (в виде 8.2) приложения?
18. Александр Дубонос (Drak87) 24 17.04.18 10:00 Сейчас в теме
Тут я с вами согласен. И на данный момент все формы меняются. Но вы попробуйте любое типовое решение на такси запустить на маленьком разрешение экрана. Без компактного режима там все поплывёт и работать будет неудобно
Оставьте свое сообщение