• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/intranet/bindingmenu.php
  • Класс: Bitrix\Crm\Integration\Intranet\BindingMenu
  • Вызов: BindingMenu::onBuildBindingMap
static function onBuildBindingMap(Event $event): EventResult
{
	if (!static::isBindingMapAPIAvailable())
	{
		return new EventResult(EventResult::ERROR, null, static::MODULE_ID);
	}

	$dynamicTypesMap = Container::getInstance()->getDynamicTypesMap()->load([
		'isLoadStages' => false,
		'isLoadCategories' => false,
	]);

	$sections = static::getMapSections();

	foreach ($dynamicTypesMap->getTypes() as $type)
	{
		foreach ($sections as $section)
		{
			$mapItem = new Intranet\Binding\Map\MapItem(
				BindingMenu\CodeBuilder::getMapItemCode($type->getEntityTypeId()),
				BindingMenu\CodeBuilder::getRestPlacementCode($section->getCode(), $type->getEntityTypeId()),
			);

			$section->add($mapItem);
		}
	}

	if (InvoiceSettings::getCurrent()->isSmartInvoiceEnabled())
	{
		foreach ($sections as $section)
		{
			if ($section === \Bitrix\Crm\Integration\Intranet\BindingMenu\SectionCode::TUNNELS)
			{
				continue;
			}
			$mapItem = new Intranet\Binding\Map\MapItem(
				BindingMenu\CodeBuilder::getMapItemCode(\CCrmOwnerType::SmartInvoice),
				BindingMenu\CodeBuilder::getRestPlacementCode($section->getCode(), \CCrmOwnerType::SmartInvoice),
			);

			$section->add($mapItem);
		}
	}

	return new EventResult(
		EventResult::SUCCESS,
		[
			'map' => new Intranet\Binding\Map($sections),
		],
		static::MODULE_ID,
	);
}