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

GetList

Описание и параметры

CDBResult
CSaleUserTransact::GetList(
	array arOrder = array(),
	array arFilter = array(),
	array arGroupBy = false,
	array arNavStartParams = false,
	array arSelectFields = array()
);

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

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

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

Если массив сортировки имеет несколько элементов, то результирующий набор сортируется последовательно по каждому элементу (т.е. сначала сортируется по первому элементу, потом результат сортируется по второму и т.д.). 

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

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

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

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

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

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

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

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

  • ID - код транзакции;
  • USER_ID - код пользователя;
  • AMOUNT - сумма;
  • CURRENCY - валюта суммы;
  • DEBIT - "Y", если занесение денег на счет, и "N", если списание денег со счета;
  • DESCRIPTION - описание;
  • ORDER_ID - код заказа, если транзакция относится к заказу;
  • EMPLOYEE_ID - код пользователя, осуществившего транзакцию;
  • TIMESTAMP_X - дата последнего изменения записи;
  • TRANSACT_DATE - дата транзакции;
  • USER_LOGIN - логин пользователя;
  • USER_ACTIVE - флаг активности пользователя;
  • USER_NAME - имя пользователя;
  • USER_LAST_NAME - фамилия пользователя;
  • USER_EMAIL - E-Mail пользователя.

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

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

//пример формирования отчета по транзакциям личного счета клиента 
<table cellpadding="0" cellspacing="0" border="0" class="data-table">
	<thead>
		<tr>
			<td>№</td>
			<td>Дата транзакции</td>
			<td>Сумма</td>
			<td>Описание</td>
		</tr>
	</thead>
	<tbody>
	<?
	CModule::IncludeModule("sale");
	$res = CSaleUserTransact::GetList(Array("ID" => "DESC"), array("USER_ID" => $USER->GetID()));
	while ($arFields = $res->Fetch())
	{?>
		<tr>
			<td><?=$arFields["ID"]?></td>
			<td><?=$arFields["TRANSACT_DATE"]?></td>
			<td><?=($arFields["DEBIT"]=="Y")?"+":"-"?><?=SaleFormatCurrency($arFields["AMOUNT"], $arFields["CURRENCY"])?><br /><small>(<?=($arFields["DEBIT"]=="Y")?"на счет":"со счета"?>)</small></td>
			<td><?=$arFields["NOTES"]?></td>
		</tr>
	<?}?>
	<tbody>
</table>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024