﻿# Примеры настройки доступа к элементам через свойство приложения

> [HTML Version](property-based-permissions.html)

При [настройке доступа на уровне элементов приложения](element-right.md) можно назначить права для сотрудников, указанных в определённом поле из карточки элемента. Это позволяет гибко настроить доступ в приложении, так как для каждого элемента в поле могут быть выбраны разные сотрудники. Права автоматически выдаются указанным пользователям и динамически обновляются при изменении информации в карточке.

Для настройки используются свойства типов:

- [Пользователи](360009707032.md#users) — в поле указываются пользователи системы;

- [Роль](360009707032.md#role) — в поле могут указываться пользователи, [группы](360007146071.md) или [элементы оргструктуры](360003861992.md).

Вы можете предоставить доступ к элементам на основе свойств из контекста:

- текущего приложения;

- приложения, [связанного](360029148471.md) с текущим — опция доступна для поставки ELMA365 On‑Premises.

## Выдать права сотрудникам из карточки текущего элемента 

Допустим, в приложении **Договоры** есть контекстная переменная **Исполнитель** типа **Пользователи**. Настроим доступ так, чтобы коммерческий директор и финансовый директор видели все договоры, а ответственный за договор — только свои. Для этого:

1. Откройте настройки доступа приложения **Договоры**.

2. Включите опцию **Ограничить доступ к данным > На уровне элементов приложения**.

3. Удалите роль **Автор**.

4. Нажмите кнопку **+ Добавить** в окне настроек доступа.

5. Добавьте элементы оргструктуры **Коммерческий директор** и **Финансовый директор**, выставьте для них полный доступ.

6. Нажмите кнопку **+ Добавить** в окне настроек доступа.

7. Выберите опцию **Свойство приложения**.

8. В выпадающем списке выберите переменную **Исполнитель**.

**(property-based-permissions-1.png)**

9. Выставьте следующие права доступа: просмотр и редактирование.

10. Сохраните настройки.

Теперь автор после создания не сможет просмотреть или отредактировать элемент приложения **Договор**. Полный доступ разрешён только коммерческому и финансовому директору. Они могут открыть договор и выбрать в поле **Исполнитель** нужного пользователя. Только этот пользователь сможет просматривать и редактировать карточку договора.

## Выдать права сотрудникам из карточки связанного элемента  

Допустим, менеджерам, которые работают с клиентами, нужно предоставить права на просмотр элементов приложения **Тарифы**.

Каждый тариф доступен для определённых сегментов клиентов: для физических лиц, малого бизнеса, среднего бизнеса и т. д. Список этих сегментов хранится в карточке тарифа. Разные менеджеры работают с разными сегментами клиентов. Нужно настроить права так, чтобы менеджеры видели только тарифы, актуальные для их клиентов, и не имели доступа к другим предложениям. При этом список сегментов, для которых доступен тариф, может изменяться, и права должны обновляться динамически.

Для этого можно предоставить права на просмотр элементов приложения **Тарифы** пользователям, указанным в свойстве **Менеджеры** из контекста связанного приложения **Сегменты клиентов**.

Рассмотрим, как настроить такие права:

1. Перейдите в настройки доступа приложения **Тарифы**.

2. Включите опцию **Ограничить доступ к данным > На уровне элементов приложения**.

3. Нажмите **+ Добавить** и выберите опцию **Свойство приложения**. В выпадающем списке выберите поле **Сегменты клиентов** из контекста приложения **Тарифы**, затем вложенное свойство **Менеджеры** из приложения **Сегменты клиентов**.

**(property-based-permissions-2.png)**

4. Установите для менеджеров права на просмотр.

**(property-based-permissions-3.png)**

5. Сохраните настройки.

Теперь менеджеры, работающие с определённым сегментом клиентов, имеют права на просмотр тех тарифов, в карточках которых указан этот сегмент. Если для тарифа изменится список сегментов, права менеджеров автоматически обновятся.