@faragly

Как добавить элемент инфоблока с ID файла в DETAIL_PICTURE?

Здравствуйте! При добавлении элемента через CIBlockElement::Add() ругается если задать в DETAIL_PICTURE id изображения или CFile::GetFileArray($id);

В первом и во втором случае выдает "Обязательное поле "Детальная картинка" не заполнено.". Как добавить правильно?
  • Вопрос задан
  • 3220 просмотров
Решения вопроса 1
kompi
@kompi
nullstack devoops
Навскидку:
CFile::MakeFileArray($id);
Работает же. Не поленился и проверил:
$dbElement = CIBlockElement::GetList(array('ID' => 'DESC'), array('IBLOCK_ID' => 23));
while($aElem = $dbElement->Fetch()) {
  var_dump($aElem);
};
$dbElem = new CIBlockElement;
var_dump($dbElem->Add(
    array(
        "NAME" => 'Test2',
        "IBLOCK_ID" => 23,
        'ACTIVE' => 'Y',
        'PREVIEW_TEXT' => 'текст для списка элементов',
        //'DETAIL_PICTURE' => CFile::MakeFileArray(545)
    )
));
var_dump($dbElem->Add(
    array(
        "NAME" => 'Test3',
        "IBLOCK_ID" => 23,
        'ACTIVE' => 'Y',
        'PREVIEW_TEXT' => 'текст для списка элементов',
        'DETAIL_PICTURE' => CFile::MakeFileArray(545)
    )
));

Где 23 - чистый инфоблок. Детальная картинка обязательно. Создан вручную 1 элемент с детальной картинкой. Из элемента взят идентификатор картинки - 545.
Пробуем без картинки и с ней. Соответственно ловим false в первом случае и id вновь созданного элемента.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
1. Для начала снимите соответствующую галочку в настройках ИБ и проверьте снова (что бы исключить глюки ядра).
2. Сделайте пустой файл (без подключения шаблона сайта) в котором будет только CIBlockElement::Add с добавлением картинки, картинка пускай лежит в корне сайта с правильными правами файловой системы (для верности права на чтение пусть будут у всех)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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