• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/fields/manager.php
  • Класс: BitrixSalesCenterFieldsManager
  • Вызов: Manager::getEntityFields
public function getEntityFields(Entity $entity, array $previous = []): array
{
	$result = [];

	$fields = $entity->getFields();
	foreach($fields as $field)
	{
		$fieldEntity = $field->getEntity();
		$chain = $fullName = '';
		foreach($previous as $item)
		{
			$fullName .= $item->getTitle().'.';
			$chain .= $item->getName().'.';
		}
		$fullName .= $field->getTitle();
		$chain .= $field->getName();
		if($fieldEntity && $fieldEntity->getCode() !== $entity->getCode())
		{
			array_push($previous, $field);
			$result[] = [
				'name' => $field->getName(),
				'title' => $field->getTitle(),
				'fullName' => $fullName,
				'chain' => $chain,
				'items' => $this->getEntityFields($fieldEntity, $previous),
			];
			array_pop($previous);
		}
		else
		{
			$result[] = [
				'name' => $field->getName(),
				'title' => $field->getTitle(),
				'fullName' => $fullName,
				'chain' => $chain,
			];
		}
	}

	return $result;
}