Как запретить закрывать Рабочий стол в 1С:Предприятии 8.3

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

При работе в многопользовательских базах данных, особенно в решениях для розничной торговли (например, 1С:Розница), часто возникает ситуация, когда кассиры или операторы случайно закрывают вкладку Рабочий стол (Начальную страницу). В результате пользователю приходится перезапускать программу или искать способ заново открыть главный экран, что существенно снижает скорость обслуживания и отвлекает от работы. В классическом режиме отображения окон "Формы в закладках" на этой панели всегда присутствует крестик закрытия. В этой статье мы подробно разберем, почему стандартные свойства формы не помогают убрать этот крестик, и рассмотрим два надежных способа решения этой проблемы.

Почему стандартное свойство «Разрешить закрытие» не работает в закладках

Многие разработчики при попытке решить эту задачу сразу обращаются к конфигуратору. В свойствах управляемой формы действительно существует флаг РазрешитьЗакрытие. Логично предположить, что если снять эту галочку, крестик с вкладки исчезнет. Однако на практике этого не происходит.

Давайте проанализируем, почему так получается. В режиме работы интерфейса "Формы в закладках" панелью открытых окон управляет непосредственно сама платформа 1С на глобальном уровне. Свойство РазрешитьЗакрытие влияет исключительно на поведение самой формы (например, блокирует закрытие по нажатию клавиш Alt + F4 или отключает системную кнопку закрытия в правом верхнем углу, если форма открыта в отдельном окне). На отрисовку панели вкладок это свойство влияния не оказывает — платформа всё равно принудительно выводит крестик на закладке Рабочего стола. Стандартной настройки в конфигураторе, способной точечно скрыть этот крестик только для одной вкладки, не предусмотрено.

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

Способ 1. Программная блокировка закрытия через расширение конфигурации

Если мы не можем скрыть сам крестик визуально, мы можем программно запретить платформе закрывать форму при нажатии на него. Для этого используется обработчик события ПередЗакрытием на клиенте.

Важное предупреждение: если просто прописать в коде безусловный отказ от закрытия (Отказ = Истина), то пользователь столкнется с критической проблемой — он вообще не сможет выйти из программы 1С. При попытке закрыть главное окно приложения система посылает сигнал на закрытие всех открытых окон, включая наш Рабочий стол. Получив отказ, платформа заблокирует и само закрытие программы.

Чтобы избежать этой ловушки, начиная с версии платформы 1С 8.3.8, в обработчике события ПередЗакрытием используется специальный параметр ЗавершениеРаботы. Рассмотрим правильный шаблон кода:


&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
    
    // Если закрывается только вкладка, а не вся программа — блокируем закрытие
    Если Не ЗавершениеРаботы Тогда
        Отказ = Истина;
    КонецЕсли;
    
КонецПроцедуры

Разберем по шагам, как работает этот алгоритм:

  1. Когда пользователь нажимает на крестик на вкладке Рабочего стола, платформа инициирует событие закрытия формы. При этом параметр ЗавершениеРаботы принимает значение Ложь, так как пользователь закрывает только конкретное окно, а не весь сеанс 1С.
  2. Внутри процедуры срабатывает условие Если Не ЗавершениеРаботы. Программа устанавливает параметр Отказ = Истина. В результате вкладка остается открытой.
  3. Если же пользователь решает полностью выйти из 1С (нажимает крестик главного окна программы или выбирает пункт меню "Выход"), параметр ЗавершениеРаботы принимает значение Истина. Наше условие игнорируется, процедура завершается штатно, и сеанс успешно закрывается.

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

  1. Создадим новое расширение конфигурации в дереве метаданных.
  2. Найдем в основной конфигурации обработку или форму, выполняющую роль Рабочего стола (Начальной страницы).
  3. Добавим форму в расширение.
  4. В модуле формы в расширении определим обработчик события ПередЗакрытием, используя вышеописанный код.

Способ 2. Переход на интерфейс «Такси» и настройка масштабирования

В современном интерфейсе "Такси" проблема закрытия Рабочего стола решена разработчиками платформы по умолчанию. Начальная страница в "Такси" жестко закреплена на панели разделов, не имеет крестика закрытия и не может быть удалена пользователем с экрана случайным кликом.

Однако при переходе на "Такси" многие пользователи жалуются на то, что элементы управления, шрифты и кнопки становятся слишком крупными, из-за чего рабочие области форм перестают помещаться на экранах с небольшим разрешением. Рассмотрим, как легко решить эту проблему с помощью встроенных инструментов адаптации масштаба.

Шаг 1. Настройка компактного режима в Конфигураторе

Для форм, которые выводятся на начальную страницу, мы можем принудительно задать более плотное отображение элементов. Для этого откроем форму Рабочего стола в конфигураторе и в палитре свойств найдем свойство ВариантМасштаба. По умолчанию там установлено значение "Авто". Изменим его на Компактный. Это автоматически уменьшит отступы между элементами, размеры кнопок и полей ввода, приблизив их к классическому виду.

Шаг 2. Индивидуальное масштабирование в режиме "1С:Предприятие"

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

  1. Запустим программу в режиме "1С:Предприятие" под интерфейсом "Такси".
  2. В правом верхнем углу нажмем кнопку главного меню (три горизонтальные полоски или системная кнопка сервиса).
  3. Перейдем в раздел Вид, а затем выберем пункт Изменить масштаб.
  4. С помощью ползунка установим комфортный размер отображения (например, 85% или 90%). Все элементы интерфейса пропорционально уменьшатся, и на экране поместится гораздо больше полезной информации.
  5. Для быстрой регулировки масштаба также можно использовать комбинации клавиш Ctrl + Shift + - (для уменьшения) и Ctrl + Shift + + (для увеличения).

Платформа автоматически запомнит выбранный масштаб для данного пользователя и будет применять его при каждом последующем запуске системы.

← На главную