Документация для разработчиков

GetList

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order.

CDBResult
CSaleOrder::GetList(
 array arOrder = Array("ID"=>"DESC"),
 array arFilter = Array(),
 array arGroupBy = false,
 array arNavStartParams = false,
 array arSelectFields = array(),
 array $arOptions = array()
);

Метод возвращает результат выборки записей из заказов в соответствии со своими параметрами. Нестатический метод.

Параметры вызова

ПараметрОписаниеС версии
arOrder Массив, в соответствии с которым сортируются результирующие записи. Массив имеет вид:
array(
"название_поля1" => "направление_сортировки1",
"название_поля2" => "направление_сортировки2",
. . .
)
В качестве "название_поляN" может стоять любое поле заказа, а в качестве "направление_сортировкиX" могут быть значения "ASC" (по возрастанию) и "DESC" (по убыванию).

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.).
arFilter Массив, в соответствии с которым фильтруются записи заказов. Массив имеет вид:
array(
"[модификатор1][оператор1]название_поля1" => "значение1",
"[модификатор2][оператор2]название_поля2" => "значение2",
. . .
)
Удовлетворяющие фильтру записи возвращаются в результате, а записи, которые не удовлетворяют условиям фильтра, отбрасываются.

Допустимыми являются следующие модификаторы:
  • ! - отрицание;
  • + - значения null, 0 и пустая строка так же удовлетворяют условиям фильтра.
Допустимыми являются следующие операторы:
  • >= - значение поля больше или равно передаваемой в фильтр величины;
  • > - значение поля строго больше передаваемой в фильтр величины;
  • <= - значение поля меньше или равно передаваемой в фильтр величины;
  • < - значение поля строго меньше передаваемой в фильтр величины;
  • ~ - значение поля проверяется на соответствие передаваемому в фильтр шаблону;
  • @ - модификатор может использоваться при передаче набора значений (массива);
  • % - значение поля проверяется на соответствие передаваемой в фильтр строке в соответствии с языком запросов.
В качестве "название_поляX" может стоять любое поле заказов.

Для фильтрации заказов по свойствам возможны следующие варианты:
  • PROPERTY_ID - идентификатор значения свойства заказа по идентификатору свойства заказа;
  • PROPERTY_ORDER_PROPS_ID - идентификатор свойства заказа по идентификатору свойства заказа;
  • PROPERTY_NAME - название свойства по идентификатору свойства заказа;
  • PROPERTY_VALUE - значение свойства заказа по идентификатору свойства заказа;
  • PROPERTY_CODE - код свойства заказа по идентификатору свойства заказа;
  • PROPERTY_VAL_BY_CODE - значение свойства заказа по коду свойства.

Для фильтрации по свойствам типа "чекбокс" в значение фильтра надо ставить Y.

Пример фильтра:
array("CANCELED" => "Y")
Этот фильтр означает "выбрать все записи, в которых значение в поле CANCELED (отменён) равно Y".

Значение по умолчанию - пустой массив array() - означает, что результат отфильтрован не будет.

Чтобы задать временной интервал при получении заказов, можно использовать в фильтре ключи DATE_UPDATE_FROM, DATE_UPDATE_TO для фильтрации по дате изменения и DATE_FROM, DATE_TO для фильтрации по дате добавления заказа.

arGroupBy Массив полей, по которым группируются записи заказов. Массив имеет вид:
array("название_поля1",
      "группирующая_функция2" => "название_поля2", . . .)
В качестве "название_поляN" может стоять любое поле заказов. В качестве группирующей функции могут стоять:
  • COUNT - подсчет количества;
  • AVG - вычисление среднего значения;
  • MIN - вычисление минимального значения;
  • MAX - вычисление максимального значения;
  • SUM - вычисление суммы.
Если массив пустой, то метод вернет число записей, удовлетворяющих фильтру.

Значение по умолчанию - false - означает, что результат группироваться не будет.
4.0.6
arNavStartParams Массив параметров выборки. Может содержать следующие ключи:
  • "nTopCount" - количество возвращаемых методом записей будет ограничено сверху значением этого ключа;
  • любой ключ, принимаемый методом CDBResult::NavQuery в качестве третьего параметра.
Значение по умолчанию - false - означает, что параметров выборки нет.
4.0.6
arSelectFields Массив полей записей, которые будут возвращены методом. Можно указать только те поля, которые необходимы. Если в массиве присутствует значение "*", то будут возвращены все доступные поля.

Значение по умолчанию - пустой массив array() - означает, что будут возвращены все поля основной таблицы запроса.
4.0.6
arOptions Массив дополнительных параметров.

Использовался только для Oracle. Передавался параметр NULLS_LAST, который позволял сортироваться выборку так, чтобы значения полей NULL были последние. Сейчас не используется.
4.0.6

Возвращаемые значения

Возвращается объект класса CDBResult, содержащий ассоциативные массивы с ключами:

Ключ Описание
ID Номер заказа.
LID Код сайта.
ACCOUNT_NUMBER Код заказа.
TRACKING_NUMBER Трек-номер заказа.
PAY_SYSTEM_ID Идентификатор платежной системы.
DELIVERY_ID Идентификатор службы доставки.
DATE_INSERT Дата добавления заказа в формате текущего сайта.
DATE_UPDATE Дата последнего изменения заказа в формате текущего сайта.
PERSON_TYPE_ID Идентификатор плательщика.
USER_ID Идентификатор пользователя, за кем закреплен заказ.
PAYED Фраг оплаченности заказа (Y/N).
DATE_PAYED Дата оплаты заказа.
DATE_INSERT Дата добавления заказа в формате текущего сайта.
DATE_UPDATE Дата последнего изменения заказа в формате текущего сайта.
EMP_PAYED_ID Идентификатор пользователя оплатившего заказ.
DEDUCTED Флаг отгруженности заказа (Y/N).
DATE_DEDUCTED Дата отгрузки заказа.
EMP_DEDUCTED_ID Идентификатор пользователя, отгрузившего заказ.
REASON_UNDO_DEDUCTED Комментарий причины отмены отгрузки заказа.
STATUS_ID Код статуса заказа.
DATE_STATUS Дата изменения статуса заказа.
EMP_STATUS_ID ID пользователя, изменивший статус заказа.
MARKED Флаг проблемности заказа (Y/N).
DATE_MARKED Дата выставления флага проблемности заказа.
EMP_MARKED_ID Идентификатор пользователя, установивший флаг проблемности заказа.
REASON_MARKED Комментарий причины проблемности заказа.
PRICE_DELIVERY Стоимость доставки.
ALLOW_DELIVERY Флаг разрешена ли отгрузка заказа (Y/N).
DATE_ALLOW_DELIVERY Дата выставления флага разрешения отгрузки заказа.
EMP_ALLOW_DELIVERY_ID Идентификатор пользователя, установивший флаг разрешение отгрузки заказа.
RESERVED Флаг зарезервированно ли всё кол-во товара в заказе (Y/N).
PRICE Стоимость заказа.
CURRENCY Валюта заказа.
DISCOUNT_VALUE Значение скидки заказа.
TAX_VALUE Размер налога на заказ.
SUM_PAID Сумма оплаченного заказа.
USER_DESCRIPTION Комментарий пользователя оформившего заказ.
PAY_VOUCHER_NUM Номер документа оплаты.
PAY_VOUCHER_DATE Дата оплаты документа.
ADDITIONAL_INFO Дополнительная информация заказа.
COMMENTS Комментарии к заказу.
COMPANY_ID Идентификатор компании, к которой привязан заказ.
CREATED_BY Идентификатор пользователя, кто создал заказ.
RESPONSIBLE_ID Идентификатор ответственного пользователя.
STAT_GID Код статистики.
DATE_PAY_BEFORE Дата предоплаты.
DATE_BILL Дата выставления счета.
LOCKED_BY Флаг, кто заблокировал заказ.
DATE_LOCK Дата, когда был заблокирован заказ.
AFFILIATE_ID Идентификатор аффилиата.
DELIVERY_DOC_NUM Номер документа отгрузки.
DELIVERY_DOC_DATE Дата документа отгрузки.
UPDATED_1C Флаг обновления данных в 1C.
ORDER_TOPIC Идентификатор темы на форуме, к которому привязан заказ.
XML_ID Внешний код заказа.
ID_1C Код в 1С.
VERSION_1C Версия обмена.
EXTERNAL_ORDER Флаг, определяющий является ли заказ внешним.
STORE_ID Код склада.
CANCELED Флаг отмены заказа.
EMP_CANCELED_ID Идентификатор пользователя, кто отменил заказ.
DATE_CANCELED Дата отмены заказа.
REASON_CANCELED Причина отмены заказа.
DATE_INSERT_FORMAT Дата добавления заказа в формате региональных настроек.
DATE_UPDATE_SHORT Дата обновления заказа в формате региональных настроек.
DATE_STATUS_SHORT Дата смены статуса заказа в формате региональных настроек.
DATE_CANCELED_SHORT Дата отмены заказа в формате региональных настроек.
BY_RECOMMENDATION Флаг оформлен ли заказ по рекомендации.
LOCK_STATUS Код блокировка(green/yelow/green).
LOCK_USER_NAME Имя пользователя, блокирующего заказ.
RESPONSIBLE_LOGIN Логин ответственного за заказ пользователя.
RESPONSIBLE_NAME Имя ответственного за заказ пользователя.
RESPONSIBLE_LAST_NAME Фамилия ответственного за заказ пользователя.
RESPONSIBLE_SECOND_NAME Отчество ответственного за заказ пользователя.
RESPONSIBLE_EMAIL Email ответственного за заказ пользователя.
RESPONSIBLE_WORK_POSITION Должность ответственного за заказ пользователя.
RESPONSIBLE_PERSONAL_PHOTO Фото ответственного за заказ пользователя.
USER_LOGIN Логин пользователя, за кем закреплен заказ.
USER_NAME Имя пользователя, за кем закреплен заказ.
USER_LAST_NAME Фамилия пользователя, за кем закреплен заказ.
USER_EMAIL Email пользователя, за кем закреплен заказ.

Если в качестве параметра arGroupBy передается пустой массив, то метод вернет число записей, удовлетворяющих фильтру.

Примеры использования

<?
// Выведем даты всех заказов текущего пользователя за текущий месяц, отсортированные по дате заказа
$arFilter = Array(
   "USER_ID" => $USER->GetID(),
   ">=DATE_INSERT" => date($DB->DateFormatToPHP(CSite::GetDateFormat("SHORT")), mktime(0, 0, 0, date("n"), 1, date("Y")))
   );

$db_sales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
while ($ar_sales = $db_sales->Fetch())
{
   echo $ar_sales["DATE_INSERT_FORMAT"]."<br>";
}
?>
//список всех заказов, при оформлении которых был использован тот или иной купон получения скидки 
<?
if (CModule::IncludeModule("sale")):

   $arFilter = Array(
      "BASKET_DISCOUNT_COUPON" => "КОД_КУПОНА_ЗДЕСЬ",
      );
   $rsSales = CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter);
   while ($arSales = $rsSales->Fetch())
   {
      echo "<pre>";
      print_r($arSales);
      echo "</pre>";
   }
endif;
?>

//можно использовать и массив купонов для поиска: 
CSaleOrder::GetList(array(), array('BASKET_DISCOUNT_COUPON' => array('TEST1', 'TEST2')));
//пример использования arGroupBy
$arFilter = array('PAYED' => 'Y', 'PROPERTY_VAL_BY_CODE_F_COURIER' => $f_VALUE);
$rsOrders = CSaleOrder::GetList(array('ID' => 'DESC'), $arFilter, array('PAYED', 'SUM' => 'PRICE'));

//поле PAYED в arGroupBy передано, чтобы вернулся CNT (количество таких заказов). Если не передавать, вернется просто сумма.
//получить заказ с определенным товаром
$rsOrder = CSaleOrder::GetList(array('ID' => 'DESC'), array('BASKET_PRODUCT_ID' => 174474));
//фильтрация по нескольким вариантам статуса: 
$arFilter = Array("USER_ID" => $USER->GetID(), "@STATUS_ID" => array("R", "I", "P", "O"));


© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх