При разработке интерфейсов для специализированных устройств, таких как терминалы сбора данных (ТСД), каждый сантиметр экранного пространства имеет критическое значение. Одной из часто встречающихся проблем в интерфейсе «Такси» на платформе 1С 8.3 является появление нежелательной «пустоты» в верхней части управляемой формы, даже если заголовок кажется отключенным. Разберем подробно, почему это происходит и какими способами можно максимально эффективно использовать площадь экрана.
Перед тем как переходить к радикальным мерам, давайте выясним причину возникновения лишнего пространства. В управляемом приложении 1С за формирование верхней части окна отвечают сразу несколько механизмов:
Заголовок.Проанализируем пошагово, как программно и интерактивно избавиться от этих элементов.
Самый очевидный шаг — это управление свойствами самой управляемой формы. Рассмотрим ключевые параметры, которые необходимо изменить в палитре свойств:
АвтоЗаголовок в значение Ложь.Заголовок пустым.ОтображатьЗаголовок в значение Ложь.Важно помнить, что даже при скрытии заголовка платформа может резервировать несколько пикселей для технического взаимодействия с окном. Если форма открывается в режиме обычного окна, полностью избавиться от рамки таким способом не удастся.
Часто то, что программист принимает за «пустое место», на самом деле является пустой командной панелью формы. Если вы не добавили на нее кнопки вручную, платформа всё равно оставляет место под стандартные команды или кнопку «Еще».
Чтобы убрать это пространство, выполним следующие действия:
ПоложениеКоманднойПанели.Если вам все же нужны кнопки, лучше создать обычную Группа - Командная панель непосредственно в составе элементов формы и разместить её там, где это удобно по дизайну, чтобы контролировать каждый пиксель отступа.
Если ваша задача — создать интерфейс для ТСД, где запущена всего одна обработка, стандартные оконные механизмы 1С будут только мешать. В современных версиях платформы 8.3 предусмотрен специальный режим основного окна. Проанализируем, как его применить.
В модуле управляемого приложения, в обработчике ПриНачалеРаботыСистемы, мы можем жестко задать режим отображения интерфейса. Посмотрим на пример кода:
Процедура ПриНачалеРаботыСистемы()
// Устанавливаем режим, при котором убираются панели разделов, навигации и заголовки
УстановитьРежимОсновногоОкна(РежимОсновногоОкна.РабочееМесто);
КонецПроцедуры
Использование РежимОсновногоОкна.РабочееМесто позволяет форме занять всё доступное пространство, минимизируя системные отступы. Это «умный» способ, который позволяет избежать нагромождения стандартных интерфейсных панелей 1С.
Если вы работаете на платформе версии 8.3.11 и выше, вы можете использовать встроенную возможность уменьшения отступов. Интерфейс «Такси» по умолчанию очень «размашистый». Выясним, как сделать его плотнее.
Пользователь или администратор может зайти в меню Сервис — Параметры и выбрать вариант «Компактный» в настройках внешнего вида. Программно это также можно контролировать через настройки интерфейса клиента. В компактном режиме высота заголовков и пустых зон существенно сокращается, что часто решает проблему «лишних 2 сантиметров».
Обратим внимание на важный нюанс: режим совместимости. Если ваша конфигурация использует режим совместимости с версиями 8.2.16 или ниже (как у автора вопроса на форуме), механизмы отрисовки интерфейса «Такси» могут работать некорректно. Платформа пытается имитировать старое поведение отрисовки элементов в новом визуальном стиле, что приводит к непредсказуемым отступам.
Разберем рекомендации для этой ситуации:
РежимСовместимости в свойствах конфигурации до актуального.Группа - Без отображения и проверьте её свойства ОтступСверху и РастягиватьПоВертикали.Если форма должна открываться максимально чисто, мы можем задать параметры её отображения непосредственно в коде вызова. Рассмотрим использование свойства ВариантОткрытияОкна.
ПараметрыФормы = Новый Структура;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("РежимОткрытияОкна", РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
// Открытие формы в полноэкранном режиме для ТСД
ОткрытьФорму("Обработка.МояОбработка.Форма.ФормаРабочегоМеста", ПараметрыФормы, , Ложь, ВариантОткрытияОкна.Основное);
Использование ВариантОткрытияОкна.Основное в сочетании с полноэкранными настройками в конфигураторе позволяет добиться того, что форма будет выглядеть как единое целое с экраном устройства, без лишних рамок и пустых полос в верхней части.
Таким образом, для полного устранения пустого пространства необходимо действовать комплексно: отключить заголовок формы, скрыть командную панель и, что самое эффективное для ТСД, перевести приложение в режим Рабочего места.