• Модуль: crmmobile
  • Путь к файлу: ~/bitrix/modules/crmmobile/lib/Controller/Category.php
  • Класс: BitrixCrmMobileControllerCategory
  • Вызов: Category::getTunnelDocumentFields
private function getTunnelDocumentFields(int $entityTypeId): array
{
	static $tunnelDocumentFields = [];

	if (!isset($tunnelDocumentFields[$entityTypeId]))
	{
		$documentFields = [];

		$documentType = CCrmBizProcHelper::ResolveDocumentType($entityTypeId);
		foreach (Helper::getDocumentFields($documentType) as $key => $documentField)
		{
			$options = [];

			if (!empty($documentField['Options']) && is_array($documentField['Options']))
			{
				foreach ($documentField['Options'] as $id => $value)
				{
					$options[] = [
						'id' => $id,
						'value' => $value,
					];
				}
			}

			$documentFields[$key] = [
				'id' => $documentField['Id'],
				'name' => $documentField['Name'],
				'type' => $documentField['Type'],
				'baseType' => $documentField['BaseType'],
				'expression' => $documentField['Expression'],
				'systemExpression' => $documentField['SystemExpression'],
				'multiple' => $documentField['Multiple'],
				'options' => $options,
			];
		}

		$tunnelDocumentFields[$entityTypeId] = $documentFields;
	}

	return $tunnelDocumentFields[$entityTypeId];
}