• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/UI/EntityEditor/ProviderDecorator.php
  • Класс: Bitrix\CrmMobile\UI\EntityEditor\ProviderDecorator
  • Вызов: ProviderDecorator::getDisplayFields
private function getDisplayFields(): array
{
	if (!isset($this->displayFields))
	{
		$this->displayFields = [];

		$fieldsCollection = $this->factory->getFieldsCollection();
		$aliasMap = array_flip($this->getAliasFieldNames());

		foreach ($this->getWrappedEntityFields() as $fieldInfo)
		{
			$fieldInfo['name'] = $aliasMap[$fieldInfo['name']] ?? $fieldInfo['name'];

			if ($field = $fieldsCollection->getField($fieldInfo['name']))
			{
				if ($fieldInfo['name'] === Item::FIELD_NAME_STAGE_ID)
				{
					$entityType = $this->factory->getStagesEntityId($this->getCategoryId());
				}
				else
				{
					$entityType = $field->getCrmStatusType();
				}

				$displayParams = [
					'ENTITY_TYPE' => $entityType,
					'VALUE_TYPE' => $field->getValueType(),
				];

				try
				{
					$displayField =
						Field::createByType($field->getType(), $field->getName())
							->setTitle($field->getTitle())
							->setIsMultiple($field->isMultiple())
							->setIsUserField($field->isUserField())
							->addDisplayParams($displayParams)
							->setUserFieldParams($field->getUserField())
							->setContext(Field::MOBILE_CONTEXT)
					;

					$this->displayFields[$fieldInfo['name']] = $displayField;
				}
				catch (Exception $exception)
				{
				}
			}
		}
	}

	return $this->displayFields;
}