Работа в современном интерфейсе «Такси» на мониторах с высоким разрешением (4K и выше) часто сопровождается техническими сложностями. Одной из наиболее раздражающих проблем является некорректное отображение окон оповещений — тех самых всплывающих уведомлений, которые появляются автоматически, например, при записи документа. На больших экранах с масштабированием 200–300% это окно может занимать значительную часть рабочего пространства или появляться в крайне неудобном месте, игнорируя попытки пользователя его переместить.
В рамках данной статьи мы подробно разберем, как устроены механизмы оповещений в 1С, выясним причины, по которым система «забывает» положение окон, и рассмотрим несколько эффективных способов решения этой проблемы.
Прежде всего, давайте разделим понятия. В платформе 1С существует два основных типа уведомлений, которые пользователи часто путают:
СообщениеПользователю и обычно привязываются к конкретному полю формы или отображаются в специальной панели сообщений в нижней или верхней части экрана.Проанализируем ситуацию: почему окно ведет себя непредсказуемо? Платформа 1С хранит настройки координат и размеров окон в локальных файлах профиля пользователя. При использовании сверхвысоких разрешений и системного масштабирования Windows (DPI) алгоритм расчета координат может давать сбой, из-за чего окно либо сбрасывается в координаты «по умолчанию», либо принимает гигантские размеры.
Как показывает практика и опыт разработчиков, стабильная работа с запоминанием координат всплывающих окон была существенно переработана в версиях платформы, начиная с 8.3.16. Разберем по шагам, как правильно настроить окно вручную:
Если ручное изменение размера не помогает, проблема, скорее всего, кроется в конфликте между платформой и механизмом масштабирования операционной системы. Рассмотрим, как это исправить через настройки совместимости:
Выясним причину: при масштабе 300% Windows «обманывает» приложение, передавая ему виртуальные координаты. Чтобы 1С сама управляла отрисовкой, выполним следующие действия:
1cv8.exe в папке bin установленной версии).Также можно попробовать запустить платформу со специальным ключом в строке запуска (через дополнительные параметры в окне выбора информационных баз):
/OmitDPIAwareness
Этот параметр отключает информирование системы о том, что приложение умеет работать с высоким разрешением, что иногда парадоксальным образом решает проблему гигантских окон на телевизорах с большой диагональю.
Если окно упорно не желает запоминать позицию, возможно, файлы настроек пользователя повреждены. Проанализируем ситуацию с файлами профиля. Настройки окон хранятся в папке:
%AppData%\1C\1cv8\...[ID базы]...\v8info.lst
Попробуйте выполнить полную очистку кэша:
Local\1C\1cv8 и Roaming\1C\1cv8.После очистки платформа создаст новые файлы настроек, и вероятность того, что новые координаты окна будут успешно записаны, значительно возрастет.
Если вы работаете с самописной конфигурацией или имеете возможность вносить изменения через расширения, можно управлять выводом оповещений программно. Рассмотрим пример того, как можно перехватить стандартное поведение системы.
Хотя автоматические уведомления «Документ записан» генерируются платформой, мы можем использовать метод ПоказатьОповещениеПользователя, чтобы перекрыть стандартные механизмы или изменить логику информирования. Например, можно выводить важные сообщения в статусную строку, не создавая всплывающих окон:
Процедура ПослеЗаписи(ПараметрыЗаписи)
// Вместо стандартного окна выводим сообщение в панель
ТекстОповещения = "Данные успешно сохранены в " + Строка(ТекущаяДата());
Состояние(ТекстОповещения);
КонецПроцедуры
В современных релизах платформы (начиная с 8.3.15) также появилась возможность интеграции с системным центром уведомлений Windows. Если включить эту опцию, уведомления 1С будут всплывать в стандартном месте для уведомлений ОС (обычно нижний правый угол), и их размер будет контролироваться системой, а не платформой 1С.
Если ни один из способов не принес желаемого результата на специфическом оборудовании (например, 55-дюймовый ТВ в режиме монитора), рассмотрим радикальный, но рабочий вариант: переключение интерфейса в режим «Формы в закладках» (аналог 8.2).
В этом режиме работа с окнами построена иначе, и «плавающие» оповещения интерфейса «Такси» просто отсутствуют или заменяются более классическими механизмами сообщений. Для этого в свойствах конфигурации необходимо изменить параметр «Основной режим интерфейса» на «Версия 8.2». Однако помните, что это лишит вас преимуществ современного дизайна и некоторых функций управляемых форм.
Подводя итог, можно сказать, что наиболее эффективным путем является комбинация обновления платформы до актуальной версии и настройки параметров DPI в свойствах ярлыка. Это позволяет адаптировать интерфейс «Такси» к работе на сверхвысоких разрешениях без потери функциональности.