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




Как очистить св-во типа файл из 1 записи, который общий для нес-ких записей, но что бы файл не терся для других записей

0 голосов
Как очистить св-во типа файл из 1 записи, который общий для нес-ких записей, но что бы файл не терся для других записей
?
 
$file = CIBlockElement::SetPropertyValueCode($studyplan_id, 'FILE_GRAPHIC', array(
    $ar_file_graphic['PROPERTY_VALUE_ID'] => array('del' => 'Y')));
 
такая штука не срабатывает выдает Файл не найден 
 
пробовал, через update - тоже не получается
 
у кого-нибудь была такая проблема?
спросил 23 Март от аноним

1 Ответ

0 голосов

Свойство привязано к конкретному элементу инфоблока, в любом случае у другого элемента инфоблока файл должен быть другой (даже если загружался и сохранялся один оригинал, ID файлов в разных элементах должно быть разное).

Удаляем, если свойство файл - не множественное:

CModule::IncludeModule('iblock');
$IB = 24;
$ID = 220304;
$CODE = 'ONE_FL';
if ($arProp = CIBlockElement::GetProperty($IB, $ID, 'ID', 'DESC', array('CODE' => $CODE))->fetch()) {
   $XXX = $arProp['PROPERTY_VALUE_ID'];
   CIBlockElement::SetPropertyValueCode($ID, $CODE, array($XXX => array('del' => 'Y')));
}

Если множественное - то примерно так:

CModule::IncludeModule('iblock');
$IB = 24;
$ID = 220304;
$CODE = 'ONE_FL';
while ($arProp = CIBlockElement::GetProperty($IB, $ID, 'ID', 'DESC', array('CODE' => $CODE))->fetch()) {
   $XXX = $arProp['PROPERTY_VALUE_ID'];
   // if ... // может не надо удалять этот файл?
   CIBlockElement::SetPropertyValueCode($ID, $CODE, array($XXX => array('del' => 'Y')));
}
ответил 23 Март от root (21,430 баллов)