При разработке специализированных рабочих мест в 1С (например, рабочего места кассира, терминала самообслуживания или экрана для производственного склада) часто возникает необходимость развернуть управляемую форму на весь экран и полностью заблокировать доступ пользователя к основному интерфейсу конфигурации. Стандартные свойства формы, такие как РежимОткрытияОкна, позволяют заблокировать интерфейс, но не всегда решают задачу развертывания окна на весь физический экран монитора.
В этой статье мы подробно разберем, как решить эту задачу с помощью программных методов платформы «1С:Предприятие 8.3», выясним причины возможных ошибок компиляции и рассмотрим альтернативные варианты настройки интерфейса.
По умолчанию, если мы устанавливаем у управляемой формы свойство РежимОткрытияОкна в значение БлокироватьВесьИнтерфейс, система делает форму модальной (или блокирующей интерфейс), закрывая доступ к другим элементам программы. Однако само окно формы остается стандартного размера и не растягивается на весь экран автоматически. Пользователю приходится вручную максимизировать окно, что неудобно и нарушает эргономику специализированных рабочих мест.
Для полноценного решения этой задачи в платформе предусмотрены специальные механизмы управления режимом основного окна клиентского приложения.
Начиная с версии платформы 8.3.10.2168, разработчикам доступен специализированный метод глобального контекста УстановитьРежимОсновногоОкна() и системное перечисление РежимОсновногоОкнаКлиентскогоПриложения. Этот метод позволяет кардинально изменить отображение всего интерфейса программы.
Рассмотрим, какие режимы основного окна мы можем использовать:
Важное ограничение: метод УстановитьРежимОсновногоОкна() можно вызывать исключительно в обработчике события ПередНачаломРаботыСистемы в Модуле управляемого приложения. Попытка вызвать его в модуле формы или в других событиях приведет к ошибке выполнения.
Разберем по шагам, как правильно написать этот код:
ПередНачаломРаботыСистемы.
Процедура ПередНачаломРаботыСистемы(Отказ)
// Устанавливаем режим основного окна в значение "Рабочее место"
УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто);
КонецПроцедуры
После запуска клиентского сеанса система автоматически скроет лишние элементы интерфейса, предоставив пользователю чистое рабочее пространство.
Часто разработчики при попытке использовать этот метод сталкиваются с ошибкой компиляции: «Переменная не определена (РежимОсновногоОкнаКлиентскогоПриложения)» или «Процедура или функция с указанным именем не определена (УстановитьРежимОсновногоОкна)».
Проанализируем причину этой проблемы. Как мы упоминали ранее, данный функционал появился только в версии платформы 8.3.10. Если у вашей конфигурации в свойствах установлен Режим совместимости с более ранними версиями (например, 8.3.1, как часто бывает в старых типовых конфигурациях), платформа отключает поддержку новых методов для обеспечения обратной совместимости.
Чтобы устранить эту ошибку, выполните следующие действия:
8.3.10.После изменения режима совместимости платформа распознает новые методы, и код выполнится без ошибок. Обратите внимание, что изменение режима совместимости на работающих базах требует предварительного тестирования, так как это может повлиять на поведение других механизмов конфигурации.
Что делать, если нам не нужно переводить все приложение в режим рабочего места, а требуется открыть во весь экран только одну конкретную форму (например, форму подбора товара или калькулятор)? В этом случае у нас есть несколько отличных альтернативных инструментов.
У каждой управляемой формы в палитре свойств есть замечательное свойство — РежимРабочегоСтола. Если установить его в значение Истина, форма при открытии будет вести себя особым образом:
Это свойство можно задать как в конфигураторе в палитре свойств формы, так и программно при ее создании:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ЭтаФорма.РежимРабочегоСтола = Истина;
КонецПроцедуры
Еще один способ добиться полноэкранного режима для отдельной формы — комбинирование свойств отображения окна:
СпособОтображенияОкна в значение Максимизированное.РежимОткрытияОкна в значение Независимый.При таком сочетании форма откроется как свободное перекрывающее окно и автоматически распахнется на весь физический экран монитора, перекрывая даже панель задач операционной системы Windows. Это отличное решение для реализации интерфейсов кассовых боксов.
Если вам нужно оперативно развернуть текущую открытую форму на весь экран во время работы без изменения кода конфигурации, используйте стандартное встроенное сочетание клавиш платформы 1С: Ctrl + Shift + ~ (тильда/Ё). Повторное нажатие этой комбинации возвращает все панели интерфейса на свои места.
Мы рассмотрели все основные способы создания полноэкранных форм в 1С. Выбирайте наиболее подходящий вариант в зависимости от бизнес-требований вашего проекта!