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