• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/search/companysearchcontentbuilder.php
  • Класс: Bitrix\Crm\Search\CompanySearchContentBuilder
  • Вызов: CompanySearchContentBuilder::prepareSearchMap
protected function prepareSearchMap(array $fields, array $options = null)
{
	$map = new SearchMap();

	$entityID = isset($fields['ID']) ? (int)$fields['ID'] : 0;
	if($entityID <= 0)
	{
		return $map;
	}

	$isShortIndex = ($options['isShortIndex'] ?? false);
	if(!$isShortIndex)
	{
		$map->add($entityID);
	}

	$title = isset($fields['TITLE']) ? $fields['TITLE'] : '';
	if($title !== '')
	{
		$map->addText($title);
		$map->addText(SearchEnvironment::prepareSearchContent($title));

		$customerNumber = $this->parseCustomerNumber($title, \CCrmCompany::GetAutoTitleTemplate());
		if($customerNumber != $entityID)
		{
			$map->addTextFragments($customerNumber);
		}
	}

	if(isset($fields['ASSIGNED_BY_ID']) && !$isShortIndex)
	{
		$map->addUserByID($fields['ASSIGNED_BY_ID']);
	}

	$multiFields = $this->getEntityMultiFields($entityID);
	if(isset($multiFields[\CCrmFieldMulti::PHONE]))
	{
		foreach($multiFields[\CCrmFieldMulti::PHONE] as $multiField)
		{
			if(isset($multiField['VALUE']))
			{
				$map->addPhone($multiField['VALUE']);
			}
		}
	}
	if(isset($multiFields[\CCrmFieldMulti::EMAIL]))
	{
		foreach($multiFields[\CCrmFieldMulti::EMAIL] as $multiField)
		{
			if(isset($multiField['VALUE']))
			{
				$map->addEmail($multiField['VALUE']);
			}
		}
	}

	if(isset($fields['INDUSTRY']) && !$isShortIndex)
	{
		$map->addStatus('INDUSTRY', $fields['INDUSTRY']);
	}

	if(isset($fields['COMMENTS']) && !$isShortIndex)
	{
		$map->addHtml($fields['COMMENTS'], 1024);
	}

	//region UserFields
	if (!$isShortIndex)
	{
		foreach($this->getUserFields($entityID) as $userField)
		{
			$map->addUserField($userField);
		}
	}
	//endregion

	return $map;
}