Задавал вопрос уже по теме
https://qna.habr.com/q/1260818 попытаюсь переформулировать.
Есть вот такой фильтр
'filter' => \Bitrix\Main\Entity\Query::filter()->where(
[
["UF_ACTIVE", "=", 1],
["UF_ELEMENT_ID", "=", $arFields["ID"]],
["UF_CREATED_BY", "!=", ['column' => 'UF_USER_ID']],
['UF_DATE_ACTIVE', "<=", mktime(23,59,59,date("m"),date("d")+1,date("Y"))],
['UF_DATE_ACTIVE', "=", null]
])
он формирует вот такой запрос
WHERE (`table`.`UF_ACTIVE` = 1 AND `table`.`UF_ELEMENT_ID` = 1 AND `table`.`UF_CREATED_BY` <> 1 AND `table`.`UF_DATE_ACTIVE` <= 1678568399 AND `table`.`UF_DATE_ACTIVE` IS NULL)
мне нужно его подправить в такой
WHERE (
`table`.`UF_ACTIVE` = 1 AND `table`.`UF_ELEMENT_ID` = 1 AND `table`.`UF_CREATED_BY` <> 1
AND
( `table`.`UF_DATE_ACTIVE` <= 1678568399 OR `table`.`UF_DATE_ACTIVE` IS NULL)
)
т.е. между полями UF_DATE_ACTIVE и UF_DATE_ACTIVE поставить OR и к другим условиям присоединить через AND
в документации для этого есть LOGIC=>OR
добавляю в массив это условие
'filter' => \Bitrix\Main\Entity\Query::filter()->where(
[
["UF_ACTIVE", "=", 1],
["UF_ELEMENT_ID", "=", $arFields["ID"]],
["UF_CREATED_BY", "!=", ['column' => 'UF_USER_ID']],
// lдобавляю оператор OR между полями
[
'LOGIC' => 'OR',
['UF_DATE_ACTIVE', "<=", mktime(23,59,59,date("m"),date("d")+1,date("Y"))],
['UF_DATE_ACTIVE', "=", null]
]
])
и получаю вот это
[Bitrix\Main\ArgumentException]
Unknown operator `Array` (100)