• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/component/entitydetails/factorybased.php
  • Класс: Bitrix\Crm\Component\EntityDetails\FactoryBased
  • Вызов: FactoryBased::getCommunicationToolbarParameters
protected function getCommunicationToolbarParameters(): array
{
	if(!$this->factory->isClientEnabled() || $this->item->isNew() || $this->isCopyMode())
	{
		return [];
	}
	$isEnabled = ModuleManager::isModuleInstalled('calendar');

	$multiFields = [];
	$clientData = $this->editorAdapter->getClientEntityData();
	if (!empty($clientData[EditorAdapter::FIELD_CLIENT . '_INFO']))
	{
		foreach ($clientData[EditorAdapter::FIELD_CLIENT . '_INFO'] as $clientTypeData)
		{
			foreach ($clientTypeData as $client)
			{
				if (isset($client['advancedInfo']['multiFields']))
				{
					// it is better this way than multiple queries to FieldMultiTable
					/** @noinspection SlowArrayOperationsInLoopInspection */
					$multiFields = array_merge($multiFields, $client['advancedInfo']['multiFields']);
				}
			}
		}
	}

	return [
		'isEnabled' => $isEnabled,
		'ownerInfo' => $this->getEntityInfo(),
		'multiFields' => $multiFields,
	];
}