Возникла неожиданная проблема при написании, казалось, обычной выборки. Нужно выбирать заказы с установленным свойством заказа и ограничением по дате заказа. Пример такого фильтра лежит на каждом углу в интернете, и должен быть рабочим, но...
При таком вызове должен выдаваться список заказов за последние 14 дней, потому-что проверки на значение свойства нету, но результат - ноль записей.
Причем если вызывать с фильтром только по дате - работает, если только по свойству - работает, а вот вместе - пусто.
Я пробовал делать фильтр по дате по строке вместо объекта $filterLast14Day->format( $formatDate ) результат тот-же.
Так-же экспериментировал с фильтром по свойству через runtime вместо прямого указания. Все эксперименты ведут себя так-же как при прямом использовании PROPERTY.
Единственное чего удалось добиться - если вместо фильтра по дате использовать любой другой строковый или числовой (по статусу заказа или по айди покупателя) все прекрасно работает! Фильтрует по свойству и полю заказа одновременно, как и должно, а вот по дате ни в какую((
Может кто-то подсказать в чем причина такого поведения? Как решить поблему?
| Код |
|---|
$filterLast14Day = new \Bitrix\Main\Type\DateTime();
$filterLast14Day->add('-14 days');
$dbRes = \Bitrix\Sale\Order::getList([
'select' => ['ID', 'DATE_INSERT', 'PROPERTY' ],
'filter' => [
'>=DATE_INSERT' => $filterLast14Day,
'PROPERTY.ORDER_PROPS_ID' => 28,
],
'order' => ['ID' => 'DESC']
]);
|
Причем если вызывать с фильтром только по дате - работает, если только по свойству - работает, а вот вместе - пусто.
Я пробовал делать фильтр по дате по строке вместо объекта $filterLast14Day->format( $formatDate ) результат тот-же.
Так-же экспериментировал с фильтром по свойству через runtime вместо прямого указания. Все эксперименты ведут себя так-же как при прямом использовании PROPERTY.
| Код |
|---|
'runtime' => [ new \Bitrix\Main\Entity\ReferenceField( 'PROPERTY_VAL', '\Bitrix\sale\Internals\OrderPropsValueTable', ["=this.ID" => "ref.ORDER_ID", ], ["join_type"=>"left"] ), ], |
Единственное чего удалось добиться - если вместо фильтра по дате использовать любой другой строковый или числовой (по статусу заказа или по айди покупателя) все прекрасно работает! Фильтрует по свойству и полю заказа одновременно, как и должно, а вот по дате ни в какую((
Может кто-то подсказать в чем причина такого поведения? Как решить поблему?