Как запретить пользователю изменять настройки навигации и панель действий в интерфейсе "Такси" (1С 8.3)?

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

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

Принцип работы права «Сохранение данных пользователя»

Выясним причину такого поведения платформы. Право Сохранение данных пользователя (внутреннее имя SaveUserData) регулирует исключительно возможность записи пользовательских настроек (расположение и размеры окон, видимость колонок, персональные настройки панелей, избранное, история) в базу данных для сохранения между сеансами.

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

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

Почему настройки могут продолжать сохраняться?

Разберем по шагам возможные причины, из-за которых настройки не сбрасываются и интерфейсные кнопки остаются активными в полной мере:

  1. Суммирование прав ролей (принцип «ИЛИ»): Права пользователя в «1С:Предприятии» вычисляются путем объединения всех назначенных ему ролей. Если пользователю назначен хотя бы один профиль или стандартная роль, входящая в типовые группы доступа (например, предопределенная группа «Все пользователи» или базовые роли конфигурации, такие как БазовыеПраваБСП), где право на сохранение включено, оно останется активным для всего сеанса.
  2. Кэширование прав в типовых конфигурациях: Конфигурации на базе Библиотеки стандартных подсистем (включая «Бухгалтерию предприятия») используют регистры сведений для хранения поставляемых и рассчитанных прав доступа. После изменения ролей в конфигураторе требуется обновление служебных данных прав доступа и обязательный перезапуск сеанса пользователя.

Архитектурные ограничения платформы

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

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

Альтернативные и проверенные варианты решения

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

1. Ограничение прав на объекты метаданных (наиболее надежный способ)

Если цель — полностью исключить доступ к определенным объектам, то у роли необходимо отозвать право «Просмотр» на справочник, документ или команду. После этого объект автоматически полностью исключается из списков навигации и панели действий, и пользователь физически не сможет добавить его туда через настройки. Для запрета создания документов из интерфейса достаточно отключить право «Интерактивное добавление» (при сохранении прав на просмотр и программное создание) — объект исчезнет из группы действий «Создать».

2. Настройка командного интерфейса подсистем в конфигураторе

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

3. Тиражирование настроек через механизмы администрирования

Разберем административный подход. Вы можете настроить эталонный интерфейс под администратором (или другим пользователем), а затем централизованно скопировать эти настройки нужному сотруднику. Это делается в разделе «Администрирование» — «Настройки пользователей и прав» — «Персональные настройки пользователей» — «Копирование настроек».

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

← На главную