Если вам нужно удалить одно из значений множественного свойства, например, когда детальная картинка дублирует картинку галереи
$res = CIBlockElement::GetList([], ['IBLOCK_ID' => IBLOCK_ID], false, false, ['ID', 'IBLOCK_ID', 'NAME', 'DETAIL_PICTURE', 'PROPERTY_MORE_PHOTO']);
while ($row = $res->Fetch()){
if ($row['DETAIL_PICTURE']) {
$detail = CFile::GetFileArray($row['DETAIL_PICTURE']);
if ($row['PROPERTY_MORE_PHOTO_VALUE']) {
$more = CFile::GetFileArray($row['PROPERTY_MORE_PHOTO_VALUE']);
if ($detail['FILE_NAME'] == $more['FILE_NAME']) {
CIBlockElement::SetPropertyValueCode($row['ID'], "MORE_PHOTO", [$row['PROPERTY_MORE_PHOTO_VALUE_ID'] => array("VALUE" => ["del" => "Y"])]);
}
}
}
}
Здесь идет сравнение по имени файла между детальной картинкой и значением свойства.
А вот эта строка
CIBlockElement::SetPropertyValueCode($row['ID'], "MORE_PHOTO", [$row['PROPERTY_MORE_PHOTO_VALUE_ID'] => array("VALUE" => ["del" => "Y"])]);
именно удаляет свойство, при этом НЕ удаляя сам файл с сервера!
Обратите внимание, что PROPERTY_MORE_PHOTO_VALUE_ID - это именно ID значения свойства, а не ID файла!
Для удобства поиска: удалить один из файлов значений множественного свойства, удалить одну из картинок множественного свойства, удалить одну из картинок галереи
Больше полезных материалов в нашем Telegram канале. Вступайте и будем на связи! https://t.me/bf_conversion