Получилось e меня как-то так. это стандартный макрос getObjectsList.
if($type_id) {
$this->autoDetectOrders($sel, $type_id);
$this->autoDetectFilters($sel, $type_id);
if($this->isSelectionFiltered) {
$template_block_empty = $template_block_search_empty;
$this->isSelectionFiltered = false;
}
} else {
$sel->setOrderFilter();
$sel->setOrderByName();
}
/* ******************************************************************** */
$data = getRequest('fields_filter');
/* Определяет по какому type-id выводыить */
if ($data) {
if ($sel->addPropertyFilterIsNull('price')){
$sel->addObjectType(164);
}
}
else {
$sel->addObjectType(83);
}
/* ******************************************************************** */
if($curr_page !== "all") {
$curr_page = (int) $curr_page;
$sel->setLimitFilter();
$sel->addLimit($per_page, $curr_page);
}
P.S. код в принципе выполняется как мне надо. Но если честно не совсем понимаю:"$sel->addPropertyFilterIsNull('price'))", но и без нее не работает. Если кому не сложно поясните.