1C-Битрикс: Управление сайтом

CIBlockElement::SetPropertyValuesEx(6.0.0)

CIBlockElement::SetPropertyValuesEx(
int ELEMENT_ID,
int IBLOCK_ID,
array PROPERTY_VALUES,
array FLAGS = array()
);
Функция сохраняет значения всех свойств элемента информационного блока. В отличие от SetPropertyValues может не содержать полный набор значений. Значения свойств, неуказанных в массиве PROPERTY_VALUES, будут сохранены. Эта функция более экономна в количестве запросов к БД.

Параметры функции

ПараметрОписание
ELEMENT_ID Код элемента, значения свойств которого необходимо установить.
IBLOCK_ID Код информационного блока. Может быть не указан. В этом случае будет прочитан из базы данных по коду элемента.
PROPERTY_VALUES Массив значений свойств, в котором коду свойства ставится в соответствие значение свойства.
Должен быть вида Array("код свойства1"=>"значения свойства1", ....), где "код свойства" - числовой или мнемонический код свойства, "значения свойства" - одно или массив всех значений свойства (множественное).
FLAGS Необязательный параметр предоставляет информацию для оптимизации выполнения. Может содержать следующие ключи:
  • NewElement - можно указать если заведомо известно, что значений свойств у данного элемента нет. Экономит один запрос к БД.
  • DoNotValidateLists - для свойств типа "список" отключает проверку наличия значений в метаданных свойства.

См. также

Примеры использования

<?
$ELEMENT_ID = 18; // код элемента
$PROPERTY_CODE = "PROP1"; // код свойства
$PROPERTY_VALUE = "Синий"; // значение свойства

// Установим новое значение для данного свойства данного элемента
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, false, array($PROPERTY_CODE => $PROPERTY_VALUE));

?>

Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
0
Андрей Рыжкин
Установка множественного свойства типа "строка" с описанием:
Код
$PROPERTY_VALUE = array(
   'n0'=>array(
      'VALUE'=>'Москва', 'DESCRIPTION'=>'Лот'
   ),
   'n1'=>array(
      'VALUE'=>'Воронеж', 'DESCRIPTION'=>'Не лот'
   ),
   'n2'=>array(
      'VALUE'=>'Саратов', 'DESCRIPTION'=>'Лот'
   ),
   'n3'=>array(
      'VALUE'=>'Челябинкс', 'DESCRIPTION'=>'Лот'
   )
);
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, array($PROPERTY_CODE => $PROPERTY_VALUE));
0
Эльдар Рахимбердин
Для множественного свойства типа список с флажками сработал такой вариант

Код
$PROPERTY_VALUE[] = array('VALUE' => 154);
$PROPERTY_VALUE[] = array('VALUE' => 156);
$PROPERTY_VALUE[] = array('VALUE' => 157);

Т.е. VALUE должно равняться ID значения списка.
1
colonel
Для изменения не множественного свойства типа HTML/Text:
Код
$el_id = 125;
$iblock_id = 45;
$prop[$prop_code] = array('VALUE'=>array('TYPE'=>'HTML', 'TEXT'=>$prop_value));
CIBlockElement::SetPropertyValuesEx($el_id, $iblock_id, $prop);
0
Евгений Кобзарь
Пример добавления значений множественного свойства типа файл

Код
CModule::IncludeModule("iblock");

$arFile = array(
0 => array("VALUE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/01.gif"),"DESCRIPTION"=>""),
1 => array("VALUE" => CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"]."/images/help.gif"),"DESCRIPTION"=>"")
);

CIBlockElement::SetPropertyValuesEx([I]element_id[/I], [I]iblock_id[/I], array("[I]property_code[/I]" => $arFile));
0
Осипов Денис
При добавлении множества
Цитата

$PROPERTY_VALUE = array(
   'n0'=>array(
'VALUE'=>'Москва', 'DESCRIPTION'=>'Лот'
   ),
ключ VALUE должен быть обязательно первым(нулевым)

Так работать не будет:
Цитата

$PROPERTY_VALUE = array(
   'n0'=>array(
'DESCRIPTION'=>'Лот','VALUE'=>'Москва'
   ),
© «Битрикс», 2001-2012, «1C-Битрикс», 2012