Меню

Получение полной информации об элементах инфоблока с использованием ORM

RSS
Получение полной информации об элементах инфоблока с использованием ORM
 
Получение полной информации об элементах инфоблока с использованием ORM

Задача: собрать полные данные об элементах инфоблока, применяя ORM/D7, который пришел на смену устаревшему CIBlockElement::GetList.
 
Код
// Примеры различных типов свойств
'PREFS_' => 'ATT_PREFS',    // Строковое свойство
'PHOTOS_' => 'MORE_PHOTO.FILE',    // Свойство-файл
'PROCESSOR_' => 'ATT_PROCESSOR.ITEM',     // Свойство-список
'RELATED_' => 'ATT_RELATED.ELEMENT',    // Привязка к элементам
'BRANDS_' => 'ATT_RELATED.SECTION',     // Привязка к разделам
'MULTIPLE_' => 'ATT_MULTIPLE.VALUE'    // Множественное свойство

Пример использования в видеоуроке
https://bazarow.ru/video/video_new/seazon_2_2024/component-users-bulletins/
Изменено: Михаил Базаров - 01.11.2024 14:38:19
 
Метод Iblock::wakeUp естественно не документирован в Битрикс (((
 
Скудно, но все таки в примерах встречается, в новой документации
 
Описанный подход имеет два недостатка:
1) если свойство элемента - множественное, то в результирующем массиве данный элемент повторяется столько раз, сколько значений есть у этого свойства. Как этого избежать, не написано.
2) в результирующий массив попадает множество ненужных значений у каждого свойства. Например, для свойства типа "привязка к элементам" получаем значения _ID, _TIMESTAMP_X, _MODIFIED_BY, _DATE_CREATE, _CREATED_BY, _IBLOCK_ID, _IBLOCK_SECTION_ID и все остальные стандартные поля элемента. Если нужно получить только значение свойства типа "привязка к элементам", то в массиве SELECT метода GETLIST нужно указать не ATT_RELATED.ELEMENT, а ATT_RELATED.ELEMENT.NAME. Об этом также не написано.
 
Да, со множественными свойствами все сложенее (как и обычно).
Дописал в заметку как быть с ними.
По второму моменту, тут да, нужно работать с тем что есть - больших проблем не должно вызывать
Изменено: Михаил Базаров - 21.03.2025 11:56:34
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Установить цену товара из свойства инфоблока

На одном из проектов, нужно было единоразово заполнить цены товаров из свойства инфоблока. Сделать это можно через API, ...

Подключение jquery из ядра битрикс и объединение своих скриптов в один файл

Если используете большое количество js скриптов на сайте. Например: фансибокс, всяческие галереи и прочее- то таких внеш...

Сравнение двух типов цен для иммитации системы скидок, в Битрикс

Встала задачка, иммититровать систему скидок в интернет магазине на Битрикс. Из 1С-УТ, на сайт, выгружается два типа цен...

Заполнить поля пользователя из свойства заказа, на примере ФИО

При создании заказа покупатель заполняет поле "ФИО". Необходимо скопировать эти данные в профиль пользователя (не путать...

Заполнить картинки разделов каталога из картинок товаров

Задача: в каталоге, разделы и подразделы выводятся в виде плитки над товарами, с картинками разделов. Так как разделов и...

Вывести компонент новостей на страницу в Битрикс

Посмотрел Яндекс метрику на свой сайт, и решил что буду частенько писать сюда именно то, что ищут люди. Итак за последню...

Вывод элементов с помощью API битрикс

Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Например, если нужно вывести элем...

Заполнить свойство заказа выбранным пунктом самовывоза и передать в 1С

Задача: При оформлении заказа пользователь может выбрать пункт самовывоза (склады магазина). Нужно заполнить сво...

Сортировать товары по названию, цене и дате поступления в каталоге Битрикс

Достаточно часто заказчик просит вывести сортировку по цене, новым поступлениям и названию в каталоге товаров работающег...