Поиск лидов по названию или связанным сущностям

Этот PHP-код позволяет искать лиды в Битрикс24 по названию, а также по связанным контактам или компаниям.

use Bitrix\Crm\LeadTable;
use Bitrix\Crm\Service\Container;

// Параметры поиска
$searchQuery = $this->GetRootActivity()->GetVariable("SearchQuery"); // Строка для поиска по названию
$contactId = $this->GetRootActivity()->GetVariable("ContactID"); // ID связанного контакта
$companyId = $this->GetRootActivity()->GetVariable("CompanyID"); // ID связанной компании

$arFilter = [];
if ($searchQuery) {
    $arFilter['%TITLE'] = $searchQuery; // Поиск по части названия
}
if ($contactId) {
    $arFilter['CONTACT_ID'] = $contactId;
}
if ($companyId) {
    $arFilter['COMPANY_ID'] = $companyId;
}

$foundLeadsCount = 0;
$leadIDs = [];
$errorMessage = '';

if (empty($arFilter)) {
    $errorMessage = "КРИТИЧНО: Не указаны параметры для поиска лидов.";
    $this->WriteToTrackingService($errorMessage);
} else {
    $arSelect = ['ID'];

    $arLeads = LeadTable::getList([
        'order' => ['ID' => 'DESC'],
        'filter' => $arFilter,
        'select' => $arSelect,
        'cache' => ['ttl' => 3600]
    ])->fetchAll();

    foreach ($arLeads as $lead) {
        $leadIDs[] = $lead['ID'];
    }
    $foundLeadsCount = count($leadIDs);
}

$rootActivity = $this->GetRootActivity();
$rootActivity->SetVariable("FoundLeadsCount", $foundLeadsCount);
$rootActivity->SetVariable("LeadIDs", implode(",", $leadIDs));
$rootActivity->SetVariable("LeadSearchErrorMessage", $errorMessage);

Параметры

  • SearchQuery (string, optional): Строка для поиска по названию лида.
  • ContactID (int, optional): ID связанного контакта для фильтрации.
  • CompanyID (int, optional): ID связанной компании для фильтрации.

Возвращаемые значения

  • FoundLeadsCount (int): Количество найденных лидов.
  • LeadIDs (string): Строка с ID найденных лидов, разделенных запятыми.
  • LeadSearchErrorMessage (string): Сообщение об ошибке, если операция не удалась.

Рекомендации по использованию

  • Используйте этот скрипт для поиска лидов по различным критериям.
  • Можно комбинировать параметры поиска для более точных результатов.