Наследование пользовательских свойств в подразделах
Чтобы не заполнять все поля у каждого раздела, часть можно "наследовать", сделав пару доп. запросов в компоненте.
$arSection = []; // Массив с параметрами текущего раздела // Если свойство не заполнено у текущего раздела, поищем у родителей if (!$arSection['UF_PROP'] && $arSection['IBLOCK_SECTION_ID'] > 0) { $sectionId = $arSection['IBLOCK_SECTION_ID']; // Поиск начнём сразу с родительского раздела $entity = \Bitrix\Iblock\Model\Section::compileEntityByIblock($arSection["IBLOCK_ID"]); while($sectionId) { // Перебираем все родительские разделы if ($arParentSection = $entity::getList([ 'filter' => ['IBLOCK_ID' => $arSection["IBLOCK_ID"], 'ID' => $sectionId], 'select' => ['ID', 'IBLOCK_ID', 'IBLOCK_SECTION_ID', 'UF_PROP'] ])->fetch()) { if ($arParentSection['UF_MAIN_PROPS']) { // Нужное свойство заполнено у родителя, сохраняем и выходим $arSection['UF_MAIN_PROPS'] = $arParentSection['UF_PROP']; break; } } $sectionId = $arParentSection['IBLOCK_SECTION_ID']; } }
Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.