...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/entitypreset.php
- Класс: Bitrix\Crm\EntityPreset
- Вызов: EntityPreset::getSettingsFieldsAvailableToAdd
public function getSettingsFieldsAvailableToAdd($entityTypeId, $presetId) { $result = new Main\Result(); if (!self::checkEntityType($entityTypeId)) { $result->addError( new Main\Error( GetMessage('CRM_ENTITY_PRESET_ERR_INVALID_ENTITY_TYPE'), self::ERR_INVALID_ENTITY_TYPE ) ); return $result; } $requisite = new EntityRequisite(); $presetId = (int)$presetId; $presetData = null; if ($presetId > 0) $presetData = $this->getById($presetId); if (!is_array($presetData)) { $result->addError( new Main\Error( GetMessage('CRM_ENTITY_PRESET_ERR_PRESET_NOT_FOUND'), self::ERR_PRESET_NOT_FOUND ) ); return $result; } $presetCountryId = isset($presetData['COUNTRY_ID']) ? (int)$presetData['COUNTRY_ID'] : 0; $presetFields = array(); if (is_array($presetData['SETTINGS'])) { $fields = $this->settingsGetFields($presetData['SETTINGS']); if (!empty($fields)) { foreach ($fields as $fieldInfo) $presetFields[$fieldInfo['FIELD_NAME']] = true; } } $availableFields = array(); foreach ($requisite->getRqFieldsCountryMap() as $fieldName => $countries) { if (in_array($presetCountryId, $countries, true) && !isset($presetFields[$fieldName])) $availableFields[$fieldName] = true; } foreach ($requisite->getUserFields() as $fieldName) { if (!isset($presetFields[$fieldName])) $availableFields[$fieldName] = true; } $result->setData(array_keys($availableFields)); return $result; }