Документация для разработчиков
Темная тема

ParentFieldManager

Внимание! Информация дана для ознакомления. Этот класс в ближайшее время может подвергнуться рефакторингу. Пожалуйста, не используйте его в своём коде.

\Bitrix\Crm\Service\ParentFieldManager - объект-сервис, получаемый через контейнер.

Во многих местах необходимо отобразить связи между элементами. Данный сервис позволяет пакетно получить данные о родительских элементах для дальнейшего отображения в интерфейсах CRM.

Метод Описание С версии
ParentFieldManager::getParentFieldName(
   $entityTypeId
): string
Вернет код поля родителя по идентификатору типа CRM $entityTypeId. Например, если $entityTypeId = 128, то результат будет PARENT_ID_128
ParentFieldManager::getEntityTypeIdFromFieldName(
   string $fieldName
): int
Вернет идентификатор типа CRM родителя по коду поля $fieldName. Например, если $fieldName = PARENT_ID_128, то результат будет 128
ParentFieldManager::isParentFieldName(
   string $fieldName
): bool
Вернет true, если $fieldName является кодом поля родителя.
ParentFieldManager::getParentFields(
   int[] $itemIds,
   string[] $entityFields,
   int $entityTypeId
): array[]
Метод вернет многоуровневый массив с описанием родителей для переданных элементов:
  • int[] $itemIds - массив ID элементов, для которых необходимо получить данные о родителях
  • string[] $entityFields - массив названий всех полей, которые необходимо отобразить в интерфейсе (грид, канбан). С помощью названий полей ParentFieldManager определяет, в каких полях содержится информация о родительских элементах и к каким типам сущности они принадлежат. Если среди полей нет тех, которые указывают на родителей, метод вернет пустой массив
  • int $entityTypeId - entityTypeId сущности-потомка, для которой необходимо получить данные о родителях. Показывает, к какому типу сущности принадлежат элементы из $itemIds.

Возвращаемый массив имеет следующую структуру:

$parents = [
	// Ключи верхнего уровня (16 и 34) - это ID элементов из $itemIds
	// Если у переданного элемента нет родителей, то элемента с таким ключом в массиве нет
	// (isset($parents[$itemId]) === false)
	16 => [
		// Ключи второго уровня (2 и 7) - это entityTypeId родительских сущностей
		2 => [
			'id' => '84',
			'code' => 'PARENT_ID_2',
			'entityDescription' => 'Сделка',
			'title' => 'Название конкретного элемента, экранированное',
			'url' => '/crm/deal/details/84/',
			'value' => 'Название конкретного элемента, экранированное',
		],
		7 => [
			'id' => '657',
			'code' => 'PARENT_ID_7', 
			'entityDescription' => 'Предложение', 
			'title' => 'Название конкретного элемента, экранированное', 
			'url' => '/crm/quote/details/657/', 
			'value' => 'Название конкретного элемента, экранированное',
		],
	],
	34 => [
		7 => [
			'id' => '485',
			'code' => 'PARENT_ID_7', 
			'entityDescription' => 'Предложение', 
			'title' => 'Название конкретного элемента, экранированное', 
			'url' => '/crm/quote/details/485/', 
			'value' => 'Название конкретного элемента, экранированное',
		],
	],
];

Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2023, «1С-Битрикс», 2023
Наверх