Меню

Получение полной информации об элементах инфоблока с использованием 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
Читают тему (гостей: 1)
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

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

Кастомизация поля input type file, свой внешний вид

Задача: Поле input type="file" предоставляет возможность загрузки файлов на веб-странице. Однако стандартный в...

Получить список элементов инфоблока с ценами с помощью D7

Задача: использовать D7 в 1С-Битрикс для получения списка элементов инфоблока вместе с их ценами. Это может быть полезно...

Дополнительные параметры в меню Битрикс

Иногда нужно присвоить какой-то функционал к конкретному пункту меню в битрикс. Например открывать ссылку в новом окне и...

Быстрая отписка от всех рассылок модуля "E-mail маркетинг", в кабинете пользователя

Задача: дать пользователям возможность отписаться от всех рассылок "E-mail маркетинга", не только по ссылке из...

Смена вида карточек товаров в catalog.section с иммитацией AJAX

Смену вида карточек товаров, в разделе каталога, можно реализовать с помощью сессии, записывая в нее нужный вида шаблона...

Вывести список всех пользователей с необходимой информацией

Если нужно, на какой-либо странице сайта, вывести всех пользователей из группы "Зарегистирированные пользователи", прост...

CAPTCHA с возможностью обновления без перезагрузки страницы в 1C-Битрикс

Задача: Так как стандартная капча в 1С-Битрикс, может отобразиться не удачно (символы уходят за грань капчи или не у...

Прятать или показывать описание раздела каталога

В новых компонентах и шаблонах catalog.section есть не документированный и не выводимый параметр: "Скрывать описание раз...

Получить и вывести все цены товара в 1С-Битрикс

Задача: получить и вывести все цены товара по его ID в каталоге 1С-Битрикс (например, в детальной карточке catalog.e...