Показать диалог выбора прав доступа BX24.selectAccess
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
BX24.selectAccess(value: array, callback: callable): void;
BX24.selectAccess(callback: callable): void;
BX24.selectAccess(title: string, value: array, callback: callable): void;
Метод BX24.selectAccess показывает стандартный диалог выбора прав доступа. В диалоге пользователь выбирает сотрудников, подразделения, рабочие группы и другие категории получателей, а приложение получает их коды доступа.
Диалог рисует сам Битрикс24 поверх фрейма приложения. Приложению не нужно собирать список получателей и проверять права на его просмотр: пользователь видит в диалоге только те объекты, к которым у него есть доступ. Собственный scope диалогу не нужен — он открывает интерфейс Битрикс24, а не обращается к REST API.
Вызвать метод можно только из приложения, встроенного во фрейм Битрикс24. Если страница открыта не из Битрикс24, библиотека не инициализируется и выбрасывает исключение при подключении.
Вызывайте метод внутри обработчика BX24.init. Сам диалог библиотека до инициализации не откладывает, но функции, которые обычно вызывают из callback, до нее не работают — например BX24.userOption.set.
В русской локализации заголовок диалога — «Категории пользователей».
Параметры метода
Обязательные параметры отмечены *
|
Название |
Описание |
|
value |
Массив строк с кодами доступа, которые нужно заблокировать. Заблокированные коды показываются в диалоге неактивными: выбрать их нельзя, и в результат они не попадут. Коды, которых нет в Битрикс24, диалог игнорирует: на выбор они не влияют и ошибку не вызывают. Параметр можно не передавать: вызов |
|
callback* |
Функция обратного вызова, которая получает результат выбора (подробное описание) |
|
title |
Заголовок диалога. Библиотека принимает параметр первым, но не передает его в Битрикс24, поэтому заголовок остается системным |
Примеры кода
Как использовать примеры в документации
Показать диалог без ограничений и вывести выбранные коды:
BX24.init(() => {
BX24.selectAccess((selected) => {
selected.forEach((item) => {
console.log(item.provider, item.id, item.name);
});
});
});
Заблокировать часть кодов и сохранить выбор в настройках пользователя, чтобы не показывать диалог при каждом открытии приложения:
BX24.init(() => {
// AU и U1 уже сохранены, поэтому выбрать их повторно нельзя
BX24.selectAccess(['AU', 'U1'], (selected) => {
const codes = selected.map((item) => item.id);
// пустой выбор не затирает сохраненные коды
if (codes.length === 0)
{
return;
}
BX24.userOption.set('recipients', codes.join(','));
});
});
Обработка ответа
Диалог не возвращает данные напрямую: результат выбора приходит в функцию callback массивом объектов. Объекты сгруппированы по значению provider, внутри группы порядок совпадает с порядком выбора. На позицию элемента в массиве не опирайтесь — определяйте объект по полям provider и id.
Если пользователь закрыл диалог крестиком, кнопкой «Закрыть» или клавишей Esc, функция callback не вызывается. При нажатии «Выбрать» без отметок callback получит пустой массив — проверяйте длину массива перед тем, как сохранять результат.
[
{
"provider": "intranet",
"id": "IU1",
"name": "Иван Иванов"
},
{
"provider": "socnetgroup",
"id": "SG4_K",
"name": "Отдел продаж: Все члены группы"
}
]
Пользователь подтвердил пустой выбор:
[]
Возвращаемые данные
|
Название |
Описание |
|
provider |
Источник кода доступа. Возможные значения:
В ответе метода access.name поле |
|
id |
Код доступа (подробное описание) |
|
name |
Название права доступа, которое видит пользователь. Для сотрудников и общих категорий получателей — название как есть, например |
Коды доступа
|
Код |
Что означает |
|
|
Сотрудник с идентификатором 1 и его руководители по оргструктуре |
|
|
Только сотрудник с идентификатором 1, без руководителей. Так возвращается текущий пользователь |
|
|
Все сотрудники подразделения с идентификатором 5 |
|
|
Все сотрудники подразделения с идентификатором 5 и его подразделений-потомков |
|
|
Владелец рабочей группы или проекта с идентификатором 4 |
|
|
Модераторы рабочей группы или проекта с идентификатором 4 |
|
|
Все участники рабочей группы или проекта с идентификатором 4 |
|
|
Все авторизованные пользователи |
|
|
Все пользователи, включая неавторизованных. В интерфейсе такой код подписан «Все посетители» |
|
|
Автор объекта |
Рабочую группу нельзя выбрать целиком: в диалоге выбирают роль в группе, поэтому код всегда приходит с суффиксом _A, _E или _K.
Числовая часть кода — идентификатор объекта в Битрикс24. Из IU1 и U1 получают ID = 1 для методов, которые работают с пользователем, например для user.get.
Целиком код передают в параметры методов REST API, которые принимают права доступа. Например, в параметре ACCESS метода entity.rights код становится ключом объекта, а значением — уровень права: {"U1": "W", "AU": "R"}.
Набор доступных кодов зависит от конкретного Битрикс24: в диалоге приложения нет вкладки с группами пользователей, а состав остальных вкладок определяют установленные модули и права текущего пользователя. Названия кодов возвращает метод access.name — он опрашивает провайдеры прав доступа Битрикс24 и распознает в том числе коды IU, D, DR и SG.
Обработка ошибок
Кодов ошибок диалог не возвращает. Случаи, когда результата нет, разобраны в блоке Обработка ответа.
Продолжите изучение
- Системные диалоги: обзор методов
- Показать диалог одиночного выбора пользователя BX24.selectUser
- Показать диалог множественного выбора пользователей BX24.selectUsers
- Вызвать диалог выбора объектов CRM BX24.selectCRM
- Получить названия прав доступа access.name
- Установить настройки для пользователя BX24.userOption.set