Как увеличить размер шрифта в окне «ПоказатьВопрос» в 1С?

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

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

Метод 1. Использование объекта «ФорматированнаяСтрока»

Самый быстрый и штатный способ изменить внешний вид текста в диалоге — это использование объекта ФорматированнаяСтрока. Вместо обычной строки в первый параметр процедуры ПоказатьВопрос мы можем передать сложный объект, содержащий настройки шрифта, цвета и начертания.

Рассмотрим подробнее программную реализацию этого метода. Нам потребуется создать объект Шрифт с нужным кеглем и применить его к тексту. Разберем пример кода:


// Определяем нужный размер шрифта (например, 14)
НужныйШрифт = Новый Шрифт(,, 14, Истина); // Жирный шрифт размером 14

// Создаем массив для форматированной строки
ЭлементыФормата = Новый Массив;
ЭлементыФормата.Добавить(Новый ФорматированнаяСтрока("Внимание! Вы уверены, что хотите провести документ?", НужныйШрифт));

// Собираем форматированную строку
ТекстВопроса = Новый ФорматированнаяСтрока(ЭлементыФормата);

// Вызываем стандартный диалог
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет);

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

Метод 2. Создание собственной формы диалога

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

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

  1. Полный контроль над дизайном: Мы можем задать любой размер шрифта для всех элементов формы через свойства Заголовок и Шрифт.
  2. Масштабируемость кнопок: Мы можем сделать кнопки огромными, что особенно полезно для сенсорных экранов.
  3. Дополнительный функционал: Возможность добавить таймер обратного отсчета (например, «Окно закроется через 10 секунд») или гиперссылки на инструкции.

Для реализации такого подхода мы создаем новую управляемую форму, добавляем на неё декорацию (текст вопроса) и нужные кнопки. Вызов такой формы из кода будет выглядеть следующим образом:


ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ТекстСообщения", "Текст крупным шрифтом");
ОписаниеОповещения = Новый ОписаниеОповещения("ПослеЗакрытияСвоегоВопроса", ЭтотОбъект);

ОткрытьФорму("ОбщаяФорма.МойДиалогВопроса", ПараметрыФормы, , , , , ОписаниеОповещения);

Метод 3. Глобальное масштабирование интерфейса «Такси»

Иногда проблема «мелкого шрифта» кроется не в конкретном вопросе, а в настройках отображения всей программы. В современных версиях платформы 8.3 (интерфейс «Такси») предусмотрена возможность изменения масштаба. Посмотрим, как это работает.

Пользователь может самостоятельно изменить масштаб через меню «Сервис и настройки» — «Вид» — «Изменить масштаб». При увеличении масштаба до 120% или 150% все элементы, включая системные диалоги ПоказатьВопрос, пропорционально увеличатся. Если программисту необходимо принудительно установить масштаб для конкретного пользователя или формы, можно воспользоваться методом УстановитьТекущийМасштаб(), однако это рекомендуется делать с осторожностью, чтобы не нарушить общую верстку интерфейса.

Метод 4. Системные настройки DPI операционной системы

Проанализируем техническую сторону вопроса на мобильных устройствах и ноутбуках с 4K-мониторами. Платформа 1С корректно работает с системными настройками масштабирования Windows (DPI). Если текст в 1С кажется мелким, стоит проверить настройки экрана в панели управления Windows. Если там установлено значение 125% или 150%, 1С подхватит эти параметры, и шрифт в процедуре ПоказатьВопрос станет крупнее автоматически без внесения изменений в код конфигурации.

Метод 5. Особенности веб-клиента

Если ваши пользователи работают через браузер, стоит учитывать специфику веб-технологий. Масштаб текста в ПоказатьВопрос в веб-клиенте напрямую зависит от масштаба самого браузера (комбинация клавиш Ctrl + Колесо мыши). При разработке универсальных решений важно помнить, что ФорматированнаяСтрока в старых версиях браузеров может отображаться с ограничениями, поэтому для критически важных уведомлений в веб-клиенте создание собственной формы является наиболее надежным вариантом.

Резюме: Мы рассмотрели несколько способов решения проблемы. Для точечного изменения текста используем ФорматированнаяСтрока. Если же требуется комплексное решение для «мелких компьютеров», стоит либо настроить масштаб интерфейса «Такси», либо разработать собственную универсальную форму диалога, которая обеспечит максимальный комфорт для пользователя.

← На главную