Блог Горошко Андрея Bitrix24,PHP Проверить доступ к задаче tasks.task.getaccess

Проверить доступ к задаче tasks.task.getaccess

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Проверить доступ к задаче tasks.task.getaccess». Вы узнаете экспертные методики работы с tasks.task.getaccess и научитесь избегать типичных ошибок начинающих разработчиков.

Проверить доступ к задаче tasks.task.getaccess

> Scope: task
>
> Кто может выполнять метод: любой пользователь

Метод tasks.task.getaccess проверяет доступные действия пользователей над задачей.

Параметры метода

Название
тип
Описание
taskId*
integer
Идентификатор задачи.

Идентификатор задачи можно получить при создании новой задачи или методом получения списка задач

users
array
Массив идентификаторов пользователей, для которых нужно проверить доступ.

По умолчанию используется текущий пользователь.

Идентификатор пользователя можно получить методом получения списка пользователей

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"taskId":8017,"users":[503,547]}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/tasks.task.getaccess
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"taskId":8017,"users":[503,547],"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/tasks.task.getaccess
  • JS
    try
    {
        const response = await $b24.callMethod(
            'tasks.task.getaccess',
            {
                taskId: 8017,
                users: [503, 547],
            }
        );
        
        const result = response.getData().result;
        console.log('Access data:', result);
        
        processResult(result);
    }
    catch( error )
    {
        console.error('Error:', error);
    }
  • PHP
    try {
        $response = $b24Service
            ->core
            ->call(
                'tasks.task.getaccess',
                [
                    'taskId' => 8017,
                    'users' => [503, 547]
                ]
            );

        $result = $response
            ->getResponseData()
            ->getResult();

        echo 'Success: ' . print_r($result, true);
        processData($result);

    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error: ' . $e->getMessage();
    }
  • BX24.js
    BX24.callMethod(
        'tasks.task.getaccess',
        {
            'taskId': 8017,
            'users': [503, 547]
        },
        function(result){
            console.info(result.data());
            console.log(result);
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'tasks.task.getaccess',
        [
            'taskId' => 8017,
            'users' => [503, 547]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';

Обработка ответа

HTTP-статус: 200

{
    "result": {
        "allowedActions": {
            "503": {
                "ACCEPT": false,
                "DECLINE": false,
                "COMPLETE": true,
                "APPROVE": false,
                "DISAPPROVE": false,
                "START": false,
                "PAUSE": true,
                "DELEGATE": true,
                "REMOVE": true,
                "EDIT": true,
                "DEFER": false,
                "RENEW": false,
                "CREATE": true,
                "CHANGE_DEADLINE": true,
                "CHECKLIST_ADD_ITEMS": true,
                "ADD_FAVORITE": false,
                "DELETE_FAVORITE": true,
                "RATE": true,
                "TAKE": false,
                "EDIT.ORIGINATOR": false,
                "CHECKLIST.REORDER": true,
                "ELAPSEDTIME.ADD": true,
                "DAYPLAN.TIMER.TOGGLE": true,
                "EDIT.PLAN": true,
                "CHECKLIST.ADD": true,
                "FAVORITE.ADD": false,
                "FAVORITE.DELETE": true
            },
            "547": {
                "ACCEPT": false,
                "DECLINE": false,
                "COMPLETE": false,
                "APPROVE": false,
                "DISAPPROVE": false,
                // ...
                "FAVORITE.DELETE": false
            }
        }
    },
    "time": {
        "start": 1758177122.815386,
        "finish": 1758177122.911002,
        "duration": 0.09561586380004883,
        "processing": 0.054609060287475586,
        "date_start": "2025-09-18T09:32:02+03:00",
        "date_finish": "2025-09-18T09:32:02+03:00",
        "operating_reset_at": 1758177722,
        "operating": 0
    }
}

Возвращаемые данные

Название
тип
Описание
result
object
Корневой элемент ответа.

Содержит объект c описанием доступных действий для каждого пользователя

allowedActions
object
Объект, в котором ключ — ID пользователя, значение — объект с описанием доступных действий над задачей.

Если у пользователя, выполняющего метод, нет доступа к задаче, вернется пустой массив "allowedActions":[].

Для несушествующих пользователей из параметра users метод вернет ответ со значением false для всех действий

time
time
Информация о времени выполнения запроса

Обработка ошибок

HTTP-статус: 400

{
    "error":"100",
    "error_description":"Invalid value {} to match with parameter {users}. Should be value of type array."
}

Возможные коды ошибок

КодОписаниеЗначение
0wrong task idВ параметре taskId указано значение неверного типа
100Invalid value {} to match with parameter {users}. Should be value of type array.Указано неверное значение в параметре users
100CTaskItem All parameters in the constructor must have real class typeНе указан обязательный параметр taskId
  • [](./index)

💡 Экспертное мнение и рекомендации

Советы эксперта по интеграции:

  • Всегда используйте кэширование при частых запросах к tasks.task.getaccess, чтобы разгрузить базу данных.
  • Соблюдайте стандарты PSR при написании обработчиков для «Проверить доступ к задаче tasks.task.getaccess».
  • Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

При удалении пользовательского поля onCrmLeadUserFieldDeleteПри удалении пользовательского поля onCrmLeadUserFieldDelete

При разработке и поддержке проектов на платформе 1С-Битрикс критически важно использовать современные стандарты D7 API. В этом руководстве мы детально изучим тему «При удалении пользовательского поля onCrmLeadUserFieldDelete», разберем архитектурные особенности

Интеграция Битрикс24 с телефонией Asterisk / FreePBXИнтеграция Битрикс24 с телефонией Asterisk / FreePBX

Профессиональная настройка и внедрение Битрикс24 CRM позволяет систематизировать работу отдела продаж, исключить потерю лидов и автоматизировать ключевые бизнес-процессы компании. Услуга «Интеграция Битрикс24 с телефонией Asterisk / FreePBX» обеспечивает подключение корпоративной

При удалении отгрузки из базы OnShipmentDeletedПри удалении отгрузки из базы OnShipmentDeleted

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «При удалении отгрузки из базы OnShipmentDeleted». Мы подготовили подробный разбор принципов работы и развернутые примеры