Навскидку:
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 вновь созданного элемента.