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

getList

\Bitrix\Catalog\EO_Discount_Result public static
\Bitrix\Catalog\DiscountTable::getList(
	array $parameters = []
);

Метод возвращает скидки каталога по параметрам ORM-запроса. Статический метод.

Параметры

Параметр Описание
$parameters Массив параметров запроса. По умолчанию метод выбирает все поля без фильтра, сортировки, группировки и ограничения количества записей

Ключи массива $parameters

Ключ Описание
select Массив полей, которые нужно вернуть. Псевдоним поля указывают в ключе массива
[
	"DISCOUNT_ID" => "ID",
	"NAME",
	"VALUE",
	"CURRENCY"
]
Если ключ не передан, метод выбирает все скалярные поля скидки
filter Массив условий отбора или объект \Bitrix\Main\ORM\Query\Filter\ConditionTree
[
	"=ACTIVE" => "Y",
	"=SITE_ID" => "s1",
	">VALUE" => 0
]

Доступные операторы:

  • без оператора или = — равно,
  • ! или != — не равно,
  • >, <, >=, <= — сравнение значений,
  • >< — значение входит в диапазон,
  • !>< — значение не входит в диапазон,
  • % — строка содержит подстроку,
  • !% — строка не содержит подстроку,
  • =% — строка соответствует переданному шаблону LIKE,
  • !=% — строка не соответствует переданному шаблону LIKE,
  • @ — значение входит в переданный массив,
  • !@ — значение не входит в переданный массив.

Условия можно объединять во вложенные группы. Ключ LOGIC задает связь AND, OR или NOT. Пустой фильтр не ограничивает выборку.

group Поле или массив полей для группировки результата
[
	"SITE_ID",
	"ACTIVE"
]
Если ключ не передан или массив пуст, метод не группирует записи
order Массив полей и направлений сортировки
[
	"SORT" => "ASC",
	"ID" => "DESC"
]

Направления сортировки:

  • ASC — по возрастанию,
  • DESC — по убыванию.

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

limit Максимальное количество записей в результате. Если ключ не передан, количество записей не ограничено
offset Количество записей, которые нужно пропустить от начала выборки. Если ключ не передан, метод начинает выборку с первой записи
count_total Значение true включает подсчет общего количества записей без учета limit и offset. Количество возвращает метод getCount() объекта результата. По умолчанию подсчет отключен
runtime Массив полей, которые ORM создает на время запроса. В ключе указывают имя поля, в значении — описание поля или объект поля
data_doubling Логическое значение, которое включает или отключает обработку дублирования данных при фильтрации по связям
private_fields Логическое значение, которое разрешает или запрещает использовать приватные поля ORM-объекта
cache Настройки кеширования запроса
[
	"ttl" => 3600,
	"cache_joins" => true
]
Ключ ttl задает время хранения результата в секундах. Ключ cache_joins разрешает кешировать запросы с объединениями таблиц. По умолчанию время хранения равно нулю, а кеширование объединений отключено

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

Метод возвращает объект \Bitrix\Catalog\EO_Discount_Result. Метод fetch() объекта последовательно возвращает скидки как ассоциативные массивы или false, когда записи закончились.

Если ключ select не задан, массив записи содержит поля:

Ключ Описание
IDИдентификатор скидки каталога, целое число
XML_IDВнешний идентификатор, строка или null
SITE_IDИдентификатор сайта, строка
TYPEТип скидки, целое число
ACTIVEПризнак активности, логическое значение
ACTIVE_FROMДата и время начала активности или null
ACTIVE_TOДата и время окончания активности или null
RENEWALПризнак применения к продлению, логическое значение
NAMEНазвание скидки, строка
SORTИндекс сортировки, целое число или null
MAX_DISCOUNTМаксимальная величина скидки, число или null
VALUE_TYPEТип величины скидки: P, F или S
VALUEВеличина скидки, число
CURRENCYКод валюты, строка
TIMESTAMP_XДата и время изменения скидки
COUNT_PERIODТип периода подсчета заказов: U, D или P
COUNT_SIZEРазмер периода подсчета заказов, целое число
COUNT_TYPEЕдиница периода подсчета: D, M или Y
COUNT_FROMДата и время начала периода подсчета или null
COUNT_TOДата и время окончания периода подсчета или null
ACTION_SIZEРазмер периода действия скидки, целое число
ACTION_TYPEЕдиница периода действия: D, M или Y
MODIFIED_BYИдентификатор пользователя, который изменил скидку, или null
DATE_CREATEДата и время создания скидки или null
CREATED_BYИдентификатор пользователя, который создал скидку, или null
PRIORITYПриоритет применения скидки, целое число
LAST_DISCOUNTПризнак прекращения дальнейшего применения скидок, логическое значение
VERSIONВерсия формата скидки: 1 или 2
NOTESКомментарий к скидке, строка или null
CONDITIONSСериализованные условия скидки, строка или null
CONDITIONS_LISTУсловия скидки после десериализации
UNPACKПодготовленное выражение условий скидки, строка или null
USE_COUPONSПризнак наличия купонов, логическое значение
SALE_IDИдентификатор связанной скидки модуля sale, целое число или null

Исключения

  • \Bitrix\Main\ArgumentException — передан неизвестный параметр, неверное направление сортировки или некорректное описание запроса;
  • \Bitrix\Main\ObjectPropertyException — ORM не может получить свойство объекта;
  • \Bitrix\Main\SystemException — ORM не может построить или выполнить запрос.

Пример

<?php

use Bitrix\Catalog\DiscountTable;
use Bitrix\Main\Loader;

if (!Loader::includeModule('catalog'))
{
	throw new RuntimeException('Не удалось подключить модуль catalog');
}

// Идентификатор существующего сайта
$siteId = 's1';

try
{
	$result = DiscountTable::getList([
		'select' => [
			'ID',
			'NAME',
			'VALUE',
			'VALUE_TYPE',
			'CURRENCY',
		],
		'filter' => [
			'=SITE_ID' => $siteId,
			'=ACTIVE' => 'Y',
		],
		'order' => [
			'SORT' => 'ASC',
			'ID' => 'ASC',
		],
		'limit' => 20,
	]);

	while ($discount = $result->fetch())
	{
		print_r($discount);
	}
}
catch (Throwable $exception)
{
	echo $exception->getMessage();
}


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