Блог Горошко Андрея Bitrix24,PHP Получить список спринтов tasks.api.scrum.sprint.list

Получить список спринтов tasks.api.scrum.sprint.list

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

Получить список спринтов tasks.api.scrum.sprint.list

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

Метод tasks.api.scrum.sprint.list возвращает список спринтов.

Метод аналогичен другим методам с фильтрацией по списку.

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

Название
тип
Описание
order
object
Объект для сортировки результата. Объект вида {'поле_сортировки': 'направление сортировки' [, ...]}. Доступные поля описаны в таблице ниже.

Направление сортировки может принимать значения:
— asc — по возрастанию
— desc — по убыванию

filter
object
Объект вида {'фильтруемое_поле': 'значение фильтра' [, ...]}. Доступные поля описаны в таблице ниже
select
object
Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы.

Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию — пустой массив array(). В этом случае будут возвращены все поля основной таблицы запроса

start
integer
Номер страницы вывода. Работает для https запросов

Доступные поля фильтра {#fields}

Название
тип
Описание
ID
integer
Идентификатор спринта
GROUP_ID
integer
Идентификатор Скрама
ENTITY_TYPE
string
Тип элемента
NAME
string
Имя
SORT
integer
Сортировка
CREATED_BY
integer
Кем создан
MODIFIED_BY
integer
Кем изменен
DATE_START
string
Дата запуска
DATE_END
string
Дата окончания
STATUS
string
Статус
INFO
object
Информация

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -d '{
    "filter": {
        "GROUP_ID": 1,
        ">=DATE_END": "2024-07-19T15:03:01+00:00"
    }
    }' \
    https://your-domain.bitrix24.com/rest/_USER_ID_/_CODE_/tasks.api.scrum.sprint.list
  • cURL (oAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -d '{
    "filter": {
        "GROUP_ID": 1,
        ">=DATE_END": "2024-07-19T15:03:01+00:00"
    },
    "auth": "YOUR_ACCESS_TOKEN"
    }' \
    https://your-domain.bitrix24.com/rest/tasks.api.scrum.sprint.list
  • JS
    // callListMethod рекомендуется использовать, когда необходимо получить весь набор списочных данных и объём записей относительно невелик (до примерно 1000 элементов). Метод загружает все данные сразу, что может привести к высокой нагрузке на память при работе с большими объемами.
    
    const groupId = 1;
    try {
      const response = await $b24.callListMethod(
        'tasks.api.scrum.sprint.list',
        {
          filter: {
            GROUP_ID: groupId,
            '>=DATE_END': new Date()
          }
        },
        (progress) => { console.log('Progress:', progress) }
      );
      const items = response.getData() || [];
      for (const entity of items) { console.log('Entity:', entity); }
    } catch (error) {
      console.error('Request failed', error);
    }
    
    // fetchListMethod предпочтителен при работе с крупными наборами данных. Метод реализует итеративную выборку с использованием генератора, что позволяет обрабатывать данные по частям и эффективно использовать память.
    
    const groupId = 1;
    try {
      const generator = $b24.fetchListMethod('tasks.api.scrum.sprint.list', {
        filter: {
          GROUP_ID: groupId,
          '>=DATE_END': new Date()
        }
      }, 'ID');
      for await (const page of generator) {
        for (const entity of page) { console.log('Entity:', entity); }
      }
    } catch (error) {
      console.error('Request failed', error);
    }
    
    // callMethod предоставляет ручной контроль над процессом постраничного получения данных через параметр start. Подходит для сценариев, где требуется точное управление пакетами запросов. Однако при больших объемах данных может быть менее эффективным по сравнению с fetchListMethod.
    
    const groupId = 1;
    try {
      const response = await $b24.callMethod('tasks.api.scrum.sprint.list', {
        filter: {
          GROUP_ID: groupId,
          '>=DATE_END': new Date()
        }
      }, 0);
      const result = response.getData().result || [];
      for (const entity of result) { console.log('Entity:', entity); }
    } catch (error) {
      console.error('Request failed', error);
    }
  • PHP
    $groupId = 1;
    
    try {
        $response = $b24Service
            ->core
            ->call(
                'tasks.api.scrum.sprint.list',
                [
                    'filter' => [
                        'GROUP_ID'    => $groupId,
                        '>=DATE_END' => new DateTime(),
                    ],
                ]
            );
    
        $result = $response
            ->getResponseData()
            ->getResult();
    
        echo 'Success: ' . print_r($result, true);
    
    } catch (Throwable $e) {
        error_log($e->getMessage());
        echo 'Error fetching sprint list: ' . $e->getMessage();
    }
  • BX24.js
    const groupId = 1;
    BX24.callMethod(
        'tasks.api.scrum.sprint.list',
        {
            filter: {
                GROUP_ID: groupId,
                '>=DATE_END': new Date()
            }
        },
        function(res)
        {
            console.log(res);
        }
    );
  • PHP CRest
    require_once('crest.php'); // подключение CRest PHP SDK

    // выполнение запроса к REST API
    $result = CRest::call(
        'tasks.api.scrum.sprint.list',
        [
            'filter' => [
                'GROUP_ID' => 1,
                '>=DATE_END' => '2024-07-19T15:03:01+00:00'
            ]
        ]
    );

    // Обработка ответа от Битрикс24
    if (isset($result['error'])) {
        echo 'Error: '.$result['error_description'];
    } else {
        print_r($result['result']);
    }

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

HTTP-статус: 200

[
    {
        "id": 2,
        "groupId": 143,
        "entityType": "sprint",
        "name": "Спринт 1",
        "goal": "",
        "sort": 1,
        "createdBy": 1,
        "modifiedBy": 1,
        "dateStart": "2024-07-19T15:03:01+00:00",
        "dateEnd": "2024-08-02T15:03:01+00:00",
        "status": "planned"
    },
    {
        "id": 3,
        "groupId": 1,
        "entityType": "sprint",
        "name": "Sprint 1",
        "goal": "",
        "sort": 1,
        "createdBy": 1,
        "modifiedBy": 1,
        "dateStart": "2021-11-21T22:00:00+00:00",
        "dateEnd": "2021-11-28T22:00:00+00:00",
        "status": "planned"
    }
]

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

Название
тип
Описание
result
object
Объект, содержащий данные о спринте
id
integer
Идентификатор спринта
groupId
integer
Идентификатор группы (Скрама), к которой относится спринт
entityType
string
Тип сущности (в данном случае sprint)
name
string
Название спринта
goal
string
Цель спринта. Устанавливается только в интерфейсе при запуске спринта
sort
integer
Сортировка
createdBy
integer
Идентификатор пользователя, создавшего спринт
modifiedBy
integer
Идентификатор пользователя, изменившего спринт
dateStart
string
Дата начала спринта в формате ISO 8601
dateEnd
string
Дата окончания спринта в формате ISO 8601
status
string
Статус спринта

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

HTTP-статус: 400

{
    "error": 0,
    "error_description": "Could not load list"
}

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

КодCообщение об ошибкеОписание
0Could not load listНе найдено ни одного спринта с указанными фильтрами
  • [](./tasks-api-scrum-sprint-add)
  • [](./tasks-api-scrum-sprint-update)
  • [](./tasks-api-scrum-sprint-start)
  • [](./tasks-api-scrum-sprint-complete)
  • [](./tasks-api-scrum-sprint-get)
  • [](./tasks-api-scrum-sprint-delete)
  • [](./tasks-api-scrum-sprint-get-fields)

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

Ключевые выводы по теме «Получить список спринтов tasks.api.scrum.sprint.list»:

Использование современных стандартов D7 при работе с tasks.api.scrum.sprint.list позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

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

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

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

Related Post

Изменить раздел товаров crm.productsection.updateИзменить раздел товаров crm.productsection.update

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Изменить раздел товаров crm.productsection.update». Вы узнаете экспертные методики работы с crm.productsection.update и научитесь

Как использовать метод SDK sale.tradePlatform.getFields в Битрикс24Как использовать метод SDK sale.tradePlatform.getFields в Битрикс24

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

Как использовать метод SDK crm.deal.contact.add в Битрикс24Как использовать метод SDK crm.deal.contact.add в Битрикс24

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