//68 - id свойства;
//FILES - символьный код множественного свойства типа файл;
//2033 - id значения свойства;
$ELEMENT_ID = 392;
$arFile["MODULE_ID"] = "iblock";
$arFile["del"] = "Y";
$PROPERTY_VALUE["68"]["2033"] = $arFile;
CIBlockElement::SetPropertyValueCode($ELEMENT_ID, "FILES", Array ("2033" => Array("VALUE"=>$arFile) ) );
но пример какой-то неживой - не могу адаптировать для себя. Как ни делаю, все не работает. Да и непонятно, зачем там предпоследняя строчка, если $PROPERTY_VALUE нигде не используется.
Помогите мне написать код удаления файла. Вот входные данные
Код
// 'adfiles' - символьный код множественного свойства типа файл в инфоблоке
// 12 - ID этого же свойства
// $elemid - в этой переменной уже хранится ID конкретного элемента инфоблока, который редактируем
// $fileid - в этой переменной уже хранится ID конкретного файла, который надо удалить
По моему надо брать не id файла, а id значения свойства:
Код
// 'adfiles' - символьный код множественного свойства типа файл в инфоблоке
// $elemid - в этой переменной уже хранится ID конкретного элемента инфоблока, который редактируем
// $prop_id- тут нужно id значения свойства (т.е. [PROPERTY_VALUE_ID]), а не id файла
$arFile["MODULE_ID"] = "iblock";
$arFile["del"] = "Y";
CModule::IncludeModule('iblock');
CIBlockElement::SetPropertyValueCode( $elemid, "adfiles", Array ($prop_id => Array("VALUE"=>$arFile)));
Вот тут и хранится id свойства, а $myelem['PROPERTIES']['adfiles']['VALUE'] -- это id файла.
Просто подмена понятий происходит, Вы хотите удалить ФАЙЛ, и Вам логично кажется указать его id. А конструкция удаляет СВОЙСТВО, а файл удалится автоматически.