#std668

Разработка ролей в библиотеках

1.

При проектировании ролей в библиотеках придерживайтесь общего подхода к границам функциональности библиотеки:

  • в библиотеку включайте объекты метаданных, которые в неизменном или переопределенном виде войдут в конфигурации-потребители;
  • объекты, специфичные для конкретной конфигурации-потребителя, не разрабатывайте в библиотеке, а создавайте на этапе внедрения и настройки.
2.

В большинстве случаев библиотека должна поставлять готовый набор ролей для работы со своими данными (справочники, регистры и т.п.).

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

Исключения:

  • библиотечный объект не является самостоятельным и всегда подчинен объекту-владельцу конфигурации;
  • библиотечный объект не является полностью завершенным и предполагает существенное переопределение в прикладном решении;
  • библиотека содержит только алгоритмы и не содержит данных.
3.

В ролях допустимо задавать не только права к объектам, но и ограничения доступа на уровне записей (RLS).

Поставляемый RLS разрабатывайте так, чтобы его можно было использовать «как есть» без доработки в прикладном решении. Тогда библиотечные роли можно переносить при обновлении без изменений.

Исключения:

  • в прикладном решении нет настройки прав на уровне записей: тогда тексты RLS на этапе внедрения (обновления) удаляются из библиотечных ролей;
  • в прикладном решении есть дополнительные прикладные сущности ограничения доступа (например, проекты, грифы доступа): тогда соответствующую логику добавляют в RLS библиотечных ролей или принимают решение не поставлять роли для таких объектов из библиотеки.
4.

Если для библиотечных ролей используются правила поставки, для всех ролей задавайте правило Изменения разрешены.

Это связано с особенностями платформы: при добавлении или удалении метаданных роли изменяются неявно.

См. также
Источник

https://its.1c.ru/db/v8std#content:668