Получение задач по связанным сущностям CRM
Примеры получения ID задач, связанных с компаниями, контактами, сделками или лидами в Битрикс24, с использованием PHP.
Описание
В Битрикс24 задачи часто связаны с элементами CRM, такими как компании, контакты, сделки или лиды. Этот раздел содержит примеры PHP-кода, демонстрирующие, как получить список ID задач, которые привязаны к определенной сущности CRM. Это позволяет автоматизировать процессы, связанные с анализом загрузки по клиентам, контролем выполнения задач по проектам или формированием отчетов.
Примеры использования
Пример 1: Получение задач, связанных с компанией
Этот пример показывает, как получить ID всех задач, связанных с конкретной компанией.
use Bitrix\Tasks\Internals\TaskTable;
use Bitrix\Main\Loader;
Loader::includeModule('tasks');
Loader::includeModule('crm');
// ID компании, задачи которой нужно получить
$companyId = 1; // Замените на реальный ID компании
$taskIDs = [];
$res = TaskTable::getList([
'filter' => [
'=UF_CRM_TASK' => 'C_' . $companyId, // Связь с компанией
],
'select' => ['ID'],
]);
while ($task = $res->fetch()) {
$taskIDs[] = $task['ID'];
}
$this->TrackingService->WriteToTrackingService("Найдено " . count($taskIDs) . " задач, связанных с компанией " . $companyId . ".");
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("CompanyTaskIDs", $taskIDs);
Пример 2: Получение задач, связанных с контактом
Этот пример демонстрирует, как получить ID всех задач, связанных с конкретным контактом.
use Bitrix\Tasks\Internals\TaskTable;
use Bitrix\Main\Loader;
Loader::includeModule('tasks');
Loader::includeModule('crm');
// ID контакта, задачи которого нужно получить
$contactId = 2; // Замените на реальный ID контакта
$taskIDs = [];
$res = TaskTable::getList([
'filter' => [
'=UF_CRM_TASK' => 'CONTACT_' . $contactId, // Связь с контактом
],
'select' => ['ID'],
]);
while ($task = $res->fetch()) {
$taskIDs[] = $task['ID'];
}
$this->TrackingService->WriteToTrackingService("Найдено " . count($taskIDs) . " задач, связанных с контактом " . $contactId . ".");
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("ContactTaskIDs", $taskIDs);
Пример 3: Получение задач, связанных со сделкой
Этот пример показывает, как получить ID всех задач, связанных с конкретной сделкой.
use Bitrix\Tasks\Internals\TaskTable;
use Bitrix\Main\Loader;
Loader::includeModule('tasks');
Loader::includeModule('crm');
// ID сделки, задачи которой нужно получить
$dealId = 3; // Замените на реальный ID сделки
$taskIDs = [];
$res = TaskTable::getList([
'filter' => [
'=UF_CRM_TASK' => 'D_' . $dealId, // Связь со сделкой
],
'select' => ['ID'],
]);
while ($task = $res->fetch()) {
$taskIDs[] = $task['ID'];
}
$this->TrackingService->WriteToTrackingService("Найдено " . count($taskIDs) . " задач, связанных со сделкой " . $dealId . ".");
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("DealTaskIDs", $taskIDs);
Пример 4: Получение задач, связанных с лидом
Этот пример демонстрирует, как получить ID всех задач, связанных с конкретным лидом.
use Bitrix\Tasks\Internals\TaskTable;
use Bitrix\Main\Loader;
Loader::includeModule('tasks');
Loader::includeModule('crm');
// ID лида, задачи которого нужно получить
$leadId = 4; // Замените на реальный ID лида
$taskIDs = [];
$res = TaskTable::getList([
'filter' => [
'=UF_CRM_TASK' => 'L_' . $leadId, // Связь с лидом
],
'select' => ['ID'],
]);
while ($task = $res->fetch()) {
$taskIDs[] = $task['ID'];
}
$this->TrackingService->WriteToTrackingService("Найдено " . count($taskIDs) . " задач, связанных с лидом " . $leadId . ".");
$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("LeadTaskIDs", $taskIDs);
Параметры
$companyId
(int): ID компании.$contactId
(int): ID контакта.$dealId
(int): ID сделки.$leadId
(int): ID лида.
Возвращаемые значения
CompanyTaskIDs
(array): Массив целых чисел, содержащий ID задач, связанных с компанией.ContactTaskIDs
(array): Массив целых чисел, содержащий ID задач, связанных с контактом.DealTaskIDs
(array): Массив целых чисел, содержащий ID задач, связанных со сделкой.LeadTaskIDs
(array): Массив целых чисел, содержащий ID задач, связанных с лидом.
Рекомендации по использованию
- Всегда проверяйте наличие необходимых модулей (
tasks
,crm
) с помощьюLoader::includeModule()
. - Убедитесь, что ID сущностей CRM (компании, контакта, сделки, лида) соответствуют реальным данным.
- Поле
UF_CRM_TASK
используется для связи задач с элементами CRM. Формат значения:[Тип сущности]_[ID сущности]
, гдеТип сущности
может бытьC
(компания),CONTACT
(контакт),D
(сделка),L
(лид). - Результаты операций передаются в переменные бизнес-процесса с помощью
SetVariable()
.