Как настроить окно оповещений в интерфейсе Такси на мониторах с высоким разрешением?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Работа в современном интерфейсе «Такси» на мониторах с высоким разрешением (4K и выше) часто сопровождается техническими сложностями. Одной из наиболее раздражающих проблем является некорректное отображение окон оповещений — тех самых всплывающих уведомлений, которые появляются автоматически, например, при записи документа. На больших экранах с масштабированием 200–300% это окно может занимать значительную часть рабочего пространства или появляться в крайне неудобном месте, игнорируя попытки пользователя его переместить.

В рамках данной статьи мы подробно разберем, как устроены механизмы оповещений в 1С, выясним причины, по которым система «забывает» положение окон, и рассмотрим несколько эффективных способов решения этой проблемы.

Понимание природы окна оповещений

Прежде всего, давайте разделим понятия. В платформе 1С существует два основных типа уведомлений, которые пользователи часто путают:

  1. Сообщения пользователю — они выводятся программно через команду СообщениеПользователю и обычно привязываются к конкретному полю формы или отображаются в специальной панели сообщений в нижней или верхней части экрана.
  2. Оповещения (Toast-уведомления) — это всплывающие прямоугольные блоки, которые информируют о завершении действия (например, «Документ записан»). Именно о них идет речь в контексте проблем с интерфейсом «Такси».

Проанализируем ситуацию: почему окно ведет себя непредсказуемо? Платформа 1С хранит настройки координат и размеров окон в локальных файлах профиля пользователя. При использовании сверхвысоких разрешений и системного масштабирования Windows (DPI) алгоритм расчета координат может давать сбой, из-за чего окно либо сбрасывается в координаты «по умолчанию», либо принимает гигантские размеры.

Решение 1: Обновление платформы и ручная корректировка

Как показывает практика и опыт разработчиков, стабильная работа с запоминанием координат всплывающих окон была существенно переработана в версиях платформы, начиная с 8.3.16. Разберем по шагам, как правильно настроить окно вручную:

  1. Обновите платформу. Если вы используете релизы ниже 8.3.14, проблема с «забыванием» позиции окна является штатной особенностью старого кода платформы. Убедитесь, что используете актуальный релиз (рекомендуется 8.3.20 и выше для корректной работы с 4K).
  2. Захват и перетаскивание. Дождитесь появления оповещения. Попробуйте аккуратно подвести курсор к границе окна, пока он не превратится в двунаправленную стрелку. Измените размер окна до минимально приемлемого.
  3. Фиксация позиции. Перетащите окно в нужный угол экрана. Важный нюанс: не подводите окно вплотную к самому краю монитора. Оставьте зазор в 5–10 пикселей. Иногда платформа считает координаты на самой границе ошибочными и сбрасывает их при следующем запуске.
  4. Корректное завершение работы. Чтобы настройки записались в файл профиля, необходимо закрыть сеанс 1С штатным способом через меню или «крестик». В случае аварийного завершения (через диспетчер задач или выключение света) изменения не сохранятся.

Решение 2: Настройка масштабирования Windows (High DPI Awareness)

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

Выясним причину: при масштабе 300% Windows «обманывает» приложение, передавая ему виртуальные координаты. Чтобы 1С сама управляла отрисовкой, выполним следующие действия:

  1. Найдите исполняемый файл платформы (обычно это 1cv8.exe в папке bin установленной версии).
  2. Нажмите правой кнопкой мыши и выберите «Свойства», затем вкладку «Совместимость».
  3. Нажмите кнопку «Изменить параметры высокого DPI».
  4. Установите галочку «Переопределите режим масштабирования высокого разрешения».
  5. В выпадающем списке выберите «Приложение». Это заставит 1С отрисовывать интерфейс без «замыливания» и с более точным позиционированием окон.

Также можно попробовать запустить платформу со специальным ключом в строке запуска (через дополнительные параметры в окне выбора информационных баз):

/OmitDPIAwareness

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

Решение 3: Очистка кэша и проверка файлов настроек

Если окно упорно не желает запоминать позицию, возможно, файлы настроек пользователя повреждены. Проанализируем ситуацию с файлами профиля. Настройки окон хранятся в папке:

%AppData%\1C\1cv8\...[ID базы]...\v8info.lst

Попробуйте выполнить полную очистку кэша:

  1. Удалите базу из списка и добавьте её заново (это сменит идентификатор папки кэша).
  2. Либо вручную удалите содержимое папок Local\1C\1cv8 и Roaming\1C\1cv8.

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

Решение 4: Программное управление оповещениями (для разработчиков)

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

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


Процедура ПослеЗаписи(ПараметрыЗаписи)
    // Вместо стандартного окна выводим сообщение в панель
    ТекстОповещения = "Данные успешно сохранены в " + Строка(ТекущаяДата());
    Состояние(ТекстОповещения);
КонецПроцедуры

В современных релизах платформы (начиная с 8.3.15) также появилась возможность интеграции с системным центром уведомлений Windows. Если включить эту опцию, уведомления 1С будут всплывать в стандартном месте для уведомлений ОС (обычно нижний правый угол), и их размер будет контролироваться системой, а не платформой 1С.

Решение 5: Переключение режима интерфейса

Если ни один из способов не принес желаемого результата на специфическом оборудовании (например, 55-дюймовый ТВ в режиме монитора), рассмотрим радикальный, но рабочий вариант: переключение интерфейса в режим «Формы в закладках» (аналог 8.2).

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

Подводя итог, можно сказать, что наиболее эффективным путем является комбинация обновления платформы до актуальной версии и настройки параметров DPI в свойствах ярлыка. Это позволяет адаптировать интерфейс «Такси» к работе на сверхвысоких разрешениях без потери функциональности.

← На главную