Готовлюсь к экзамену 2 столкнулся с проблемой в задании ex2-97 (Демо-билет 2 [URL=https://training.1c-bitrix.ru/upload/exam_dev/pubinfo/Ex2Demo2.pdf]https://training.1c-bitrix.ru/upload/exam_dev/pubinfo/Ex2Demo2.pdf[/URL]). Не выходит добиться нужной фильтрации.
Как необходимо отфильтровать элементы [URL=http://prntscr.com/mbv8sg]http://prntscr.com/mbv8sg[/URL]
что получается в итоге (из-за множественного свойства) [URL=http://prntscr.com/mbv92p]http://prntscr.com/mbv92p[/URL]
На обоих скриншотах зеленым указаны те элементы, которые должны попасть в выборку, красным - те элементы, которые в неё попасть не должны, но на втором скриншоте видно, что один элемент туда попал. Будет ли правильным решением с точки зрения экзамена перевести свойства в отдельные таблицы или же реализовать подобный функционал можно проще?
Весь интернет облазил, ответ на свой вопрос найти не удалось.
Или может быть я неправильно понял трактовку задания и задача выборки выполнена верно? Больше всего пункт
"Новости, в которых в авторстве присутствует текущий пользователь, не выводятся у других авторов." меня смущает, как раз под него новость с ID 35 не подходит.
Или правильным решением с точки зрения экзамена будет сделать две выборки, в первой собрать ID новостей, у которых в авторстве указан текущий пользователь, во второй исключить новости с этими ID?
Заранее спасибо за ответ.
Текущий код:[CODE]//iblock elements
$arOrder = array (
"SORT" => "ASC"
);
$arGroupBy = false;
$arNavStartParams = false;
$arSelectFields = array (
"ID",
"IBLOCK_ID",
"NAME",
"PROPERTY_" . $arParams["PROPERTY_AUTHOR_CODE"] // код множественного свойства инфоблока - привязка к пользователям
);
$arFilter = array (
"IBLOCK_ID" => $arParams["NEWS_IBLOCK_ID"],
"ACTIVE" => "Y",
array(
"LOGIC" => "AND",
"PROPERTY_" . $arParams["PROPERTY_AUTHOR_CODE"] => $curGroupUsers, // свойство == [3,4]
"!PROPERTY_" . $arParams["PROPERTY_AUTHOR_CODE"] => $userid, // свойство != [1]
)
);
$arElements = array();
$rsElements = CIBlockElement::GetList(
$arOrder,
$arFilter,
$arGroupBy,
$arNavStartParams,
$arSelectFields
);
[/CODE]
Как необходимо отфильтровать элементы [URL=http://prntscr.com/mbv8sg]http://prntscr.com/mbv8sg[/URL]
что получается в итоге (из-за множественного свойства) [URL=http://prntscr.com/mbv92p]http://prntscr.com/mbv92p[/URL]
На обоих скриншотах зеленым указаны те элементы, которые должны попасть в выборку, красным - те элементы, которые в неё попасть не должны, но на втором скриншоте видно, что один элемент туда попал. Будет ли правильным решением с точки зрения экзамена перевести свойства в отдельные таблицы или же реализовать подобный функционал можно проще?
Весь интернет облазил, ответ на свой вопрос найти не удалось.
Или может быть я неправильно понял трактовку задания и задача выборки выполнена верно? Больше всего пункт
"Новости, в которых в авторстве присутствует текущий пользователь, не выводятся у других авторов." меня смущает, как раз под него новость с ID 35 не подходит.
Или правильным решением с точки зрения экзамена будет сделать две выборки, в первой собрать ID новостей, у которых в авторстве указан текущий пользователь, во второй исключить новости с этими ID?
Заранее спасибо за ответ.
Текущий код:[CODE]//iblock elements
$arOrder = array (
"SORT" => "ASC"
);
$arGroupBy = false;
$arNavStartParams = false;
$arSelectFields = array (
"ID",
"IBLOCK_ID",
"NAME",
"PROPERTY_" . $arParams["PROPERTY_AUTHOR_CODE"] // код множественного свойства инфоблока - привязка к пользователям
);
$arFilter = array (
"IBLOCK_ID" => $arParams["NEWS_IBLOCK_ID"],
"ACTIVE" => "Y",
array(
"LOGIC" => "AND",
"PROPERTY_" . $arParams["PROPERTY_AUTHOR_CODE"] => $curGroupUsers, // свойство == [3,4]
"!PROPERTY_" . $arParams["PROPERTY_AUTHOR_CODE"] => $userid, // свойство != [1]
)
);
$arElements = array();
$rsElements = CIBlockElement::GetList(
$arOrder,
$arFilter,
$arGroupBy,
$arNavStartParams,
$arSelectFields
);
[/CODE]