...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
- Класс: \CCrmProductPropertyRestProxy
- Вызов: CCrmProductPropertyRestProxy::innerGet
protected function innerGet($id, &$errors) { if(!CModule::IncludeModule('iblock')) { throw new RestException('Could not load iblock module.'); } /** @var CCrmPerms $userPerms */ $userPerms = CCrmPerms::GetCurrentUserPermissions(); if (!$userPerms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'READ')) { $errors[] = 'Access denied.'; return false; } $result = false; $iblockId = intval(CCrmCatalog::EnsureDefaultExists()); $userTypes = CCrmProductPropsHelper::GetPropsTypesByOperations(false, 'rest'); $res = CIBlockProperty::GetByID($id, $iblockId); if (is_object($res)) $result = $res->Fetch(); unset($res); if(!is_array($result) || (isset($result['USER_TYPE']) && !empty($result['USER_TYPE']) && !array_key_exists($result['USER_TYPE'], $userTypes))) { $errors[] = 'Not found'; return false; } $values = null; if ($result['PROPERTY_TYPE'] === 'L') { $values = array(); $resEnum = CIBlockProperty::GetPropertyEnum($result['ID'], array('SORT' => 'ASC','ID' => 'ASC')); while($enumValue = $resEnum->Fetch()) { $values[intval($enumValue['ID'])] = array( 'ID' => $enumValue['ID'], 'VALUE' => $enumValue['VALUE'], 'XML_ID' => $enumValue['XML_ID'], 'SORT' => $enumValue['SORT'], 'DEF' => $enumValue['DEF'] ); } } $result['VALUES'] = $values; $userTypeSettings = array(); if (isset($result['USER_TYPE_SETTINGS']) && is_array($result['USER_TYPE_SETTINGS'])) { foreach ($result['USER_TYPE_SETTINGS'] as $key => $value) $userTypeSettings[mb_strtoupper($key)] = $value; $result['USER_TYPE_SETTINGS'] = $userTypeSettings; } return $result; }