• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/searchindex.php
  • Класс: BitrixTasksInternalsSearchIndex
  • Вызов: SearchIndex::getFieldValue
static function getFieldValue($field, $taskData)
{
	$fieldValue = [];

	switch ($field)
	{
		case 'TAGS':
			/** @var array|Collection $tags */
			$tags = $taskData[$field];
			$tags = (is_object($tags)? $tags->export() : (array)$tags);

			if ($tags)
			{
				$fieldValue[] = implode(' ', $tags);
			}
			break;

		case 'CREATED_BY':
		case 'RESPONSIBLE_ID':
			$fieldValue[] = implode(' ', User::getUserName([$taskData[$field]]));
			break;

		case 'AUDITORS':
			if (array_key_exists('AUDITORS', $taskData))
			{
				/** @var array|Collection $auditors */
				$auditors = $taskData[$field];
				$auditors = (is_object($auditors)? $auditors->toArray() : (array)$auditors);

				if ($auditors)
				{
					$fieldValue[] = implode(' ', User::getUserName(array_unique($auditors)));
				}
			}
			break;

		case 'ACCOMPLICES':
			if (array_key_exists('ACCOMPLICES', $taskData))
			{
				/** @var array|Collection $accomplices */
				$accomplices = $taskData[$field];
				$accomplices = (is_object($accomplices)? $accomplices->toArray() : (array)$accomplices);

				if ($accomplices)
				{
					$fieldValue[] = implode(' ', User::getUserName(array_unique($accomplices)));
				}
			}
			break;

		case 'GROUP_ID':
			$groupId = $taskData[$field];
			$groups = Group::getData([$groupId]);
			$groupName = ($groups[$groupId]['NAME'] ?? null);

			$fieldValue[] = $groupName;
			break;

		case 'SE_CHECKLIST':
			if (!isset($taskData[$field]) && isset($taskData['CHECKLIST']))
			{
				$field = 'CHECKLIST';
			}

			/** @var array|CheckList $checkList */
			$checkList = $taskData[$field];
			$checkList = (is_object($checkList)? $checkList->export() : (array)$checkList);

			foreach ($checkList as $item)
			{
				$fieldValue[] = $item['TITLE'];
			}
			break;

		case 'UF_CRM_TASK':
			if (Loader::includeModule('crm'))
			{
				if (!isset($taskData[$field]))
				{
					break;
				}
				/** @var array|Collection $crmItems */
				$crmItems = $taskData[$field];
				$crmItems = (is_object($crmItems)? $crmItems->toArray() : (array)$crmItems);

				foreach ($crmItems as $item)
				{
					if ($item)
					{
						$crmElement = explode('_', $item);
						$type = $crmElement[0];
						$typeId = CCrmOwnerType::ResolveID(CCrmOwnerTypeAbbr::ResolveName($type));
						$title = CCrmOwnerType::GetCaption($typeId, $crmElement[1]);

						$fieldValue[] = $title;
					}
				}
			}
			break;

		// ID, TITLE, DESCRIPTION
		default:
			if (array_key_exists($field, $taskData) && !empty($taskData[$field]))
			{
				$fieldValue[] = $taskData[$field];
			}
			break;
	}

	return $fieldValue;
}