Часто возникает задача: нужно жестко настроить интерфейс для пользователя так, чтобы он не мог самостоятельно изменять состав выводимых на экран пунктов (документы, справочники) в панелях навигации и действий. Рассмотрим стандартную ситуацию: мы копируем типовую роль в конфигураторе, отключаем у нее право Сохранение данных пользователя, добавляем эту роль в новый профиль и назначаем пользователю. Однако, зайдя в режим предприятия, мы видим, что пользователю всё равно доступны пункты меню "Настройка навигации" и "Настройка действий". Проанализируем, почему это происходит и как правильно решить данную задачу.
Выясним причину такого поведения платформы. Право Сохранение данных пользователя (внутреннее имя SaveUserData) регулирует исключительно возможность записи пользовательских настроек (расположение и размеры окон, видимость колонок, персональные настройки панелей, избранное, история) в базу данных для сохранения между сеансами.
Отключение этого права отключает фиксацию изменений в системных хранилищах настроек. Однако в интерфейсе «Такси» интерактивные вызовы настройки командного интерфейса раздела (кнопка в виде шестеренки) могут оставаться доступными. Пользователь сможет изменить состав элементов «на лету» в рамках текущего сеанса. Но после перезапуска программы все внесенные им изменения сбросятся к стандартным.
При полном отсутствии этого права у пользователя штатно отключаются команды «Изменить форму», работа с историей, добавление ссылок в «Избранное», сохранение персональных вариантов отчетов, а также команды настройки панелей в главном системном меню.
Разберем по шагам возможные причины, из-за которых настройки не сбрасываются и интерфейсные кнопки остаются активными в полной мере:
БазовыеПраваБСП), где право на сохранение включено, оно останется активным для всего сеанса.Посмотрим на ситуацию со стороны архитектуры 1С. Механизм командного интерфейса (панели навигации и действий) предназначен исключительно для удобства работы, а не для обеспечения безопасности. В платформе нет отдельного штатного права, которое запрещало бы открытие только диалогов «Настройка навигации» или «Настройка действий».
Если у роли сохранены права на чтение или просмотр данных объекта, пользователь всё равно сможет открыть этот объект даже при скрытой команде в интерфейсе. Это можно сделать через строку глобального поиска, по прямой навигационной ссылке, из форм других связанных документов или через стандартные горячие клавиши.
Поскольку просто снять галочку в конфигураторе недостаточно, рассмотрим более эффективные способы решения этой задачи на практике.
Если цель — полностью исключить доступ к определенным объектам, то у роли необходимо отозвать право «Просмотр» на справочник, документ или команду. После этого объект автоматически полностью исключается из списков навигации и панели действий, и пользователь физически не сможет добавить его туда через настройки. Для запрета создания документов из интерфейса достаточно отключить право «Интерактивное добавление» (при сохранении прав на просмотр и программное создание) — объект исчезнет из группы действий «Создать».
В дереве метаданных у каждой подсистемы можно открыть «Командный интерфейс» и централизованно снять признак «Видимость по умолчанию» для требуемой роли. Элементы не будут отображаться у пользователя при старте программы. Хотя при наличии права сохранения он технически сможет вернуть их вручную, по умолчанию интерфейс будет чистым.
Разберем административный подход. Вы можете настроить эталонный интерфейс под администратором (или другим пользователем), а затем централизованно скопировать эти настройки нужному сотруднику. Это делается в разделе «Администрирование» — «Настройки пользователей и прав» — «Персональные настройки пользователей» — «Копирование настроек».
В сочетании с полным исключением права Сохранение данных пользователя (убедитесь, что оно снято во всех профилях и ролях целевого сотрудника), скопированные вами эталонные настройки останутся зафиксированными. Любые попытки пользователя что-то изменить в меню с помощью "шестеренки" будут сбрасываться сразу после закрытия программы, каждый раз возвращая интерфейс к заданному вами стандарту.