Участники задач
В Bitrix24 задачи могут иметь несколько типов участников:
- Ответственный (
responsible) — пользователь, который выполняет задачу. У задачи может быть только один ответственный. - Соисполнители (
accomplices) — пользователи, которые помогают ответственному в выполнении задачи. - Наблюдатели / Аудиторы (
auditors) — пользователи, которые следят за ходом выполнения задачи и получают уведомления об изменениях. - Создатель (
creator) — пользователь, создавший задачу. Может быть передан другому пользователю.
Пространства имён
Команды для управления участниками находятся в двух пространствах имён:
| Тип участника | Пространство имён |
|---|---|
| Наблюдатели (watch/unwatch) | Bitrix\Tasks\V2\Public\Command\Task\Audit |
| Стейкхолдеры (делегирование, соисполнители, аудиторы) | Bitrix\Tasks\V2\Public\Command\Task\Stakeholder |
Наблюдатели (Audit)
Команды из пространства имён Bitrix\Tasks\V2\Public\Command\Task\Audit позволяют управлять наблюдателями задачи по одному пользователю.
WatchTaskCommand
WatchTaskCommand добавляет пользователя в список наблюдателей задачи. Наблюдатели получают уведомления об изменениях.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$userId |
int |
Да | ID пользователя, выполняющего действие |
$auditorId |
int |
Да | ID пользователя, которого добавляют в наблюдатели |
$skipNotification |
bool |
Нет | Пропустить отправку уведомления (по умолчанию false) |
$useConsistency |
bool |
Нет | Использовать консистентность данных (по умолчанию false) |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Audit\WatchTaskCommand;
$command = new WatchTaskCommand(
taskId: 100,
userId: 1,
auditorId: 2
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Пользователь добавлен в наблюдатели.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
UnwatchTaskCommand
UnwatchTaskCommand удаляет пользователя из списка наблюдателей задачи.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$userId |
int |
Да | ID пользователя, выполняющего действие |
$auditorId |
int |
Да | ID пользователя, которого удаляют из наблюдателей |
$useConsistency |
bool |
Нет | Использовать консистентность данных (по умолчанию false) |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Audit\UnwatchTaskCommand;
$command = new UnwatchTaskCommand(
taskId: 100,
userId: 1,
auditorId: 2
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Пользователь удален из наблюдателей.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
Стейкхолдеры (Stakeholder)
Команды из пространства имён Bitrix\Tasks\V2\Public\Command\Task\Stakeholder позволяют управлять ответственным, соисполнителями, аудиторами и создателем задачи. Все команды принимают объект UpdateConfig для настройки процесса обновления.
DelegateCommand
DelegateCommand меняет ответственного исполнителя задачи. Используется для делегирования задачи другому пользователю.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$responsibleId |
int |
Да | ID нового ответственного пользователя |
$config |
UpdateConfig |
Да | Конфигурация обновления задачи |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Stakeholder\DelegateCommand;
use Bitrix\Tasks\V2\Internal\Service\Task\Action\Update\Config\UpdateConfig;
$config = new UpdateConfig(
userId: 1,
skipNotifications: false,
);
$command = new DelegateCommand(
taskId: 100,
responsibleId: 5,
config: $config,
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Ответственный изменён.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
SetAccomplicesCommand
SetAccomplicesCommand устанавливает список соисполнителей задачи. Заменяет текущий список соисполнителей на переданный.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$accompliceIds |
int[] |
Да | Массив ID пользователей — соисполнителей |
$config |
UpdateConfig |
Да | Конфигурация обновления задачи |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Stakeholder\SetAccomplicesCommand;
use Bitrix\Tasks\V2\Internal\Service\Task\Action\Update\Config\UpdateConfig;
$config = new UpdateConfig(userId: 1);
$command = new SetAccomplicesCommand(
taskId: 100,
accompliceIds: [3, 4, 5],
config: $config,
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Соисполнители обновлены.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
SetAuditorsCommand
SetAuditorsCommand устанавливает список аудиторов (наблюдателей) задачи. Заменяет текущий список аудиторов на переданный.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$auditorIds |
int[] |
Да | Массив ID пользователей — аудиторов |
$config |
UpdateConfig |
Да | Конфигурация обновления задачи |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Stakeholder\SetAuditorsCommand;
use Bitrix\Tasks\V2\Internal\Service\Task\Action\Update\Config\UpdateConfig;
$config = new UpdateConfig(userId: 1);
$command = new SetAuditorsCommand(
taskId: 100,
auditorIds: [10, 11],
config: $config,
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Аудиторы обновлены.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
AddAuditorsCommand
AddAuditorsCommand добавляет новых аудиторов к уже существующему списку наблюдателей задачи (в отличие от SetAuditorsCommand, который заменяет список).
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$auditorIds |
int[] |
Да | Массив ID пользователей для добавления в аудиторы |
$config |
UpdateConfig |
Да | Конфигурация обновления задачи |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Stakeholder\AddAuditorsCommand;
use Bitrix\Tasks\V2\Internal\Service\Task\Action\Update\Config\UpdateConfig;
$config = new UpdateConfig(userId: 1);
$command = new AddAuditorsCommand(
taskId: 100,
auditorIds: [12, 13],
config: $config,
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Аудиторы добавлены.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
DeleteAuditorsCommand
DeleteAuditorsCommand удаляет указанных аудиторов из списка наблюдателей задачи.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$auditorIds |
int[] |
Да | Массив ID пользователей для удаления из аудиторов |
$config |
UpdateConfig |
Да | Конфигурация обновления задачи |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Stakeholder\DeleteAuditorsCommand;
use Bitrix\Tasks\V2\Internal\Service\Task\Action\Update\Config\UpdateConfig;
$config = new UpdateConfig(userId: 1);
$command = new DeleteAuditorsCommand(
taskId: 100,
auditorIds: [10],
config: $config,
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Аудиторы удалены.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
UpdateCreatorCommand
UpdateCreatorCommand меняет создателя задачи. Позволяет передать авторство задачи другому пользователю, при этом необходимо указать текущего ответственного.
Входные аргументы:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
$taskId |
int |
Да | ID задачи |
$creatorId |
int |
Да | ID нового создателя задачи |
$responsibleId |
int |
Да | ID текущего ответственного |
$config |
UpdateConfig |
Да | Конфигурация обновления задачи |
Пример использования:
use Bitrix\Tasks\V2\Public\Command\Task\Stakeholder\UpdateCreatorCommand;
use Bitrix\Tasks\V2\Internal\Service\Task\Action\Update\Config\UpdateConfig;
$config = new UpdateConfig(userId: 1);
$command = new UpdateCreatorCommand(
taskId: 100,
creatorId: 7,
responsibleId: 5,
config: $config,
);
$result = $command->run();
if ($result->isSuccess()) {
echo "Создатель задачи изменён.";
} else {
foreach ($result->getErrors() as $error) {
echo "Ошибка: {$error->getMessage()}";
}
}
Сравнение команд для аудиторов
| Команда | Пространство имён | Действие | Принимает |
|---|---|---|---|
WatchTaskCommand |
Audit |
Добавить одного наблюдателя | int $auditorId |
UnwatchTaskCommand |
Audit |
Удалить одного наблюдателя | int $auditorId |
SetAuditorsCommand |
Stakeholder |
Заменить весь список аудиторов | int[] $auditorIds |
AddAuditorsCommand |
Stakeholder |
Добавить аудиторов к существующим | int[] $auditorIds |
DeleteAuditorsCommand |
Stakeholder |
Удалить указанных аудиторов | int[] $auditorIds |
Команды из Audit работают с одним пользователем и не требуют UpdateConfig. Команды из Stakeholder работают с массивами пользователей и принимают UpdateConfig для настройки поведения обновления (уведомления, бизнес-процессы и т.д.).