Вывод множественного свойства в Битриксе

Очередная небольшая заметка на тему вывода свойства определенного типа в CMS Битрикс. В прошлый раз была заметка о свойстве типа «Файл», в этот раз очередь дошла до вывода множественного свойства. 

Множественное свойство используется в инфоблоке каталога интернет-магазина для добавления к карточке товара аксессуаров, сопутствующих товаров и прочих аналогичных блоков. Также встречается вариант привязки «акционных» товаров к определенной новости в инфоблоке «новостей». Сложно ли вывести подобное свойство? Как будет видно из нижеизложенного текста — это совсем просто. Весь процесс занимает пару простых шагов:

А) Создание свойства и установка значений

Б)  Вывод свойства в необходимом шаблоне

Создание свойства и установка значений

Множественное свойство, как и любое другое в Битриксе заводится в разделе «свойства» в соответствующем инфоблоке. В качестве примера укажем тип свойства «Привязка к элементам» и отметим, что это свойство «множественное»:

Далее привяжем несколько товаров к определенной карточке (с этим не должно возникнуть сложностей, делается это при редактировании карточки). И переходим к следующему шагу.

Вывод свойства в необходимом шаблоне

В рамках данного примера мы выводим множественное свойство на карточке товара (т.е. в bitrix.catalog.element). Стоит заметить, что эти «аналогичные товары» в данном примере уже выводятся на карточке товара в компоненте bitrix.catalog.section (а не просто значения данного множественного свойства).

Первым делом, конечно, нужно добавить проверку, есть ли вообще данное свойство у товара. Что-нибудь такое:

<?if($arResult['PROPERTIES']['analog']['VALUE']):?>

Далее, в том случае если оно действительно есть, мы включаем значения данного свойства в фильтр, примерно так:

global $arrFilter_hleb_items;
$arrFilter_hleb_items = array('ID'=>$arResult['PROPERTIES']['analog']['VALUE']);

И далее выводим содержимое компонента, где в фильтре не забываем указать вышеуказанную переменную (Весь код вызова компонента здесь, вероятно, будет излишним):

"FILTER_NAME" => "arrFilter_hleb_items",

В том случае, если нужно просто вывести значение множественного свойства (в данном случае — это ID привязанного товара):

Всё достаточно просто. Вывод осуществляется следующим образом:

<?foreach($arResult["PROPERTIES"]["analog"]["VALUE"] as $mew):?>
   <?print_r($mew);?>
<?endforeach;?>

По завершению данного шага, цель данной заметки, очевидно, достигнута в полном объеме