1C-Битрикс: Управление сайтом

CIBlockElement::GetList

CIBlockResult
CIBlockElement::GetList(
 array arOrder = Array("SORT"=>"ASC"),
 array arFilter = Array(),
 mixed arGroupBy = false,
 mixed arNavStartParams = false,
 array arSelectFields = Array()
);

Возвращает список элементов по фильтру arFilter.

Примечания:

  1. Внутренние ограничения Oracle и MSSQL не позволяют использовать DISTINCT при фильтрации по полям типа blob, поэтому фильтрация по нескольким значениям множественного свойства может дать дублирование.  
  2. Поля перечисленные для сортировки будут автоматически добавлены в параметр arSelectFields или в arGroupBy, если указана группировка записей.

Параметры функции

Параметр Описание
arOrder Массив вида Array(by1=>order1[, by2=>order2 [, ..]]), где by - поле для сортировки, может принимать значения:
  • id - ID элемента;
  • sort - индекс сортировки;
  • timestamp_x - дата изменения;
  • name - название;
  • active_from или date_active_from - начало периода действия элемента;
  • active_to или date_active_to - окончание периода действия элемента;
  • status - код статуса элемента в документообороте;
  • code - мнемонический код элемента;
  • iblock_id - числовой код информационного блока;
  • modified_by - код последнего изменившего пользователя;
  • active - признак активности элемента;
  • show_counter - количество показов элемента (учитывается функцией CIBlockElement::CounterInc);
  • show_counter_start - время первого показа элемента (учитывается функцией CIBlockElement::CounterInc);
  • shows - усредненное количество показов (количество показов / продолжительность показа);
  • rand - случайный порядок;
  • xml_id или external_id - внешний код;
  • tags - теги;
  • created - время создания;
  • created_date - дата создания без учета времени;
  • cnt - количество элементов (только при заданной группировке);
  • property_<PROPERTY_CODE> - по значению свойства с числовым или мнемоническим кодом PROPERTY_CODE (например, PROPERTY_123 или PROPERTY_NEWS_SOURCE);
  • propertysort_<PROPERTY_CODE> - по индексу сортировки варианта значения свойства. Только для свойств типа "Список" ;
  • catalog_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD (может быть PRICE - цена или CURRENCY - валюта) из цены с типом PRICE_TYPE (например, catalog_PRICE_1 или CATALOG_CURRENCY_3);
  • PROPERTY_<PROPERTY_CODE>.<FIELD> - по значению поля элемента указанного в качестве привязки. PROPERTY_CODE - мнемонический или символьный код свойства типа привязка к элементам. FIELD может принимать значения:
    • ID
    • TIMESTAMP_X
    • MODIFIED_BY
    • CREATED
    • CREATED_DATE
    • CREATED_BY
    • IBLOCK_ID
    • ACTIVE
    • ACTIVE_FROM
    • ACTIVE_TO
    • SORT
    • NAME
    • SHOW_COUNTER
    • SHOW_COUNTER_START
    • CODE
    • TAGS
    • XML_ID
    • STATUS
  • PROPERTY_<PROPERTY_CODE>.PROPERTY_<PROPERTY_CODE2> - по значению свойства элемента указанного в качестве привязки. PROPERTY_CODE - мнемонический или символьный код свойства типа привязки к элементам. PROPERTY_CODE2- код свойства связанных элементов.
  • HAS_PREVIEW_PICTURE и HAS_DETAIL_PICTURE - сортировка по наличию и отсутствию картинок.
  • order - порядок сортировки, может принимать значения:
    • asc - по возрастанию;
    • nulls,asc - по возрастанию с пустыми значениями в начале выборки;
    • asc,nulls - по возрастанию с пустыми значениями в конце выборки;
    • desc - по убыванию;
    • nulls,desc - по убыванию с пустыми значениями в начале выборки;
    • desc,nulls - по убыванию с пустыми значениями в конце выборки;
    Необязательный. По умолчанию равен Array("sort"=>"asc")
arFilter Массив вида array("фильтруемое поле"=>"значения фильтра" [, ...]). "фильтруемое поле" может принимать значения:
  • ID - по числовому коду (Число);
  • ACTIVE - фильтр по активности (Y|N); передача пустого значения ("ACTIVE"=>"") выводит все элементы без учета их состояния (Строка);
  • NAME - по названию (Маска);
  • CODE - по мнемоническому идентификатору (Маска);
  • TAGS - по тегам (Маска);
  • XML_ID или EXTERNAL_ID - по внешнему коду (Маска);
  • PREVIEW_TEXT - по анонсу (Маска);
  • PREVIEW_TEXT_TYPE - по типу анонса (html|text, Строка);
  • PREVIEW_PICTURE - коду картинки для анонса (Число);
  • DETAIL_TEXT - по детальному описанию (Маска);
  • DETAIL_TEXT_TYPE - по типу детальному описания (html|text, Строка);
  • DETAIL_PICTURE - по коду детальной картинки (Число);
  • CHECK_PERMISSIONS - если установлен в "Y", то в выборке будет осуществляться проверка прав доступа к информационным блокам. По умолчанию права доступа не проверяются.
  • MIN_PERMISSION - минимальный уровень доступа, будет обработан только если CHECK_PERMISSIONS установлен в "Y". По умолчанию "R". Список прав доступа см. в CIBlock::SetPermission().
  • SEARCHABLE_CONTENT - по содержимому для поиска. Включает в себя название, описание для анонса и детальное описание (Маска);
  • SORT - по сортировке (Число);
  • TIMESTAMP_X - по времени изменения (Дата);
  • DATE_MODIFY_FROM - по времени изменения. Будут выбраны элементы измененные после времени указанного в фильтре. Время указывается в формате сайта. Возможно использовать операцию отрицания "!DATE_MODIFY_FROM";
  • DATE_MODIFY_TO - по времени изменения. Будут выбраны элементы измененные ранее времени указанного в фильтре. Время указывается в формате сайта. Возможно использовать операцию отрицания "!DATE_MODIFY_TO";
  • MODIFIED_USER_ID или MODIFIED_BY - по коду пользователя, изменившего элемент (Число);
  • DATE_CREATE - по времени создания (Дата);
  • CREATED_USER_ID или CREATED_BY - по коду пользователя, добавившего элемент (Число);
  • DATE_ACTIVE_FROM - по дате начала активности (Дата) Формат даты должен соответствовать формату даты, установленному на сайте.;
  • DATE_ACTIVE_TO - по дате окончания активности (Дата)Формат даты должен соответствовать формату даты, установленному на сайте.;
  • ACTIVE_DATE - непустое значение задействует фильтр по датам активности. Будут выбраны активные по датам элементы.Если значение не установлено (""), фильтрация по датам активности не производится;
  • ACTIVE_FROM - устаревший;
  • ACTIVE_TO - устаревший;
  • IBLOCK_ID - по коду информационного блока (Число);
  • IBLOCK_CODE - по мнемоническому коду информационного блока (Маска);
  • IBLOCK_SITE_ID или IBLOCK_LID или SITE_ID или LID - по сайту (Строка);
  • IBLOCK_TYPE - по типу информационного блока (Маска);
  • IBLOCK_ACTIVE - по активности информационного блока (Y|N, Строка);
  • SECTION_ID - по родительской группе. Если значение фильтра false, "" или 0, то будут выбраны элементы не привязанные ни к каким разделам. Иначе будут выбраны элементы привязанные к заданному разделу. Значением фильтра может быть и массив. В этом случае будут выбраны элементы привязанные хотя бы к одному из разделов указанных в фильтре. Возможно указание отрицания "!". В этом случае условие будет инвертировано;
  • SECTION_CODE - по мнемоническому коду родительской группы. Аналогично SECTION_ID;
  • INCLUDE_SUBSECTIONS - если задан фильтр по родительским группам SECTION_ID, то будут также выбраны элементы находящиеся в подгруппах этих групп;
  • SUBSECTION  - по принадлежности к подразделам раздела. Значением фильтра может быть массив из двух элементов задающих левую и правую границу дерева разделов. Операция отрицания поддерживается.
  • SECTION_ACTIVE - если установлен в значение "Y", то проверяется активность групп к которым привязан элемент. Если естановлен "N", то будут выбраны элементы неактивных групп.
  • SECTION_GLOBAL_ACTIVE - аналогично предыдущему, но учитывается также активность родительских групп.
  • SHOW_COUNTER - по количеству показов (Число);
  • SHOW_COUNTER_START - по времени первого показа (Дата);
  • WF_COMMENTS - по комментарию документооборота (Маска);
  • WF_STATUS_ID или WF_STATUS - по коду статуса документооборота (Число);
  • SHOW_HISTORY - если установлен в значение "Y", то вместе с элементами будут выводится и их архив (история), по умолчанию выводятся только опубликованные элементы;
  • SHOW_NEW - если SHOW_HISTORY не установлен или не равен Y и SHOW_NEW=Y, то будут показываться ещё неопубликованные элементы вместе с опубликованными;
  • WF_PARENT_ELEMENT_ID - по коду элемента-родителя в документообороте для выборки истории изменений (Число);
  • WF_NEW - флаг что элемент ещё ни разу не был опубликован (Y|N);
  • WF_LOCK_STATUS - статус заблокированности элемента в документооборте (red|green|yellow);
  • PROPERTY_<PROPERTY_CODE> - фильтр по значениям свойств, где PROPERTY_CODE - код свойства или мнемонический код. Для свойств типа "Список", "Число", "Привязка к элементам" и "Привязка к разделам"  - Число. Для прочих - Маска;
  • PROPERTY_<PROPERTY_CODE>_VALUE - фильтр по значениям списка для свойств типа "список" (Маска), поиск будет осуществляться по строковому значению списка, а не по идентификатору;
  • CATALOG_<CATALOG_FIELD>_<PRICE_TYPE> - по полю CATALOG_FIELD из цены типа PRICE_TYPE (ID типа цены), где CATALOG_FIELD может быть: PRICE - цена, CURRENCY - валюта.
  • PROPERTY_<PROPERTY_CODE>.<FIELD> - фильтр по значениям полей связанных элементов. , где PROPERTY_CODE - ID или мнемонический код свойства привязки, а FIELD - поле указанного в привязке элемента. FIELD может принимать следующие значения: ACTIVE, DETAIL_TEXT_TYPE, PREVIEW_TEXT_TYPE, EXTERNAL_ID, NAME, XML_ID, TMP_ID, DETAIL_TEXT, SEARCHABLE_CONTENT, PREVIEW_TEXT, CODE, TAGS, WF_COMMENTS, ID, SHOW_COUNTER, WF_PARENT_ELEMENT_ID, WF_STATUS_ID, SORT, CREATED_BY, PREVIEW_PICTURE, DETAIL_PICTURE, IBLOCK_ID, TIMESTAMP_X, DATE_CREATE, SHOW_COUNTER_START, DATE_ACTIVE_FROM, DATE_ACTIVE_TO, ACTIVE_FROM, ACTIVE_TO, ACTIVE_DATE, DATE_MODIFY_FROM, DATE_MODIFY_TO, MODIFIED_USER_ID, MODIFIED_BY, CREATED_USER_ID, CREATED_BY. Правила фильтров идентичны тем, которые описаны выше.
Перед названием фильтруемого поля можно указать тип проверки фильтра:
  • "!" - не равно
  • "<" - меньше
  • "<=" - меньше либо равно
  • ">" - больше
  • ">=" - больше либо равно
  • "><" - между
  • и т.д.
Значения фильтра - одиночное значение или массив значений.

Необязательное. По умолчанию записи не фильтруются. 
arGroupBy Массив полей для группировки элемента. Если поля указаны, то выборка по ним группируется (при этом параметр arSelectFields будет проигнорирован), а в результат добавляется поле CNT - количество сгруппированных элементов. Если указать в качестве arGroupBy пустой массив, то функция вернет количество элементов CNT по фильтру. Группировать можно по полям элемента, а также по значениям его свойств. Для этого в качестве одного из полей группировки необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE - код свойства или мнемонический код.
Необязательное. По умолчанию false - записи не группируются.
arNavStartParams Параметры для постраничной навигации и ограничения количества выводимых элементов. массив вида "Название параметра"=>"Значение", где название параметра
"nTopCount" - ограничить количество сверху
"bShowAll" - разрешить вывести все элементы при постраничной навигации
"iNumPage" - номер страницы при постраничной навигации
"nPageSize" - количество элементов на странице при постраничной навигации
"nElementID" - ID элемента который будет выбран вместе со своими соседями. Количество соседей определяется параметром nPageSize. Например: если nPageSize равно 2-м, то будут выбраны максимум 5-ть элементов.  Соседи определяются порядком сортировки заданным в параметре arOrder (см. выше) .
При этом действуют следующие ограничения:
  • Если элемент с таким ID отсутствует в выборке, то результат будет не определен.
  • nElementID не работает, если задана группировка (см. параметр arGroupBy выше).
  • в параметре arSelect обязательно должено присутствовать поле "ID".
  • обязательно должна быть задана сортировка arOrder.
  • поля в сортировке catalog_* не учитываются и результат выборки становится не определенным.
  • в выборку добавляется поле RANK - порядковый номер элемента в "полной" выборке.
Необязательное. По умолчанию false - не ограничивать выводимые элементы.
Если передать в параметр arNavStartParams пустой массив, то ставится ограничение на 10 выводимых элементов.
arSelectFields Массив возвращаемых полей элемента. Список полей элемента, а также можно сразу выводить значения его свойств. Обязательно должно быть использовано поле IBLOCK_ID, иначе не будет работать корректно. Кроме того, также  в качестве одного из полей необходимо указать PROPERTY_<PROPERTY_CODE>, где PROPERTY_CODE - ID или мнемонический код. В результате будет выведены значения свойств элемента в виде полей PROPERTY_<PROPERTY_CODE>_VALUE - значение; PROPERTY_<PROPERTY_CODE>_ID - код значения у элемента; PROPERTY_<PROPERTY_CODE>_ENUM_ID - код значения (для свойств типа список).
При установленном модуле торгового каталога можно выводить и цены элемента. Для этого в качестве одного из полей необходимо указать CATALOG_GROUP_<PRICE_CODE>, где PRICE_CODE - ID типа цены.
Так же есть возможность выбрать поля элементов по значениям свойства типа "Привязка к элементам". Для этого необходимо указать  PROPERTY_<PROPERTY_CODE>.<FIELD>, где PROPERTY_CODE - ID или мнемонический код свойства привязки, а FIELD - поле указанного в привязке элемента. См. ниже "Поля связанных элементов для сортировки".
Можно выбрать и значения свойств элементов по значениям свойства типа "Привязка к элементам". Для этого необходимо указать  PROPERTY_<PROPERTY_CODE>.PROPERTY_<PROPERTY_CODE2>, где PROPERTY_CODE - ID или мнемонический код свойства привязки, а PROPERTY_CODE2 - свойство указанного в привязке элемента.

По умолчанию выводить все поля.

Примечание 1: если в массиве используются свойство, являющееся множественным, то для элементов, где используются несколько значений этого свойства, будет возвращено несколько записей вместо одной. Для решения этой проблемы инфоблоки нужно перевести в Режим хранения свойств в отдельных таблицах, в этом случае для свойства будет отдаваться массив значений. Либо можно не указывать свойства в параметрах выборки, а получать их значения на каждом шаге перебора выборки с помощью _CIBElement::GetProperties().

Примечание 2: Если в массиве указаны поля DETAIL_PAGE_URL, SECTION_PAGE_URL или LIST_PAGE_URL, то поля необходимые для правильной подстановки шаблонов URL'ов будут выбраны автоматически. Но только если не была задана группировка.

Примечание 3: если необходимо выбрать данные о рейтингах для выбранных элементов, то для этого в массиве необходимо указать следующие поля: RATING_TOTAL_VALUE, RATING_TOTAL_VOTES, RATING_TOTAL_POSITIVE_VOTES, RATING_TOTAL_NEGATIVE_VOTES, RATING_USER_VOTE_VALUE.


Рассмотрим несколько частных случаев фильтрации:

  • $arFilter = array("PROPERTY_CML2_SCAN_CODE") =>false - используется, чтобы выбрать все элементы с незаполненными свойствами;
  • $arFilter = array("PROPERTY_CML2_SCAN_CODE") =>"" - используется, чтобы выбрать все элементы; 
  • $arFilter = array("PROPERTY_CML2_SCAN_CODE") =>qwe - при фильтрации элементов проверяется точное совпадение с заданными свойствами;
  • $arFilter = array("?PROPERTY_CML2_SCAN_CODE") =>we" - при фильтрации элементов проверяется наличие заданной подстроки свойствах.
  • $arFilter = array("!PROPERTY_CML2_SCAN_CODE") =>false - используется, чтобы выбрать только элементы с заполненными свойствами;
  • $arFilter = array("!PROPERTY_CML2_SCAN_CODE") =>"" - используется, чтобы выбрать все элементы;
  • $arFilter = array("!PROPERTY_CML2_SCAN_CODE") =>qwe - при фильтрации элементов проверяется точное совпадение с заданными свойствами;
  • $arFilter = array("!?PROPERTY_CML2_SCAN_CODE") =>we - при фильтрации элементов проверяется наличие заданной подстроки свойствах.

Фильтр со сложной логикой

Параметр arFilter может содержать вложенные фильтры. Ключом массива вложенного фильтра должно быть число. Например:
  • $arFilter = array("NAME" => "A%", array(..<здесь пары "поле" => "фильтр">...), "IBLOCK_ID" => $IBLOCK_ID);
Вложенность фильтров теоритически не ограничена.
Так же условия фильтра могут объединяться не только по условию "И", но и "ИЛИ". Для этого в качестве фильтруемого поля надо указать "LOGIC". Может принимать два значения: "AND" и "OR". По умолчанию - "AND". Например выберем маленькие зрелые и большие не зрелые апельсины:
$arFilter = array(
"IBLOCK_ID" => $IBLOCK_ID,
"SECTION_CODE" => "orange",
"INCLUDE_SUBSECTIONS" => "Y",
array(
"LOGIC" => "OR",
array("<PROPERTY_RADIUS" => 50, "=PROPERTY_CONDITION" => "Y"),
array(">=PROPERTY_RADIUS" => 50, "!=PROPERTY_CONDITION" => "Y"),
),
);


В этом примере фильтр по свойствам апельсинов является подфильтром инфоблока фруктов.

Поля связанных элементов

  • ID - числовой идентификатор элемента;
  • TIMESTAMP_X - время последней модификации в полном формате сайта;
  • MODIFIED_BY - идентификатор пользователя вносившего последние правки;
  • DATE_CREATE - время создания элемента в полном формате сайта
  • CREATED_BY - идентификатор пользователя создавшего элемент;
  • IBLOCK_ID - числовой идентификатор инфоблока элемента;
  • ACTIVE - активность (Y|N);
  • ACTIVE_FROM - начало активности в полном формате сайта;
  • ACTIVE_TO - окончание активности в полном формате сайта;
  • SORT - значение сортировки;
  • NAME - имя элемента;
  • PREVIEW_PICTURE - идентификатор изображения;
  • PREVIEW_TEXT - текст анонса;
  • PREVIEW_TEXT_TYPE - тип текста анонса (html|text);
  • DETAIL_PICTURE - идентификатор изображения;
  • DETAIL_TEXT - детальное описание;
  • DETAIL_TEXT_TYPE - тип детального описания (html|text);
  • SHOW_COUNTER - счетчик показов;
  • SHOW_COUNTER_START - время первого показа элемента в полном формате сайта;
  • CODE - символьный код элемента;
  • TAGS - теги;
  • XML_ID - внешний идентификатор;
  • IBLOCK_SECTION_ID - минимальный идентификатор раздела элемента (если задан);
Дополнительно присоединяется таблица инфоблоков:
  • IBLOCK_TYPE_ID - идентификатор типа инфоблока;
  • IBLOCK_CODE - символьный код инфоблока;
  • IBLOCK_NAME - название инфоблока;
  • IBLOCK_EXTERNAL_ID - внешний код инфоблока;
  • DETAIL_PAGE_URL - путь к элементу;
  • LIST_PAGE_URL - путь к списку элементов;

Возвращаемое значение

Возвращается объект CIBlockResult.

См. также

  • CDBResult
  • Поля элементов

    Примеры использования

    <?
    $arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM");
    $arFilter = Array("IBLOCK_ID"=>IntVal($yvalue), "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
    $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
    while($ob = $res->GetNextElement())
    {
    $arFields = $ob->GetFields();
    print_r($arFields);
    }
    ?>
    <?
    // выборка активных элементов из информационного блока $yvalue,
    // у которых установлено значение свойства с мнемоническим кодом SRC
    // и дата начала автивности старше 1 января 2003 года
    // выбранные элементы будут сгруппированы по дате активности
    $arFilter = Array(
    "IBLOCK_ID"=>IntVal($yvalue),
    ">DATE_ACTIVE_FROM"=>date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")), mktime(0,0,0,1,1,2003)),
    "ACTIVE"=>"Y",
    "!PROPERTY_SRC"=>false
    );
    $res = CIBlockElement::GetList(Array("SORT"=>"ASC", "PROPERTY_PRIORITY"=>"ASC"), $arFilter, Array("DATE_ACTIVE_FROM"));
    while($ar_fields = $res->GetNext())
    {
    echo $ar_fields["DATE_ACTIVE_FROM"].": ".$ar_fields["CNT"]."<br>";
    }
    ?>
  • Пользовательские комментарии

    Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

    Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
    Страницы: 1 2 След.
    0
    Роберт Басыров
    Задача: Получить ID элемента с максимальным количеством просмотров из нескольких инфоблоков.

    Решение:
    Код
    $rs=CIBlockElement::GetList(array("show_counter"=>"desc"), array("ACTIVE"=>"Y", "IBLOCK_TYPE"=>"catalog"), false, array("nTopCount"=>1), array("ID")); 
    while($ar=$rs->GetNext()) 
    { 
    echo $ar["ID"]; 
    }
    2
    Артемий Кутырёв
    Из системы обнолений:

    Версия 8.0.4
    Внимание! Изменение логики работы API. Теперь в результате CIBlockElement::GetList с фильтром по CATALOG_SHOP_QUANTITY_* также будут присутствовать товары, для которых не задана цена для требуемого диапазона.
    0
    Chu
    Вывести архив из просроченных элементов. (news.list)
    Код
    $arFilter = array (
       "IBLOCK_ID" => $arResult["ID"],
       "IBLOCK_LID" => SITE_ID,
       "ACTIVE" => "Y",
       "CHECK_PERMISSIONS" => "Y",
       "!DATE_ACTIVE_TO" => "NULL",
       "<DATE_ACTIVE_TO" => date("d.m.Y h:i:s"),
    );
    2
    NightCat
    Задача: Фильтрация "от" и "до" по свойству типа "Дата/Время".
    Проблема: Свойство типа Дата/Время хранится в БД как строковое с датой в формате YYYY-MM-DD HH:MI:SS.
    Решение: Перед фильтрацией обязательно сконвертировать дату из формата сайта в формат, используемый для хранения.
    Код
    $DateFrom = "01.01.2008";
    $DateTo = "31.01.2008";
    $arFilter = array ( 
       ">=PROPERTY_DATE" => ConvertDateTime($DateFrom, "YYYY-MM-DD")." 00:00:00", 
       "<=PROPERTY_DATE" => ConvertDateTime($DateTo, "YYYY-MM-DD")." 23:59:59", 
    );
    При использовании такого фильтра выберутся все элементы со свойством DATE от 01.01.2008 00:00:00 до 31.01.2008 23:59:59.
    0
    Антон Долганин
    Цитата
    Вывести архив из просроченных элементов. (news.list)

    Будет работать только для даты формата "дд.мм.гггг чч:мм:сс"

    Правильнее в "<DATE_ACTIVE_TO" поставить:
    Код
    date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT")))

    Это и есть текущее время в формате сайта.

    Код
    "CHECK_PERMISSIONS" => "Y", 

    Вообще не рекомендую пользовать без надобности. Сильно грузит систему.
    0
    Роберт Басыров
    Задача: Осуществить выборку элементов инфоблока, чтобы в возвращаемом результате находилось 5 случайных элементов.

    Решение:
    Код
    $rs = CIBlockElement::GetList (
       Array("RAND" => "ASC"),
       Array("IBLOCK_ID" => $IBLOCK_ID),
       false,
       Array ("nTopCount" => 5)
    );
    0
    Роберт Басыров
    Задача: настроить фильтр для свойства типа Дата/Время.
    Решение:
    Свойство типа Дата/Время "внутре" хранится как строковое с датой в формате YYYY-MM-DD HH:MI:SS.
    Соответственно сортировка по значению такого свойства будет работать корректно, а вот значение для фильтрации формируется примерно так: $cat_filter[">"."PROPERTY_available"] = date("Y-m-d");
    0
    Роман Забродин
    Недавно обнаружил, что если задать разным свойствам одинаковый символьный код, но в разном регистре, то при работе сортировки по одному из свойств (например, PROPERTY_rating) будет возникать ошибочная ситуация (элементы в списке задублируются, сортировки не будет).
    0
    Нина Рудзинская
    В первом примере использования метода можно добавить вывод свойств для каждого элемента. Удобно использовать, не прибегая к GetPropery.

    Код
    <?
    $arSelect = Array("ID", "NAME", "DATE_ACTIVE_FROM","PROPERTY_*");
    $arFilter = Array("IBLOCK_ID"=>IntVal($yvalue), "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
    $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);
    while($ob = $res->GetNextElement()){ 
     $arFields = $ob->GetFields();  
    print_r($arFields);
     $arProps = $ob->GetProperties();
    print_r($arProps);
    }
    ?>
    1
    Нина Рудзинская
    Есть еще такое полезное поле фильтрации как CATALOG_QUANTITY - количество товара на складе, для инфоблоков-каталогов товара.
    Страницы: 1 2 След.
    © «Битрикс», 2001-2012, «1C-Битрикс», 2012