Задать вопрос
@denism300

Почему CIBlockElement::GetList не возвращает элементы, если установлен отбор по складу?

На сайте есть как товары, так и ТП.
Пытаюсь отобрать элементы по конкретному складу:
$arSelect = array('ID', 'NAME', 'IBLOCK_ID');
$arFilter  = array(
    'IBLOCK_ID' => array(2, 3),
    'SECTION_ID' => $arCurSection['ID'],
    'INCLUDE_SUBSECTIONS' => 'Y',
    'ACTIVE' => 'Y',
    'AVAILABLE' => 'Y',
    '>STORE_AMOUNT_' . $selectedWarehouseId => 0,
    '>PRICE_1' => 0
);
$rsElements = CIBlockElement::GetList(array(), $arFilter, false, false, $arSelect);

$rsElements->SelectedRowsCount();  // возвращает 0

если убрать
'>STORE_AMOUNT_' . $selectedWarehouseId => 0,
то все ок.
В переменной $selectedWarehouseId всегда 1 или 2. Склады с указанными ID есть, товары в наличии на них тоже есть.
Пробовал код с форума битрикса для arSelect
$arFilter['IBLOCK_ID'] = [2, 3];
$arFilter['SECTION_ID'] = $arCurSection['ID'];
$arFilter['INCLUDE_SUBSECTIONS'] = 'Y';
$arFilter['ACTIVE'] = 'Y';
$arFilter['AVAILABLE'] = 'Y';
$arFilter['>PRICE_1'] = 0;
$arFilter[] = [
    'LOGIC' => 'OR',
    [
        '=TYPE' => \Bitrix\Catalog\ProductTable::TYPE_PRODUCT,
        '=STORE_NUMBER' => $selectedWarehouseId,
        '>STORE_AMOUNT' => 0
    ],
    [
        '!=TYPE' => \Bitrix\Catalog\ProductTable::TYPE_PRODUCT,
        'OFFERS' => [
            '>STORE_AMOUNT' => 0,
            '=STORE_NUMBER' => $selectedWarehouseId
        ]
    ]
];

но безрезультатно.
  • Вопрос задан
  • 150 просмотров
Подписаться 1 Простой 10 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы