Как убрать пустое пространство в верхней части формы 1С 8.3?

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

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

Анализ причин появления отступов

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

  1. Системный заголовок окна: Область, за которую пользователь может перетаскивать окно.
  2. Заголовок самой формы: Текстовая область, определяемая свойством Заголовок.
  3. Командная панель: Место, где по умолчанию располагаются кнопки «Записать», «Закрыть» и кнопка меню «Еще».
  4. Специфика интерфейса «Такси»: Данный интерфейс разработан с учетом сенсорного ввода, поэтому в нем заложены увеличенные отступы между элементами для удобства нажатия пальцем.

Проанализируем пошагово, как программно и интерактивно избавиться от этих элементов.

Способ 1. Настройка свойств заголовка формы

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

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

Способ 2. Управление командной панелью

Часто то, что программист принимает за «пустое место», на самом деле является пустой командной панелью формы. Если вы не добавили на нее кнопки вручную, платформа всё равно оставляет место под стандартные команды или кнопку «Еще».

Чтобы убрать это пространство, выполним следующие действия:

  1. Найдем в свойствах формы параметр ПоложениеКоманднойПанели.
  2. Изменим его значение с «Авто» на Нет.

Если вам все же нужны кнопки, лучше создать обычную Группа - Командная панель непосредственно в составе элементов формы и разместить её там, где это удобно по дизайну, чтобы контролировать каждый пиксель отступа.

Способ 3. Переход в режим «Рабочее место»

Если ваша задача — создать интерфейс для ТСД, где запущена всего одна обработка, стандартные оконные механизмы 1С будут только мешать. В современных версиях платформы 8.3 предусмотрен специальный режим основного окна. Проанализируем, как его применить.

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


Процедура ПриНачалеРаботыСистемы()
    // Устанавливаем режим, при котором убираются панели разделов, навигации и заголовки
    УстановитьРежимОсновногоОкна(РежимОсновногоОкна.РабочееМесто);
КонецПроцедуры

Использование РежимОсновногоОкна.РабочееМесто позволяет форме занять всё доступное пространство, минимизируя системные отступы. Это «умный» способ, который позволяет избежать нагромождения стандартных интерфейсных панелей 1С.

Способ 4. Компактный режим интерфейса

Если вы работаете на платформе версии 8.3.11 и выше, вы можете использовать встроенную возможность уменьшения отступов. Интерфейс «Такси» по умолчанию очень «размашистый». Выясним, как сделать его плотнее.

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

Способ 5. Учет режима совместимости

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

Разберем рекомендации для этой ситуации:

Способ 6. Программное управление окном при открытии

Если форма должна открываться максимально чисто, мы можем задать параметры её отображения непосредственно в коде вызова. Рассмотрим использование свойства ВариантОткрытияОкна.


ПараметрыФормы = Новый Структура;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("РежимОткрытияОкна", РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);

// Открытие формы в полноэкранном режиме для ТСД
ОткрытьФорму("Обработка.МояОбработка.Форма.ФормаРабочегоМеста", ПараметрыФормы, , Ложь, ВариантОткрытияОкна.Основное);

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

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

← На главную