• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/rest/controllers/task.php
  • Класс: BitrixTasksRestControllersTask
  • Вызов: Task::processCrmElements
private function processCrmElements(array $fields): array
{
	if (
		!array_key_exists('CRM', $fields)
		|| !Loader::includeModule('crm')
	)
	{
		return $fields;
	}

	$crmUfCode = CRMUserField::getMainSysUFCode();
	if (!is_array($fields[$crmUfCode] ?? null))
	{
		$fields[$crmUfCode] = [];
	}

	if (!is_array($fields['CRM']) || empty($fields['CRM']))
	{
		return $fields;
	}

	foreach ($fields['CRM'] as $item)
	{
		$entityTypeName = $item['type'];
		$entityId = $item['id'];

		if ($entityTypeName === DynamicMultipleProvider::DYNAMIC_MULTIPLE_ID)
		{
			[$entityTypeId, $entityId] = DynamicMultipleProvider::parseId($entityId);
			$entityTypeAbbr = CCrmOwnerTypeAbbr::ResolveByTypeID($entityTypeId);
		}
		else
		{
			$entityTypeAbbr = CCrmOwnerTypeAbbr::ResolveByTypeName($entityTypeName);
		}

		if ($entityTypeAbbr)
		{
			$fields[$crmUfCode][] = "{$entityTypeAbbr}_{$entityId}";
		}
	}

	return $fields;
}