• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_report_helper.php
  • Класс: \CCrmReportHelper
  • Вызов: CCrmReportHelper::fillFilterReferenceColumn
static function fillFilterReferenceColumn(&$filterElement, Main\Entity\ReferenceField $field)
{
	if (
		$field->getRefEntityName() === '\Bitrix\Crm\Company'
		|| $field->getRefEntityName() === '\Bitrix\Crm\CompanyTable'
	)
	{
		// CrmCompany
		if ($filterElement['value'])
		{
			$entity = CCrmCompany::GetById($filterElement['value']);
			if ($entity)
			{
				$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['TITLE']);
			}
			else
			{
				$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_COMPANY_NOT_FOUND'));
			}
		}
		else
		{
			$filterElement['value'] = array('id' => '');
		}
	}
	elseif (
		$field->getRefEntityName() == '\Bitrix\Crm\Contact'
		|| $field->getRefEntityName() == '\Bitrix\Crm\ContactTable'
	)
	{
		// CrmContact
		if ($filterElement['value'])
		{
			$entity = CCrmContact::GetById($filterElement['value']);
			if ($entity)
			{
				$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['FULL_NAME']);
			}
			else
			{
				$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_CONTACT_NOT_FOUND'));
			}
		}
		else
		{
			$filterElement['value'] = array('id' => '');
		}
	}
	elseif ($field->getRefEntityName() == '\Bitrix\Crm\Invoice')
	{
		// CrmInvoice
		if ($filterElement['value'])
		{
			$entity = CCrmInvoice::GetById($filterElement['value']);
			if ($entity)
			{
				$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['ORDER_TOPIC']);
			}
			else
			{
				$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_INVOICE_NOT_FOUND'));
			}
		}
		else
		{
			$filterElement['value'] = array('id' => '');
		}
	}
	elseif ($field->getRefEntityName() == '\Bitrix\Crm\Deal')
	{
		// CrmDeal
		if ($filterElement['value'])
		{
			$entity = CCrmDeal::GetById($filterElement['value']);
			if ($entity)
			{
				$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['TITLE']);
			}
			else
			{
				$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_DEAL_NOT_FOUND'));
			}
		}
		else
		{
			$filterElement['value'] = array('id' => '');
		}
	}
	elseif ($field->getRefEntityName() == '\Bitrix\Crm\Lead')
	{
		// CrmLead
		if ($filterElement['value'])
		{
			$entity = CCrmLead::GetById($filterElement['value']);
			if ($entity)
			{
				$filterElement['value'] = array('id' => $entity['ID'], 'name' => $entity['TITLE']);
			}
			else
			{
				$filterElement['value'] = array('id' => $filterElement['value'], 'name' => GetMessage('CRM_LEAD_NOT_FOUND'));
			}
		}
		else
		{
			$filterElement['value'] = array('id' => '');
		}
	}
	parent::fillFilterReferenceColumn($filterElement, $field);
}