После решения задачи, хочется рассказать об этом
$APPLICATION->IncludeComponent( "bitrix:news.list", "", Array( "DISPLAY_DATE" => "Y", "DISPLAY_NAME" => "Y", "DISPLAY_PICTURE" => "Y", "DISPLAY_PREVIEW_TEXT" => "Y", "AJAX_MODE" => "Y", "IBLOCK_TYPE" => "news", "IBLOCK_ID" => "3", "NEWS_COUNT" => "20", "SORT_BY1" => "ACTIVE_FROM", "SORT_ORDER1" => "DESC", "SORT_BY2" => "SORT", "SORT_ORDER2" => "ASC", "FILTER_NAME" => "arrFilter", "FIELD_CODE" => Array("ID"), "PROPERTY_CODE" => Array("DESCRIPTION"), "CHECK_DATES" => "Y", "DETAIL_URL" => "", "PREVIEW_TRUNCATE_LEN" => "", "ACTIVE_DATE_FORMAT" => "d.m.Y", "SET_TITLE" => "Y", "SET_BROWSER_TITLE" => "Y", "SET_META_KEYWORDS" => "Y", "SET_META_DESCRIPTION" => "Y", "SET_LAST_MODIFIED" => "Y", "INCLUDE_IBLOCK_INTO_CHAIN" => "Y", "ADD_SECTIONS_CHAIN" => "Y", "HIDE_LINK_WHEN_NO_DETAIL" => "Y", "PARENT_SECTION" => "", "PARENT_SECTION_CODE" => "", "INCLUDE_SUBSECTIONS" => "Y", "CACHE_TYPE" => "A", "CACHE_TIME" => "3600", "CACHE_FILTER" => "Y", "CACHE_GROUPS" => "Y", "DISPLAY_TOP_PAGER" => "Y", "DISPLAY_BOTTOM_PAGER" => "Y", "PAGER_TITLE" => "Новости", "PAGER_SHOW_ALWAYS" => "Y", "PAGER_TEMPLATE" => "", "PAGER_DESC_NUMBERING" => "Y", "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000", "PAGER_SHOW_ALL" => "Y", "PAGER_BASE_LINK_ENABLE" => "Y", "SET_STATUS_404" => "Y", "SHOW_404" => "Y", "MESSAGE_404" => "", "PAGER_BASE_LINK" => "", "PAGER_PARAMS_NAME" => "arrPager", "AJAX_OPTION_JUMP" => "N", "AJAX_OPTION_STYLE" => "Y", "AJAX_OPTION_HISTORY" => "N", "AJAX_OPTION_ADDITIONAL" => "" ) );
Если необходима фильтрация элементов по определенному признаку, необходимо в настройки параметров компонента добавить "FILTER_NAME" => "arrFilter", и собрать этот самый фильтр
global $arrFilter; //фильтрация по значению свойства $arrFilter["PROPERTY_ON_MAIN_VALUE"] = "y"; //фильтрация по дате if($_GET["ARCHIVE"]) { $arDate = explode('.', $_GET["ARCHIVE"]); $timestemp = mktime(0,0,0, $arDate[0], 1, $arDate[1]); $counDay = date('t', $timestemp); $arrFilter["<=DATE_ACTIVE_FROM"] = "01.".$arDate[0].".".$arDate[1]." 0:00:00"; $arrFilter["<=DATE_ACTIVE_FROM"] = $counDay.".".$arDate[0].".".$arDate[1]." 23:59:59"; //Если свойство PROPERTY_DATE arrFilter["<PROPERTY_START_DATE"] = date("Y-m-d", time()); } //фильтрация по тегам if($_GET["TAGS"]) $arrFilter["TAGS"] = "%".$_GET["TAGS"]."%"; //фильтрация по множественному значению $properties = CIBlockProperty::GetList(Array(), Array("MULTIPLE"=>"Y", "ACTIVE"=>"Y", "IBLOCK_ID"=>$_GET["ID"])); while ($prop_fields = $properties->GetNext()) { $arMultiple[] = '=PROPERTY_'.$prop_fields['ID']; } foreach($arrFilter as $property=>$arValue){ if(in_array($property, $arMultiple)) { unset($arrFilter[$property]); foreach($arValue as $value){ $arrFilter[] = array("ID" => CIBlockElement::SubQuery("ID", array("IBLOCK_ID" => $_GET["ID"], $property => $value))); } } }