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

CIBlockElement::Update

00 голосов
2
Есть 7 свойств элемента
Мне надо изменить 3 из них

Код
         $PROP = array (
            "cat" => $_POST['cat'],
            "name_reg" => $_POST['name_reg'],
            "user" => $USER->GetID()
         );
      
         $domain_data = Array(
              "PROPERTY_VALUES"=> $PROP,
              "ACTIVE"         => "Y",
              "DETAIL_TEXT"    => $_POST['description']
         );


При вызове функции CIBlockElement::Update,

Код
 $domain_object->Update($_POST['id'], $domain_data)


3 свойства обновляются, остальные затираются.

Вопрос.
Это так задумано (надо все свойства посылать на апдейт), или я криво использую эту функцию.

Заранее благодарен.
спросил 19 Март, 14 от aisigylka (100 баллов)

2 Ответы

00 голосов
Сорри

RTFM

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

CIBlockElement::SetPropertyValuesEx
ответил 17 Янв, 15 от Forze (180 баллов)

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

0 голосов
4 ответов
спросил 16 Янв, 14 от Zlob (120 баллов)
0 голосов
0 ответов
спросил 08 Янв, 14 от TukoHDpyC (160 баллов)
0 голосов
3 ответов
спросил 13 Июнь, 13 от Kane (160 баллов)
0 голосов
2 ответов
спросил 03 Апр, 14 от Fatima (120 баллов)
0 голосов
3 ответов
спросил 23 Март, 14 от Naru (200 баллов)