- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integration/bizproc/document/item.php
- Класс: Bitrix\Crm\Integration\BizProc\Document\Item
- Вызов: Item::getEntityFields
static function getEntityFields($entityTypeId) { $factory = Container::getInstance()->getFactory($entityTypeId); if (is_null($factory)) { throw new \Exception(Loc::getMessage('CRM_BP_DOCUMENT_ITEM_ENTITY_TYPE_ERROR')); } $entityFields = static::getVirtualFields(); foreach ($factory->getFieldsInfo() as $fieldId => $field) { if (!isset($field['TYPE'])) { continue; } $fieldId = $factory->getEntityFieldNameByMap($fieldId); $editable = !\CCrmFieldInfoAttr::isFieldHasAttribute($field, \CCrmFieldInfoAttr::ReadOnly) && !\CCrmFieldInfoAttr::isFieldHasAttribute($field, \CCrmFieldInfoAttr::Immutable) && static::isEditableField($field) ; $required = \CCrmFieldInfoAttr::isFieldHasAttribute($field, \CCrmFieldInfoAttr::Required); $multiple = \CCrmFieldInfoAttr::isFieldHasAttribute($field, \CCrmFieldInfoAttr::Multiple); $singleEntityField = [ 'Name' => static::getFieldName($factory, $fieldId), 'Type' => static::resolveBPType($field['TYPE']), 'Options' => static::getFieldOptions($field, $factory), 'Settings' => static::getFieldSettings($field, $factory), 'Editable' => $editable, 'Required' => $required, 'Multiple' => $multiple, ]; if ( $field['TYPE'] === Crm\Field::TYPE_TEXT && isset($field['VALUE_TYPE']) && in_array($field['VALUE_TYPE'], [Crm\Field::VALUE_TYPE_HTML, Crm\Field::VALUE_TYPE_BB], true) ) { $singleEntityField['ValueContentType'] = $field['VALUE_TYPE']; } $entityFields[static::convertFieldId($fieldId)] = $singleEntityField; } static::fitEntityFieldsToInterface($entityFields); $entityFields += array_merge( static::getAssignedByFields(), static::getCommunicationFields(), static::getUserFieldsMap($factory), static::getUtmFields(), static::getSiteFormFields($factory->getEntityTypeId()), ); return $entityFields; }