Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Создать новый поток tasks.flow.Flow.create». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.
Создать новый поток tasks.flow.Flow.create
> Scope: task
>
> Кто может выполнять метод: любой пользователь, не являющийся экстранетом
Метод tasks.flow.Flow.create создает поток.
Поток должен привязываться к группе. Если не передать идентификатор группы при создании потока, автоматически будет создана новая группа, участниками которой будут создатель, администратор и команда потока.
Параметры метода
Названиетип | Описание |
|---|---|
flowDataobject | Значения полей для создания потока (подробное описание приведено ниже) |
Параметр flowData
Названиетип | Описание |
|---|---|
name string | Название потока. Должно быть уникальным для каждого потока. Проверить название можно методом tasks.flow.Flow.isExists |
description string | Описание потока |
groupId integer | Идентификатор группы, к которой будет привязан поток. Если не указать — автоматически создается новая группа |
ownerId integer | Идентификатор администратора потока. Если не указать, администратором будет создатель потока |
templateId integer | Идентификатор шаблона, по которому пользователи будут добавлять задачи в поток |
plannedCompletionTime integer | Планируемое время выполнения задачи в секундах |
distributionType string | Тип распределения: — manually — ручное распределение— queue — распределение по очереди— himself — самостоятельное распределениеПодробнее о типах распределения — в статье [](./index) |
responsibleList* object | Идентификаторы сотрудников, которые получат задачи. Для ручного распределения укажите идентификатор модератора потока. Для самостоятельного распределения или распределения по очереди укажите идентификаторы сотрудников или отделы. Например: Если не добавить суффикс |
taskCreators object | Список пользователей, которые могут добавлять задачи в поток в формате {"<тип-сущности>": "<идентификатор-сущности>"}. НапримерЕсли не добавить суффикс Чтобы задачи могли добавлять все пользователи, укажите значение |
matchWorkTime integer | Пропускать выходные и праздничные дни для расчета крайнего срока задачи. Принимает значения |
responsibleCanChangeDeadline integer | Может ли ответственный менять дедлайн задачи. Принимает значения |
notifyAtHalfTime integer | Уведомлять исполнителя на половине срока задачи. Принимает значения |
taskControl integer | Отправлять выполненную задачу постановщику для проверки. Принимает значения |
notifyOnQueueOverflow integer | Уведомлять администратора потока, когда задач в очереди более этого параметра. По умолчанию — |
notifyOnTasksInProgressOverflow integer | Уведомлять администратора потока, когда задач в очереди больше этого параметра. По умолчанию — |
notifyWhenEfficiencyDecreases integer | Уведомлять администратора потока, когда эффективность упала ниже этого параметра. По умолчанию — |
Примеры кода
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-d '{
"flowData": {
"name": "Unique Flow Name",
"description": "Описание потока",
"plannedCompletionTime": 7200,
"distributionType": "manually",
"responsibleList": [["user","3"]],
"taskCreators": [["meta-user","all-users"]],
"matchWorkTime": 1,
"notifyAtHalfTime": 0
}
}' \
https://your-domain.bitrix24.com/rest/_USER_ID_/_CODE_/tasks.flow.Flow.create- cURL (oAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"flowData": {
"name": "Unique Flow Name",
"description": "Описание потока",
"plannedCompletionTime": 7200,
"distributionType": "manually",
"responsibleList": [["user","3"]],
"taskCreators": [["meta-user","all-users"]],
"matchWorkTime": 1,
"notifyAtHalfTime": 0
}
}' \
https://your-domain.bitrix24.com/rest/tasks.flow.Flow.create- JS
try
{
const response = await $b24.callMethod(
'tasks.flow.Flow.create',
{
flowData: {
name: 'Unique Flow Name',
description: 'Описание потока',
plannedCompletionTime: 7200,
distributionType: 'manually',
responsibleList: [
[
'user','3'
]
],
taskCreators: [
[
'meta-user','all-users'
]
],
matchWorkTime: 1,
notifyAtHalfTime: 0
}
}
);
const result = response.getData().result;
console.info(result);
}
catch( error )
{
console.error(error);
}- PHP
try {
$response = $b24Service
->core
->call(
'tasks.flow.Flow.create',
[
'flowData' => [
'name' => 'Unique Flow Name',
'description' => 'Описание потока',
'plannedCompletionTime' => 7200,
'distributionType' => 'manually',
'responsibleList' => [
['user', '3']
],
'taskCreators' => [
['meta-user', 'all-users']
],
'matchWorkTime' => 1,
'notifyAtHalfTime' => 0
]
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error creating flow: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'tasks.flow.Flow.create',
{
flowData: {
name: 'Unique Flow Name',
description: 'Описание потока',
plannedCompletionTime: 7200,
distributionType: 'manually',
responsibleList: [
[
'user','3'
]
],
taskCreators: [
[
'meta-user','all-users'
]
],
matchWorkTime: 1,
notifyAtHalfTime: 0
}
},
function(result) {
if (result.error()) {
console.error(result.error());
} else {
console.info(result.data());
}
}
);- PHP CRest
require_once('crest.php'); // подключение CRest PHP SDK
$flowData = [
"name" => "Unique Flow Name",
"description" => "Описание потока",
"plannedCompletionTime" => 7200,
"distributionType" => "manually",
"responsibleList" => [["user", "3"]],
"taskCreators" => [["meta-user", "all-users"]],
"matchWorkTime" => 1,
"notifyAtHalfTime" => 0
];
// выполнение запроса к REST API
$result = CRest::call(
'tasks.flow.Flow.create',
[
'flowData' => $flowData
]
);
// Обработка ответа от Битрикс24
if ($result['error']) {
echo 'Error: '.$result['error_description'];
} else {
print_r($result['result']);
}Обработка ответа
HTTP-статус: 200
{
"result": {
"id": 517,
"creatorId": 1,
"ownerId": 1,
"groupId": 178,
"templateId": 0,
"efficiency": 0,
"active": true,
"plannedCompletionTime": 7200,
"activity": "2024-09-02T15:27:29+00:00",
"name": "Updated Flow Name",
"description": "Updated description",
"distributionType": "manually",
"responsibleList": [
[
"user",
"3"
]
],
"demo": false,
"responsibleCanChangeDeadline": true,
"matchWorkTime": true,
"taskControl": false,
"notifyAtHalfTime": false,
"notifyOnQueueOverflow": 10,
"notifyOnTasksInProgressOverflow": 50,
"notifyWhenEfficiencyDecreases": null,
"taskCreators": [
[
"meta-user",
"all-users"
]
],
"team": [
[
"user",
"3"
]
],
"trialFeatureEnabled": false
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
result object | Объект с данными потока |
id integer | Идентификатор созданного потока |
creatorId integer | Идентификатор создателя потока. Только для чтения |
ownerId integer | Идентификатор администратора потока |
groupId integer | Идентификатор группы, к которой привязан поток |
templateId integer | Идентификатор шаблона, по которому создаются задачи в потоке |
efficiency integer | Эффективность потока в процентах. Только для чтения |
active boolean | Статус активности потока |
plannedCompletionTime integer | Планируемое время выполнения задачи в секундах |
activity string | Дата и время последней активности в потоке. Только для чтения |
name string | Название потока |
description string | Описание потока |
distributionType string | Тип распределения задач в потоке |
responsibleList array | Список ответственных за задачи в потоке. Для ручного распределения это модератор потока |
demo boolean | Является ли поток демонстрационным. Системный параметр. Только для чтения |
responsibleCanChangeDeadline boolean | Может ли ответственный менять дедлайн задачи |
matchWorkTime boolean | Пропускать ли выходные и праздничные дни при расчете крайнего срока задачи |
taskControl boolean | Отправлять ли выполненную задачу постановщику для проверки |
notifyAtHalfTime boolean | Уведомлять ли исполнителя на половине срока задачи |
notifyOnQueueOverflow integer | Количество задач в очереди, при превышении которого будет отправлено уведомление администратору потока (если null, то уведомления выключены) |
notifyOnTasksInProgressOverflow integer | Количество задач в работе, при превышении которого будет отправлено уведомление администратору потока (если null, то уведомления выключены) |
notifyWhenEfficiencyDecreases integer | Эффективность в процентах, при снижении до которой будет отправлено уведомление администратору потока (если null, то уведомления выключены) |
taskCreators object | Список пользователей, которые могут добавлять задачи в поток в формате {"<тип-объекта>": "<идентификатор-объекта>"}. Например, [{"user": 3}, {"department": "17:F"}].Элемент |
team object | Команда потока. Для ручного распределения это все участники проекта, к которому привязан поток, кроме модератора. Для распределения по очереди и самостоятельного распределения команда та же, что и в |
trialFeatureEnabled boolean | Включен ли демонстрационный период для потока. Системный параметр. Только для чтения |
Обработка ошибок
HTTP-статус: 400
{
"error": "0",
"error_description": "Доступ запрещен или поток не найден"
}Возможные коды ошибок
| Код | Описание | Дополнительная информация |
|---|---|---|
0 | Доступ запрещен или поток не найден | Тариф портала не позволяет работать с потоками или у пользователя нет прав на создание потока |
0 | Unknown error | Неизвестная ошибка |
0 | 'distributionType': field's value has an invalid value | Некорретное значение distributionType (аналогично с другими параметрами) |
0 | Поток с таким названием уже существует |
- [](./tasks-flow-flow-update)
- [](./tasks-flow-flow-get)
- [](./tasks-flow-flow-delete)
- [](./tasks-flow-flow-is-exists)
- [](./tasks-flow-flow-activate)
- [](./tasks-flow-flow-pin)
💡 Экспертное мнение и рекомендации
Советы эксперта по интеграции:
- Всегда используйте кэширование при частых запросах к tasks.flow.Flow.create, чтобы разгрузить базу данных.
- Соблюдайте стандарты PSR при написании обработчиков для «Создать новый поток tasks.flow.Flow.create».
- Регулярно проводите аудит производительности системы с помощью встроенного монитора 1С-Битрикс.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru