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

Выборка по привязаным инфоблокам

00 голосов
1
Добрый день!
Подскажите, пожалуйста, решение такой задачи:
Есть два инфоблока:
  1. Записи
  2. Периоды
В периодах есть название периода, дата начала периода (DATE_FROM) и дата окончания периода (DATE_TO).
В записях название, сам текст и период (PERIOD) - привязка к элементам инфоблока "период" в виде списка.
Необходимо! Выбрать ID активных периодов в которых есть хотябы одна опубликованная запись, отсортированных по дате окончания периода (DATE_TO).
Буду очень признателен за помощь! smile:idea:
спросил 02 Апр, 14 от W1Ng (540 баллов)

1 Ответ

00 голосов
Можно внутри выборки периодов проверять количество элементов инфоблока записей, привязанных к этому периоду, например как-то так:

Код
<?
if (CModule::IncludeModule("iblock")) {

   $rsElements = CIBlockElement::GetList(
      Array("ACTIVE_TO"=>"DESC"),
      Array("IBLOCK_ID"=>2,"ACTIVE"=>"Y"),
      false,
      false,
      Array("ID","IBLOCK_ID")
   );

   $arPeriods = Array();

   while($arElement=$rsElements->GetNext()) {
      
      $count = CIBlockElement::GetList(
          Array(),
          Array(
             "IBLOCK_ID"=>1,
             "ACTIVE" => "Y",
             "PROPERTY_PERIOD" =>$arElement["ID"]
          ),
          Array()
       );
      
      if($count>0) $arPeriods[] = $arElement["ID"];
      
   }

}
?>
ответил 15 Окт, 14 от BRENN (1,080 баллов)

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

0 голосов
2 ответов
спросил 06 Май, 14 от MortiMer (160 баллов)
0 голосов
2 ответов
0 голосов
3 ответов
спросил 27 Фев, 14 от megapihar (100 баллов)
0 голосов
2 ответов
спросил 10 Янв, 14 от Sherena (100 баллов)
0 голосов
4 ответов
спросил 27 Дек, 13 от berk2 (100 баллов)