• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/userfield/datamodifiers/element.php
  • Класс: Bitrix\Crm\UserField\DataModifiers\Element
  • Вызов: Element::setLeads
static function setLeads(array &$result, array $params, $userPermissions): void
{
	if(in_array('LEAD', $params['ENTITY_TYPE'], true))
	{
		$hasNameFormatter = method_exists('CCrmLead', 'PrepareFormattedName');
		$result['ENTITY_TYPE'][] = 'lead';

		if(method_exists('CCrmLead', 'GetTopIDs'))
		{
			$topIdList = CCrmLead::GetTopIDs(
				self::ELEMENTS_LIMIT,
				'DESC',
				$userPermissions
			);

			if(empty($topIdList))
			{
				$leads = new CDBResult();
				$leads->InitFromArray([]);
			}
			else
			{
				$leads = CCrmLead::GetListEx(
					['ID' => 'DESC'],
					['@ID' => $topIdList, 'CHECK_PERMISSIONS' => 'N'],
					false,
					false,
					['ID', 'TITLE', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME', 'FULL_NAME']
				);
			}
		}
		else
		{
			$leads = CCrmLead::GetListEx(
				['ID' => 'DESC'],
				[],
				false,
				['nTopCount' => self::ELEMENTS_LIMIT],
				(
				$hasNameFormatter
					? ['ID', 'TITLE', 'HONORIFIC', 'NAME', 'SECOND_NAME', 'LAST_NAME']
					: ['ID', 'TITLE', 'FULL_NAME']
				)
			);
		}

		while($lead = $leads->Fetch())
		{
			$lead['SID'] = (
			$result['PREFIX'] === 'Y'
				? 'L_' . $lead['ID'] : $lead['ID']
			);

			$isSelected = self::getIsSelectedValue($result, $params, $lead);
			self::removeItemFromResultList($result, $params, $lead);

			if($hasNameFormatter)
			{
				$description = CCrmLead::PrepareFormattedName(
					[
						'HONORIFIC' => ($lead['HONORIFIC'] ?? ''),
						'NAME' => ($lead['NAME'] ?? ''),
						'SECOND_NAME' => ($lead['SECOND_NAME'] ?? ''),
						'LAST_NAME' => ($lead['LAST_NAME'] ?? '')
					]
				);
			}
			else
			{
				$description = $lead['FULL_NAME'] ?? '';
			}

			$result['ELEMENT'][] = [
				'title' => (str_replace([';', ','], ' ', $lead['TITLE'])),
				'desc' => $description,
				'id' => $lead['SID'],
				'url' => CComponentEngine::MakePathFromTemplate(
					COption::GetOptionString('crm', 'path_to_lead_show'),
					['lead_id' => $lead['ID']]
				),
				'type' => 'lead',
				'selected' => $isSelected
			];
		}
	}
}