Получение всех лидов по контакту со счетчиком

Этот PHP-код позволяет получить список ID лидов, связанных с определенным контактом, а также подсчитать их количество.

use Bitrix\Crm\LeadTable;
// CONTACT_ID - ID Контакта, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже 

$arFilter =[

    'CONTACT_ID' => "{{ID}}"];

$arSelect =[
    'ID'
];

$arLeads = LeadTable::getList([

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

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

$rootActivity = $this->GetRootActivity();

// Присваиваем переменным в БП (LeadIDs, TotalAmount) значения массива с идентификаторами лидов и их кол-ва 

$rootActivity->SetVariable("LeadIDs", $leads);
$rootActivity->SetVariable("count_lead", $count);

Получение всех лидов по контакту и разные валюты в разных переменных

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

use Bitrix\Crm\LeadTable;
// CONTACT_ID - ID Контакта, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
    'CONTACT_ID' => "{{ID}}"];

$arSelect =[
    'ID',
    'OPPORTUNITY',
    'CURRENCY_ID'];

$arLeads = LeadTable::getList([

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

$leads =[];
$rub = 0;
$dollar = 0;
foreach ($arLeads as $lead){

    $leads[]= $lead['ID'];
    if ($lead['CURRENCY_ID']== 'RUB'){

        $rub += $lead['OPPORTUNITY'];}elseif ($lead['CURRENCY_ID']== 'USD'){

        $dollar += $lead['OPPORTUNITY'];}
}


$rootActivity = $this->GetRootActivity();

// Присваиваем переменным в БП (LeadIDs, rub, dollar) значения массива с идентификаторами лидов и сумм лидов в разных валютах
$rootActivity->SetVariable("LeadIDs", $leads);
$rootActivity->SetVariable("rub", $rub);
$rootActivity->SetVariable("dollar", $dollar);

Получение всех лидов по контакту с суммами по лидам, если они все в одной валюте

Этот PHP-код позволяет получить список ID лидов, связанных с определенным контактом, а также общую сумму лидов, если они все в одной валюте.

use Bitrix\Crm\LeadTable;
// CONTACT_ID - ID Контакта, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[
    'CONTACT_ID' => "{{ID}}"
];

$arSelect =[
    'ID',
    'OPPORTUNITY'
];

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

$leads =[];
$total = 0;
foreach ($arLeads as $lead){

$leads[]= $lead['ID'];
$total += $lead['OPPORTUNITY'];}


$rootActivity = $this->GetRootActivity();

// Присваиваем переменным в БП (LeadIDs, TotalAmount) значения массива с идентификаторами лидов и общей суммы лидов
$rootActivity->SetVariable("LeadIDs", $leads);
$rootActivity->SetVariable("TotalAmount", $total);

Получение всех лидов по контакту

Этот PHP-код позволяет получить список ID лидов, связанных с определенным контактом.

use Bitrix\Crm\LeadTable;
// CONTACT_ID - ID Контакта, каждое значение можете заменить на переменную (в двойных кавычках), либо указать конкретное значение (в одинарных - как текст) как это указано ниже
$arFilter =[

    'CONTACT_ID' => "{{ID}}"];

$arSelect =['ID'];

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

$leads =[];
foreach ($arLeads as $lead){$leads[]= $lead['ID'];}$rootActivity = $this->GetRootActivity();

// Присваиваем переменной в БП "LeadIDs" значение массива с идентификаторами лидов
$rootActivity->SetVariable("LeadIDs", $leads);