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