- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
- Класс: \CCrmRestProxyBase
- Вызов: CCrmRestProxyBase::getList
public function getList($order, $filter, $select, $start)
{
$this->prepareListParams($order, $filter, $select);
$navigation = CCrmRestService::getNavData($start);
$enableMultiFields = false;
$selectedFmTypeIDs = array();
if(is_array($select) && !empty($select))
{
$supportedFmTypeIDs = $this->getSupportedMultiFieldTypeIDs();
if(is_array($supportedFmTypeIDs) && !empty($supportedFmTypeIDs))
{
foreach($supportedFmTypeIDs as $fmTypeID)
{
if(in_array($fmTypeID, $select, true))
{
$selectedFmTypeIDs[] = $fmTypeID;
}
}
}
$enableMultiFields = !empty($selectedFmTypeIDs);
if($enableMultiFields)
{
$identityFieldName = $this->getIdentityFieldName();
if($identityFieldName === '')
{
throw new RestException('Could not find identity field name.');
}
if(!in_array($identityFieldName, $select, true))
{
$select[] = $identityFieldName;
}
}
}
$fieldsInfo = $this->getFieldsInfo();
$this->internalizeFilterFields($filter, $fieldsInfo);
$errors = array();
$result = $this->innerGetList($order, $filter, $select, $navigation, $errors);
if($result instanceOf CDBResult)
{
return $this->prepareListFromDbResult(
$result,
array('SELECTED_FM_TYPES' => $selectedFmTypeIDs)
);
}
elseif(is_array($result))
{
return $this->prepareListFromArray(
$result,
array('SELECTED_FM_TYPES' => $selectedFmTypeIDs)
);
}
if(empty($errors))
{
$errors[] = "Failed to get list. General error.";
}
throw new RestException(implode("\n", $errors));
}