Как настроить ограниченный интерфейс в 1С и сохранить работоспособность системы «Обсуждения»

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

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

Почему режим «Рабочее место» конфликтует с «Обсуждениями»

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

Система взаимодействия («Обсуждения») технически реализована как вспомогательная панель, которая должна «прилипать» к границам основного окна или открываться поверх него. В режиме РабочееМесто механизмы управления вспомогательными окнами работают иначе:

  1. Отсутствие фокуса: Окно обсуждений может открываться в фоновом режиме, и пользователь не видит уведомлений, так как стандартные области оповещений скрыты.
  2. Блокировка интерфейса: Если пользователю удается открыть обсуждения через превью в углу экрана, окно может занять весь экран или перекрыть доступ к основной форме без возможности минимизации, так как стандартные кнопки управления окнами в этом режиме отсутствуют или работают некорректно.
  3. Версия платформы: В старых версиях (например, 8.3.13) эти механизмы еще не были оптимизированы. Для стабильной работы оконных режимов рекомендуется использовать платформу версии 8.3.23 и выше.

Программная настройка интерфейса без смены режима окна

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


// Пример программной настройки интерфейса при начале работы системы
НастройкиИнтерфейса = Новый НастройкиИнтерфейсаКлиентскогоПриложения;
НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав(); 

// Полностью очищаем все области интерфейса
НастройкиСостава.Верх.Очистить();
НастройкиСостава.Лево.Очистить();
НастройкиСостава.Низ.Очистить();
НастройкиСостава.Право.Очистить();

// Настраиваем только левую панель, добавляя туда избранное и открытые окна
ГруппаНастройкиСостава = Новый ГруппаНастройкиСоставаИнтерфейсаКлиентскогоПриложения;
ГруппаНастройкиСостава.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельИзбранного"));
ГруппаНастройкиСостава.Добавить(Новый ЭлементНастройкиСоставаИнтерфейсаКлиентскогоПриложения("ПанельОткрытых"));
НастройкиСостава.Лево.Добавить(ГруппаНастройкиСостава);

// Сохраняем настройки в системное хранилище
НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава);
ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса);

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

Запрет пользователю менять настройки панелей

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

  1. Откроем конфигуратор и найдем роль, назначенную данному пользователю.
  2. В дереве прав роли найдем корень (самый верхний элемент с названием конфигурации).
  3. Снимем галочку с права «Сохранение данных пользователя» (Save user data). Это право отвечает за возможность записи любых настроек в ХранилищеСистемныхНастроек, включая настройки интерфейса.
  4. Также обратим внимание на право «Изменение настроек пользователя» (Edit user settings). Его отключение заблокирует доступ к меню настройки панелей.

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

Профессиональный подход: Использование формы «Рабочего стола»

Рассмотрим более изящный способ реализации задачи, который считается стандартом при разработке в среде 1С. Вместо того чтобы «бороться» с панелями через программный код, мы можем настроить специальный рабочий стол.

Проанализируем пошагово:

  1. Создадим новую форму в конфигурации (например, в составе обработки БыстрыеДействия).
  2. Разместим на ней все необходимые кнопки и списки документов, которые требуются пользователю для работы.
  3. В свойствах конфигурации перейдем на вкладку «Рабочий стол» и назначим эту форму основной для конкретной роли.
  4. В редакторе командного интерфейса (раздел «Интерфейс клиентского приложения») для этой же роли снимем видимость со всех разделов.

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

Резюме и рекомендации

Подводя итог, можно сказать следующее:

  1. Использование РежимОсновногоОкнаКлиентскогоПриложения.РабочееМесто оправдано только в тех случаях, когда система взаимодействия и работа с множеством окон не предполагаются в принципе.
  2. Для современных конфигураций на платформе 8.3 (таких как УНФ, ERP) лучше использовать комбинацию ограничения прав роли и настройки состава панелей через НастройкиИнтерфейсаКлиентскогоПриложения.
  3. Если вы все же столкнулись с зависанием окон в версии 8.3.13, настоятельно рекомендуем обновить платформу до актуальных релизов ветки 8.3.20+, где логика работы вспомогательных панелей была значительно переработана.

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

← На главную