При разработке специализированных рабочих мест, таких как Рабочее место кассира (РМК), терминалы сбора данных или экраны операторов производства, часто требуется скрыть лишние панели и распахнуть интерфейс на всю полезную площадь монитора. Разберем особенности работы платформы 1С с окнами и выясним, какими способами можно развернуть управляемую форму на весь экран.
Проанализируем архитектуру управляемого интерфейса «Такси». У объекта УправляемаяФорма на уровне свойств отсутствует штатный флаг вроде максимизации окна или открытия на весь экран при создании. Свойства формы Ширина и Высота задаются исключительно в условных символах (знакоместах), а не в пикселях, поэтому их изменение влияет только на пропорции элементов внутри формы, но не распахивает само окно приложения.
Свойства РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс или БлокироватьОкноВладельца открывают форму по центру экрана с расчетным размером, сохраняя видимость окружения, если не переопределены системные панели.
В платформе 1С:Предприятие 8.3 предусмотрено системное сочетание клавиш для скрытия всех служебных панелей (панели разделов, панели открытых окон, панели инструментов):
Ctrl + Shift + ` (или Ctrl + Shift + ~ / Ctrl + Shift + ' в зависимости от системной раскладки).
При повторном нажатии этой комбинации интерфейс возвращается в стандартный режим с отображением всех настроенных панелей.
Начиная с версии платформы 8.3.10, разработчикам доступен штатный механизм переключения режимов основного окна. Платформа поддерживает три специализированных режима:
Важно помнить: метод КлиентскоеПриложение.УстановитьРежимОсновногоОкна() может быть вызван исключительно на клиенте в модуле управляемого приложения внутри предопределенного обработчика ПередНачаломРаботыСистемы. В произвольный момент работы переключить этот режим из модуля формы нельзя.
Посмотрим на пример программной установки режима в модуле управляемого приложения:
Процедура ПередНачаломРаботыСистемы(Отказ)
// Проверяем, является ли текущий пользователь кассиром
Если РольДоступна("Кассир") Тогда
КлиентскоеПриложение.УстановитьРежимОсновногоОкна(
РежимОсновногоОкнаКлиентскогоПриложения.ПолноэкранноеРабочееМесто
);
КонецЕсли;
КонецПроцедуры
Если требуется запускать базу в полноэкранном режиме только на определенных рабочих местах без изменения конфигурации, применим ключи запуска ярлыка платформы:
/MainWindowMode -FullscreenWorkplace — запуск приложения в режиме полноэкранного рабочего места./MainWindowMode -Kiosk — запуск в режиме информационного киоска./MainWindowMode -Workplace — запуск в режиме рабочего места с рамками, но без панелей навигации.Пример строки запуска для ярлыка кассового терминала:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName "Торговля" /MainWindowMode -FullscreenWorkplace
Если конфигурацию нельзя запускать в режиме киоска глобально, рассмотрим интерфейсную настройку для профиля кассира:
При входе под такой учетной записью форма займет всё полезное пространство рабочей области начальной страницы без необходимости использования внешних утилит.
В некоторых старых решениях применяют эмуляцию нажатия клавиш переключения режима экрана с помощью объекта WScript.Shell при открытии формы:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
#Если Windows Тогда
Попытка
WshShell = Новый COMОбъект("WScript.Shell");
WshShell.SendKeys("^+~");
Исключение
// Обработка недоступности COM-объекта
КонецПопытки;
#КонецЕсли
КонецПроцедуры
Учитываем ограничения данного метода: он работает исключительно под управлением Windows в толстом или тонком клиенте. В веб-клиенте, под Linux и macOS этот подход неприменим. Поэтому для современных конфигураций рекомендуется использовать штатные параметры КлиентскоеПриложение.УстановитьРежимОсновногоОкна() или ключи командной строки /MainWindowMode.