Quad.Wiki

Ошибка: "Нельзя перенести раздел внутрь себя"

Проблема

При импорте из файла XML (или программой QuadSync) сайт выдает ошибку "Нельзя перенести раздел внутрь себя"

Решение

Ошибка скорее всего появилась из-за перемещения каких-то групп товаров внутри программы, когда разделы, которые раньше были родительскими, переместились ниже и стали дочерними. Или же при импорте категорий из файла что-то загрузилось не так.

Если не получается вспомнить какие изменения вы делали, то можно изменить исходники сайта, чтобы он стал отображать более детально ошибку. При описанных ниже изменениях сломать на сайте что-то очень сложно, но, в любом случае, мы не отвечаем за то, что сайт ваш поломается или случится еще что-нибудь (если боитесь сами, то можете написать в службу поддержки битрикса, пусть они вам скажут на какой категории появляется ошибка, ответа вы не получите, но, возможно, они через пару лет сделают нормальный информативный вывод ошибок). Можете так же сделать бекап сайта, перед тем как менять исходный код. Для включения в вывод ошибки информации о категории нужно сделать следующее:

зайдите в админку сайта в раздел Контент / Структура сайта / Файлы и папки

 

перейдите в папку bitrix\modules\iblock\classes\general\ найдите файл iblocksection.php и откройте его для редактирования

скопируйте текст в блокнот и найдите в нем слово IBLOCK_BAD_BLOCK_SECTION_RECURSE, оно будет примерно на 1840-ой строке (со временем позиция эта может меняться). Рекомендуем вместо стандартного блокнота установить программу Notepad++ - в ней есть нумерация строк и работать более комфортно, чем в обычном блокноте.

 

замените всю эту строку

$this->LAST_ERROR .= GetMessage("IBLOCK_BAD_BLOCK_SECTION_RECURSE")."<br>";

на такую:

$this->LAST_ERROR .= GetMessage("IBLOCK_BAD_BLOCK_SECTION_RECURSE")."<br/> CODE: ".$arFields["CODE"]."<br/> SECTION_CODE: ".$arFields["SECTION_CODE"];

Теперь сделайте импорт XML или заново запустите обновление в QuadSync - в результате в сообщении ошибки будет уже указан символьный код раздела, с которым есть проблемы, и по этому символьному коду нужно уже разбираться, что не так с категорией в программе.