medveddev / bxorm

24 stars 10 forks source link

Не устанавливается VALUE у множественного свойства с привязкой к разделу #11

Closed olegmifle closed 3 years ago

olegmifle commented 4 years ago

Например, есть код:

$iblock = \Bitrix\Iblock\Iblock::wakeUp(2);

$element = $iblock->getEntityDataClass()::getByPrimary(1777)>fetchObject();

Есть множественное свойство с привязкой к разделам - SHOPS. Делаю

$element->fillShops();

//Добавится запись в таблицу b_iblock_element_prop_m2, но VALUE будет пустым, заполнится только VALUE_NUM.
$element->addToShop(109);
//тоже самое, если сделать
$element->addToShops(new \Bitrix\Iblock\ORM\PropertyValue(109));
$element->save();

А если сделать, например, так

$iblock = \Bitrix\Iblock\Iblock::wakeUp(1);

$section = \Bitrix\Iblock\SectionTable::getByPrimary(109)->fetchObject();

$element->addToShops($section);
$element->save();

То в VALUE_NUM добавится значение 1.

http://joxi.ru/52aNgqbIEN17lA

Интересно, что получить данные через ORM можно, но в админке они не отображаются. Подозреваю, что и методами старого API их тоже не получить.

medveddev commented 3 years ago

Подобная проблема наблюдалась в инфоблоках 1.0 и множественных свойствах у 2.0, в настоящий момент исправлено. Последний фикс для 2.0 выходит в iblock 21.400.0