• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/userfield/datamodifiers/element.php
  • Класс: Bitrix\Crm\UserField\DataModifiers\Element
  • Вызов: Element::setDynamics
static function setDynamics(array &$result, array $params, $userPermissions): void
{
	foreach($params['ENTITY_TYPE'] as $entityTypeName)
	{
		$entityTypeId = \CCrmOwnerType::ResolveID($entityTypeName);

		if (($factory = Container::getInstance()->getFactory($entityTypeId)) === null)
		{
			continue;
		}

		if (\CCrmOwnerType::isPossibleDynamicTypeId($entityTypeId))
		{
			$result['ENTITY_TYPE'][$entityTypeId] = mb_strtolower($entityTypeName);

			$list = $factory->getItemsFilteredByPermissions([
				'order' => ['ID' => 'DESC'],
				'limit' => self::ELEMENTS_LIMIT
			]);

			foreach ($list as $item)
			{
				$sid = (
				$result['PREFIX'] === 'Y'
					? \CCrmOwnerTypeAbbr::ResolveByTypeID($entityTypeId) . '_' . $item->getId()
					: $item->getId()
				);

				$result['ELEMENT'][] = [
					'title' => (str_replace([';', ','], ' ', $item->getTitle())),
					'desc' => '',
					'id' => $sid,
					'url' => null,
					'type' => mb_strtolower($entityTypeName)
				];
			}
		}
	}
}