В версии БУС 12.5 возникла проблема: нужно выбрать элементы, исходя из значения XML_ID у свойства типа список.
Стандартный параметр для фильтра не работает, т.е. например:
[CODE] $arFilter = Array("IBLOCK_ID"=>$ib_id, "ACTIVE"=>"Y", "SECTION_ID"=>$sec_id, "=PROPERTY_MODEL_SEASON.XML_ID"=>$season_xml_id);[/CODE] не срабатывает.
Из старого поста [url=http://dev.1c-bitrix.ru/community/forums/messages/forum6/topic34617/message192116/#message192116]на форуме битрикса[/url] выяснилось, что это можно (а раньше и нужно было) сделать через дополнительный запрос. Однако, по указанному примеру сделать не получилось.
В результате поиска было установлено, что отфильтровать можно следующим способом:
[CODE]$property_enums = CIBlockPropertyEnum::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>$ib_id, "XML_ID"=>$season_xml_id) ) );
if($enum_fields = $property_enums->GetNext())
{
$arFilter = Array("IBLOCK_ID"=>$ib_id, "ACTIVE"=>"Y", "SECTION_ID"=>$sec_id, "PROPERTY_MODEL_SEASON"=>$enum_fields["ID"] );
$res = CIBlockElement::GetList(Array("ID"=>"ASC"), $arFilter, false, Array("nTopCount"=>5), $arSelect);
while($ob = $res->GetNextElement())
{
// обрабатываем элементы
}
}
[/CODE]