Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

получить массив одного дополнительного свойства элемента инфоблока

00 голосов
7
Здравствуйте!
Такой вопросик.
Есть инфоблок, в который записывается календарь соревнований. У каждого элемента (т.е. соревнования) есть несколько дополнительных свойств. Одно из этих свойств может быть массивом значений.
Что-то вчера как не мучался, не получилось у меня получить этот массивчик. Не подскажите где и чего я не так делаю?
Код
$arSelect = Array("ID", "NAME", "CREATED_BY", "PROPERTY_DATAFROM", "PROPERTY_DATATO", "PROPERTY_DISCIPLINA", "PROPERTY_ETAP", "PROPERTY_VIDSOREVNOV", "PROPERTY_MESTOPROV");
$arFilter = Array("IBLOCK_ID"=>IntVal($CALENDAR_ID), "<=DATE_ACTIVE_FROM"=>"$date", ">=DATE_ACTIVE_TO"=>"$date" );
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
$cnt = $res->SelectedRowsCount();

while($ob = $res->GetNextElement())
{  
   $arFields = $ob->GetFields();
   $us = CUser::GetByID( $arFields["CREATED_BY"] );
   if ( $aus = $us->Fetch() )
   {   
      $ug = CUser::GetUserGroup($arFields["CREATED_BY"]);
      if ( in_array(1,$ug) )
         $sus = "Администрация сайта";
      else
         $sus = $aus["LAST_NAME"]." ".$aus["NAME"];
   }
   echo "<p>";
   echo "Соревнования по ".$arFields["PROPERTY_VIDSOREVNOV_VALUE"]."<br>";
   echo $arFields["PROPERTY_DISCIPLINA_VALUE"]."<br>";
   echo "Этап №".$arFields["PROPERTY_ETAP_VALUE"]."<br>";
   echo "Название: ".$arFields["NAME"]."<br>";

   echo "Категории: ";

$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("IBLOCK_ID"=>$CALENDAR_ID));
while ($prop_fields = $properties->GetNext())
{
  echo $prop_fields["ID"]." - ".$prop_fields["NAME"]."<br>";
}

   $reskat = CIBlockElement::GetProperty($CALENDAR_ID, $arFileds["ID"], "sort", "asc", Array("CODE"=>"KATEGOR"));
   if ($ob2 = $reskat->Fetch())
   {
//      $fd = $ob2->GetFields();
echo "<br>";
print_r ($ob2);
echo "<br>";
//      $arKat = $ob2->GetFields();
//      echo $ob2["VALUE"]." ";
   }
спросил 24 Июль, 13 от salo (840 баллов)

7 Ответы

00 голосов
Воспользуйтесь следующим кодом:
Код
$arProperty = $obElement->GetProperties();
print_r($arProperty["KATEGOR"]["VALUE"]);
ответил 24 Июль, 13 от Damani (1,180 баллов)
00 голосов
не работает.
Код
$arSelect = Array("ID", "NAME", "CREATED_BY", "PROPERTY_DATAFROM", "PROPERTY_DATATO", "PROPERTY_DISCIPLINA", "PROPERTY_ETAP", "PROPERTY_VIDSOREVNOV", "PROPERTY_MESTOPROV");
$arFilter = Array("IBLOCK_ID"=>IntVal($CALENDAR_ID), "<=DATE_ACTIVE_FROM"=>"$date", ">=DATE_ACTIVE_TO"=>"$date" );
$res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
while($ob = $res->GetNextElement())
{  
   echo "Категории: ";

   $arProperty = $ob->GetProperties();
   print_r($arProperty["KATEGOR"]["VALUE"]);
}
ответил 18 Сен, 13 от salo (840 баллов)
00 голосов
Попробуйте добавить "IBLOCK_ID" в $arSelect.
ответил 16 Дек, 13 от Damani (1,180 баллов)
00 голосов
не помогло :(
ответил 31 Март, 14 от salo (840 баллов)
00 голосов
Можете ли Вы предоставить админский вход на сайт?
Если это возможно, создайте, пожалуйста, запрос в техподдержку, в котором укажите требуемые параметры (URL, логин, пароль)
ответил 24 Июль, 14 от Damani (1,180 баллов)
00 голосов
Попробуйте вообще отключить $arSelect при выборке.
Результат есть?
ответил 25 Ноя, 14 от Damani (1,180 баллов)
00 голосов
К сожалению сейчас доступ не могу предоставить.

Отключал совсем $arSelect, тоже не помогает.
Если в $arSelect включить "PROPERTY_KATEGOR" то я получаю несколько одинаковых элементов, различающихся только этим полем.

Тогда отложим этот вопрос на будущее.
ответил 21 Март, 15 от salo (840 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 09 Июль, 13 от t1000 (200 баллов)
0 голосов
5 ответов
0 голосов
4 ответов
0 голосов
3 ответов
0 голосов
3 ответов