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

CIBlockElement::SetPropertyValues - не изменяет поле DESCRIPTION

00 голосов
4
Добрый день, уважаемые.
В админке есть ф-ция сохраняющая значения характеристик товара, у каждой характеристики есть поле описание - В базе поле "DESCRIPTION"

$PROP=array(
'VAL'=>$valprops['VALUE'],
'DESCRIPTION'=>'568989',
'UNITS'=>$valprops['UNIT'],
'VAL_NUM_OT'=>$valprops['VALUE_INT'][0],
'VAL_NUM_DO'=>$valprops['VALUE_INT'][1],
);

foreach($PROP as $cod=>$valcod){
CIBlockElement::SetPropertyValues($idvalprop, IB_SUP_PRODUCT_PROPERTY_VALUE, $valcod, $cod);
}
сохраняет все значения, кроме поля DESCRIPTION, а при редактировании каждого отдельного свойства товара это поле благополучно сохраняется. Причем пробовал и строковые значения поля и текстовые - результат один.
не подскажите что я не так делаю?
спросил 22 Дек, 13 от xis (100 баллов)

4 Ответы

00 голосов
Я правильно понял, что "DESCRIPTION" в вашем случае - это такой символьный код свойства и он у вас почему-то не изменяется?

И вместо такого подхода:
Цитата
myvista myvista пишет:
foreach($PROP as $cod=>$valcod){
CIBlockElement::SetPropertyValues($idvalprop, IB_SUP_PRODUCT_PROPERTY_VALUE, $valcod, $cod);
}


я бы использовал такой:

CIBlockElement::SetPropertyValuesEx($idvalprop, IB_SUP_PRODUCT_PROPERTY_VALUE, $PROP);
ответил 10 Март, 14 от Delp (7,220 баллов)
00 голосов
А у свойства DESCRIPTION тип случайно не HTML/text? Если да, то надо массив передавать с полями TEXT и TYPE. Как то так:
Код

$value = array("TEXT"=>'568989', "TYPE"=>"html");

CIBlockElement::SetPropertyValueCode($ELEMENT_ID, "DESCRIPTION", array("VALUE"=>$value));



ответил 30 Июнь, 14 от Poleolog (1,240 баллов)
00 голосов
В вашем случае массив можно вот так сформировать:
Код
$PROP=array(
'VAL'=>$valprops['VALUE'],
'DESCRIPTION'=> array("VALUE" => array("TEXT" => 'some text', "TYPE" => 'html')),
'UNITS'=>$valprops['UNIT'],
'VAL_NUM_OT'=>$valprops['VALUE_INT'][0],
'VAL_NUM_DO'=>$valprops['VALUE_INT'][1],
); 
ответил 31 Окт, 14 от Poleolog (1,240 баллов)
00 голосов
В настройках информационных блоков есть "Настройка свойства информационного блока", в нем есть checkbox "Выводить поле для описания значения:" - ставишь там галку, сохраняешь.
теперь в редактировании конкретной характеристики товара рядом со значением поля появляется поле "описание" заполняешь его - все нормально сохраняется. заполненное значение появляется в форме редактирования товара. сохраняешь товар, а это поле обнуляется. тип поля varchar(255)
Я попробую сейчас использовать CIBlockElement::SetPropertyValuesEx
ответил 28 Фев, 15 от xis (100 баллов)

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

0 голосов
9 ответов
спросил 12 Май, 13 от Heroe (160 баллов)
0 голосов
2 ответов
0 голосов
1 ответ
спросил 06 Дек, 13 от Asteria (1,840 баллов)
0 голосов
6 ответов
спросил 12 Сен, 13 от Lisica (900 баллов)