Если хотим работать с orm инфоблоков, то сначала в настройках инфоблока пропишите символьный код api
Если вам нужно получить все свойства инфоблока то можно так
\Bitrix\Iblock\PropertyTable::getList([
'select' => [
'CODE',
'NAME',
],
'filter' => [
'IBLOCK_ID' => $iblockId,
],
'cache' => [
'ttl' => 3600
],
])->fetchAll();
Вместо fetchall() можно fetchCollection() - для работы с коллекциями
Если мы хотим получить элементы со значениями нужных свойств, то можно допустим так
\Bitrix\Iblock\Elements\ElementCalendarListTable::getList([
'select' => [
'NAME',
'ID',
'PROP_TEXT_VALUE' => 'PROP_TEXT.VALUE', //строка
'PROP_CITY_VALUE' => 'PROP_CITY.ITEM.VALUE', // список
'PROP_COURSE_' => 'PROP_COURSE_ELEMENT.ELEMENT', // свойство с привязкой элемента
],
'cache' => [
'ttl' => 3600
],
])->fetchCollection()
ElementCalendarListTable - это часть из названия символьного кода api и ElementTable
Обратите внимание на select и как указываются свойства.
Битрикс автоматом связывает таблицы, если они правильно в запросе прописаны
https://dev.1c-bitrix.ru/learning/course/index.php...
Посмотрите тут про типы свойств и как их можно получить и как формировать запросы. (там это указано под спойлером)
Еще значения из свойств элемента можно получить так (как в справке)
$iblock = \Bitrix\Iblock\Iblock::wakeUp($iblockId);
$elements = $iblock->getEntityDataClass()::getList([
'select' => ['ID', 'SOME_FIELD', 'ANOTHER_FIELD.ELEMENT']
])->fetchCollection();
foreach ($elements as $element)
{
echo $element->getSomeField()->getValue();
echo $element->getAnotherField()->getElement()->getTitle();
}
Тута
https://dev.1c-bitrix.ru/learning/course/index.php...
Это более простые способы получения значений из свойств инфоблоков.
Есть еще вариант джойнить таблицы, делается через runtime