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

Изменение PREVIEW_PICTURE

00 голосов
6
Доброго дня, уважаемые коллеги.
Пытаюсь изменить свойство PREVIEW_PICTURE у элемента. Действую следующим образом:

Код
$el = new CIBlockElement;

$arLoadProductArray = Array(
  "PREVIEW_PICTURE" => 5111,
  );

$res = $el->Update($idd, $arLoadProductArray);  


Результат выполнения метода Update равен 1. Однако,когда я просматриваю свойства элемента при помощи:

Код
$arIBlockElement = GetIBlockElement($idd);
print_r($arIBlockElement);


то вижу, что апдейта не было.

Что я делаю не так?

Спасибо.
спросил 09 Сен, 13 от naill (140 баллов)

6 Ответы

00 голосов
Давайте начнем с того, что вы пытаетесь сделать?

Потом еще раз (если уже смотрели, конечно) посмотрите документацию по вашему вопросу, посмотрите как в примере обновляется DETAIL_PICTURE.

Останутся вопросы, уточните свой вопрос. ;)
ответил 09 Сен, 13 от Almarea (3,760 баллов)
00 голосов
Посмотрите что после апдейта содержится в $el->LAST_ERROR:
Код
echo $el->LAST_ERROR;
ответил 04 Дек, 13 от Arn4 (2,140 баллов)
00 голосов
Возможно $idd у вас не правильный.
ответил 17 Март, 14 от Runnar (1,000 баллов)
00 голосов
Дмитрий, я пытаюсь изменить изображение товара. Точно такой же код у меня успешно меняет DETAIL_TEXT, а с изображением вот не получается.
Да, я обратил внимание, что в приведенном Вами примере для изменения передается собственно массив, но когда я смотрю на значение свойства PREVIEW_PICTURE, то вижу, что оно является целочисленным. Собственно, я попробовал использовать

Код
$arLoadProductArray = Array(
"PREVIEW_PICTURE" => CFile::GetFileArray(5111),
);


Но ситуация осталась прежней. Значение PREVIEW_PICTURE не меняется.

Антон, в LAST_ERROR у меня пусто ))
ответил 08 Июль, 14 от naill (140 баллов)
00 голосов
Цитата
Игорь Шапошников пишет:
но когда я смотрю на значение свойства PREVIEW_PICTURE, то вижу, что оно является целочисленным.

Потому что в поле хранится идентификатор файла, который описывается в другой таблице (b_file вроде).
Если у вас есть идентификатор файла, то используйте CFile::GetById() вместо GetFileArray().
ответил 08 Ноя, 14 от Almarea (3,760 баллов)
00 голосов
Дмитрий, я именно так и делал изначально. ID файла я знаю, и пытался его просто присвоить напрямую -

$arLoadProductArray = Array(
"PREVIEW_PICTURE" => 5111,
);

А после апдейта все равно вижу ID старого файла. И при этом результат выполнения операции апдейта - true. В LAST_ERROR ничего нет. Кэш сайта принудительно сбрасываю. И ничего.
Что-то я уже ничего не понимаю.
Значит, видимо, ошибка совсем простая, просто я чего-то не вижу...
ответил 06 Март, 15 от naill (140 баллов)

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

0 голосов
1 ответ
спросил 09 Фев, 14 от Gelahed (180 баллов)
0 голосов
5 ответов
спросил 02 Фев, 14 от guk (360 баллов)
0 голосов
3 ответов
спросил 17 Авг, 13 от Gelahed (180 баллов)
0 голосов
1 ответ
0 голосов
8 ответов
спросил 30 Май, 13 от coher (280 баллов)