Иногда возникает задача как то выделить коллекции, отдельно их разобрать или даже выгрузить в файл. По умолчанию явного функционала для этого нет. Но можно опираться на штатный функционал от 1С-Битрикс - экспорт в Excel файл.
Чтобы выделить разделы-коллекции от остальных разделов, достаточно создать пользовательское свойство для разделов, например, с названием Раздел-коллекция? и с кодом UF_IS_COLLECTONS.
Данное свойство будет доступен у разделов и при создании коллекций можно вручную отмечать разделы как коллекция и сортировать и экспортировать разделы в Excel файл:
Вернет разделы-коллекции:
Если необходимо автоматизировать процесс пометки разделов как коллекции, то можно воспользоваться обработчиками событий модуля:
//обработчик события: после редактирования коллекции AddEventHandler("scoder.collections", "OnAfterScoderCollectionEdit", "OnAfterScoderCollectionEditHandler"); function OnAfterScoderCollectionEditHandler($arFields) { //Помечаем раздел, что он является "Товарной коллекцией" $ar_load = array( "UF_IS_COLLECTONS" => 1 ); if ($arFields["IBLOCK_ID"]>0 && $arFields["SECTION_ID"]>0) $GLOBALS["USER_FIELD_MANAGER"]->Update("IBLOCK_".$arFields["IBLOCK_ID"]."_SECTION", $arFields["SECTION_ID"], $ar_load); } //обработчик события: после удаления коллекции AddEventHandler("scoder.collections", "OnAfterScoderCollectionDelete", "OnAfterScoderCollectionDeleteHandler"); function OnAfterScoderCollectionDeleteHandler($section_id) { //Помечаем раздел, что он не является "Товарной коллекцией" if ($section_id>0) { $ar_load = Array( "UF_IS_COLLECTONS" => 0, ); $arFilter = array('ID' => $section_id); $rsSect = CIBlockSection::GetList(array('left_margin' => 'asc'),$arFilter,false,array("ID","IBLOCK_ID"),array("nTopCount" => 1)); if ($arFields = $rsSect->GetNext()) { $GLOBALS["USER_FIELD_MANAGER"]->Update("IBLOCK_". $arFields["IBLOCK_ID"] ."_SECTION", $section_id, $ar_load); } } }