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

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
Наверх