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

		$topIdList = CCrmCompany::GetTopIDsInCategory(
			0,
			self::ELEMENTS_LIMIT,
			'DESC',
			$userPermissions
		);

		if(empty($topIdList))
		{
			$companies = new CDBResult();
			$companies->InitFromArray([]);
		}
		else
		{
			$companies = CCrmCompany::GetListEx(
				['ID' => 'DESC'],
				['@ID' => $topIdList, 'CHECK_PERMISSIONS' => 'N'],
				false,
				false,
				['ID', 'TITLE', 'COMPANY_TYPE', 'INDUSTRY', 'LOGO']
			);
		}

		$companyTypeList = CCrmStatus::GetStatusListEx('COMPANY_TYPE');
		$companyIndustryList = CCrmStatus::GetStatusListEx('INDUSTRY');

		while($company = $companies->Fetch())
		{
			$imageUrl = '';
			if(isset($company['LOGO']) && $company['LOGO'] > 0)
			{
				$image = CFile::ResizeImageGet(
					$company['LOGO'],
					['width' => 25, 'height' => 25],
					BX_RESIZE_IMAGE_EXACT
				);
				if(is_array($image) && isset($image['src']))
				{
					$imageUrl = $image['src'];
				}
			}

			$company['SID'] = ($result['PREFIX'] === 'Y' ? 'CO_' . $company['ID'] : $company['ID']);

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

			$desc = [];

			if(isset($companyTypeList[$company['COMPANY_TYPE']]))
			{
				$desc[] = $companyTypeList[$company['COMPANY_TYPE']];
			}

			if(isset($companyIndustryList[$company['INDUSTRY']]))
			{
				$desc[] = $companyIndustryList[$company['INDUSTRY']];
			}

			$result['ELEMENT'][] = [
				'title' => (str_replace([';', ','], ' ', $company['TITLE'])),
				'desc' => implode(', ', $desc),
				'id' => $company['SID'],
				'url' => CComponentEngine::MakePathFromTemplate(
					COption::GetOptionString('crm', 'path_to_company_show'),
					['company_id' => $company['ID']]
				),
				'image' => $imageUrl,
				'type' => 'company',
				'selected' => $isSelected
			];
		}
	}
}