Евгений Жуков пишет:
Оказалось, правда, извините, что ввел заблуждение. Спасибо за наводку, я подумал, что администратор знает, что говорит, поэтому подумал - а что могло бы удалять, если удаляться не должно. Оказалось, меня подвела ошибка в учебном курсе Битрикса (Пример работы с пользовательскими свойствами):
Я использовал этот пример для создания галереи. Дело в том, что там зарегистрирован обработчик OnBeforeIBlockElementDelete. В нем в частности написано следующее:
Согласно документации к апи ():
CIBlockElement::GetProperty(
int iblock_id,
int element_id,
array arOrder = Array(),
array arFilter = Array()
);
Т.е. третий параметр - это сортировка, а в учебном курсе третьим аргументом передали фильтр, вместо четвертого. Через это удалялись ВСЕ связанные элементы. Досадно. Нужно поправить учебный курс, к кому обратиться?)
| Цитата |
|---|
| Если Вы используете для связи свойство типа Привязка к элементам или производные от него, то при удалении записи в одном инфоблоке записи во втором не удалятся. |
Я использовал этот пример для создания галереи. Дело в том, что там зарегистрирован обработчик OnBeforeIBlockElementDelete. В нем в частности написано следующее:
| Код |
|---|
$rsPropValues = CIBlockElement::GetProperty($arElement["IBLOCK_ID"], $arElement["ID"], array( "EMPTY" => "N", "ID" => $arProperty["ID"], )); |
Согласно документации к апи ():
CIBlockElement::GetProperty(
int iblock_id,
int element_id,
array arOrder = Array(),
array arFilter = Array()
);
Т.е. третий параметр - это сортировка, а в учебном курсе третьим аргументом передали фильтр, вместо четвертого. Через это удалялись ВСЕ связанные элементы. Досадно. Нужно поправить учебный курс, к кому обратиться?)