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

Использование функций с точки зрения производительности

00 голосов
2
Например: есть тип инфоблока catalog, в нем инфоблок catalog_tovarov (id-1) и свойство элемента (код - svoystvo)! Создал элемент ID - 5.

Чтобы получить значения свойства элемента с ID-5, я использую функцию GetIBlockElement

<? $arrSV = GetIBlockElement(5, 'catalog') // 5 - элемент ID, 'catalog' - тип инфоблока ?>

<?= $arrSV['PROPERTIES']['svoystvo]['VALUE'] // выводит значения свойства, которое указано в элементе ?>

Метод довольно простой получить значения свойства, но я так понимаю НЕ производительный (для моего случая), так-как данная функция возвращает массив полей информационного элемента и дополнительно следующие поля:
- IBLOCK_NAME
- PROPERTIES (который я использовал в данном примере).

Я так понимаю при использовании этой функции создается массив полей информационного элемента (который мне собственно не нужен) и для моего случая это не производительно! Я все правильно понял??? Получается с точки зрения производительности, мне нужно использовать такую функцию, которая будет возращать только PROPERTIES и больше ничего! Подскажите функцию, которая по id элемента и коду свойства элемента найдет его значения или возвратит массив (если свойство множественное)??? Заранее спасибо!
спросил 17 Апр, 14 от InFroO (160 баллов)

2 Ответы

00 голосов
Попробуйте CIBlockElement::GetProperty()
ответил 23 Ноя, 14 от Delp (7,220 баллов)
00 голосов
С помощью функции CIBlockElement::GetProperty() получилось считать значение свойства:

<?
$db_props = CIBlockElement::GetProperty(1, 5, "sort", "asc", array("CODE"=>"svoystvo"));
if($ar_props = $db_props->Fetch()):
echo $ar_props['VALUE'];
endif;
?>

Такой метод будет работатать более производительней, чем с функцией GetIBlockElement (пример описан выше)???

Также как этот метод переделать, чтобы можно было считывать множественные значения??? Предложенные в документации, не работают...
ответил 19 Март, 15 от InFroO (160 баллов)

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

0 голосов
4 ответов
0 голосов
2 ответов
спросил 22 Июнь, 13 от NiTrO (160 баллов)
0 голосов
3 ответов
0 голосов
3 ответов