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