Как запретить пользователю изменять настройки интерфейса в 1С:Бухгалтерия 3.0

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

В процессе сопровождения «1С:Бухгалтерия 3.0» администраторы и разработчики часто сталкиваются с ситуацией, когда пользователи случайно или намеренно меняют настройки интерфейса: скрывают важные панели, удаляют колонки в списках или перемещают элементы форм. Это приводит к росту обращений в службу поддержки с вопросами «куда всё пропало?». В управляемых формах гибкость интерфейса является стандартом, однако иногда требуется «заморозить» рабочее пространство пользователя. Разберем подробно, как это реализовать, даже если ваша конфигурация находится на поддержке и закрыта для редактирования («на замке»).

Метод 1. Ограничение через права доступа (Роль «Сохранение данных пользователя»)

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

У каждой роли в конфигураторе есть флаг «Сохранение данных пользователя» (Save user data). Если этот флаг снят, платформа перестает записывать изменения, внесенные пользователем в интерфейс, в системные таблицы (хранилище настроек). Рассмотрим алгоритм действий:

  1. Создадим новую роль, например, ЗапретИзмененияИнтерфейса.
  2. В свойствах этой роли снимем галочку «Сохранение данных пользователя».
  3. Назначим эту роль целевому пользователю.

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

Метод 2. Использование расширений для скрытия меню «Вид»

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

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


Процедура ПриНачалеРаботыСистемы()
    // Проверяем наличие определенной роли у пользователя
    Если РольДоступна("ЗапретИзмененияИнтерфейса") Тогда
        // Код для скрытия элементов интерфейса
        // Блокировка доступа к настройкам панелей и состава форм
    КонецЕсли;
КонецПроцедуры

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

Метод 3. Программное управление интерфейсом через «УстановитьНастройкиИнтерфейсаКлиентскогоПриложения»

Рассмотрим более продвинутый способ, который позволяет жестко зафиксировать расположение панелей (панель разделов, панель открытых, панель функций текущего раздела). Для этого используется метод УстановитьНастройкиИнтерфейсаКлиентскогоПриложения().

Представим ситуацию, когда нам нужно, чтобы у всех бухгалтеров панель открытых окон всегда находилась внизу, а панель разделов — слева, и они не могли это изменить. Проанализируем программный подход:


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

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

Настройки.УстановитьСоставПанелей(СоставПанелей);
УстановитьНастройкиИнтерфейсаКлиентскогоПриложения(Настройки);

Выполняя этот код при старте системы, мы принудительно задаем структуру окна. Даже если пользователь найдет способ вызвать окно настроек, ваши программные установки будут иметь приоритет при каждом запуске.

Метод 4. Копирование и «заморозка» настроек через БСП

Поскольку «Бухгалтерия 3.0» разработана на базе Библиотеки стандартных подсистем (БСП), мы можем использовать встроенные инструменты администратора. Разберем по шагам, как это сделать в режиме «1С:Предприятие»:

  1. Зайдем в программу под пользователем с полными правами и настроим интерфейс так, как он должен выглядеть у всех сотрудников (эталонный вид).
  2. Перейдем в раздел Администрирование — Настройки пользователей и прав — Настройки пользователей.
  3. Выберем пункт Копирование настроек.
  4. Выберем нашего «эталонного» пользователя в качестве источника, а в качестве получателей — всех необходимых сотрудников.
  5. При копировании выберем вариант «Очистить текущие настройки».

Чтобы пользователи снова не изменили эти настройки, используйте комбинацию с Методом 1 (лишение права на сохранение данных). Таким образом, вы сначала устанавливаете правильный стандарт, а затем запрещаете системе запоминать любые отклонения от него.

Заключение

Мы проанализировали несколько способов решения задачи. Выбор конкретного метода зависит от ваших технических возможностей. Если вы хотите быстрого результата без программирования — используйте права доступа и механизм копирования настроек БСП. Если же требуется полный контроль и скрытие пунктов меню «Вид» — создавайте расширение и используйте программные методы управления интерфейсом. Сочетание этих подходов позволит создать стабильную и предсказуемую рабочую среду для пользователей «1С:Бухгалтерия 3.0».

← На главную