Проблема
При импорте из файла XML (или программой QuadSync) сайт выдает ошибку "Раздел с таким символьным кодом уже существует"
Решение
Ошибка появляется из-за того, что выгружается группа товаров на сайт, у которой задан Символьный код (url) такой же, как у раздела на сайте с таким же символьным кодом, но с другим Внешним кодом. Такая ситуация может быть из-за наличия в вашей базе нескольких категорий с одинаковым названием (не имеет значения, что они в разных ветках) или из-за изменений символьного кода на сайте или в программе, что привело к расхождению с сайтом.
- Определить из-за какой группы товаров проблема
- Исправить у этой группы символьный код
Если у вас не получается "на глаз" найти дублирующуюся категорию, то возможны следующие варианты:
1. Если вы выгружаете товары на сайт ежедневно, то проблема, скорее всего связана с категорий, которая у вас добавилась сегодня или связана с теми изменениями, которые вы делали сегодня на сайте - нужно проверить не дублируется ли эта категория и совпадает ли ее символьный код с тем, который уже есть на сайте. Увидеть дубль можно через Редактор групп - отсортируйте в нем группы по названию и найдите группы, которые добавляли или изменяли сегодня, если есть дубль, то в списке будет подряд идти несколько групп с одинаковым названием.
2. Если не получается найти проблемную категорию, а в сообщении ошибки не указано название группы, или внешний код или символьный код (битрикс на момент подготовки данной статьи не умел показывать эту информацию), то нужно изменить исходники сайта, чтобы он стал отображать более детально ошибку. При описанных ниже изменениях сломать на сайте что-то очень сложно, но, в любом случае, мы не отвечаем за то, что сайт ваш поломается или случится еще что-нибудь (если боитесь сами, то можете написать в службу поддержки битрикса, пусть они вам скажут на какой категории появляется ошибка, ответа вы не получите, но, возможно, они через пару лет сделают нормальный информативный вывод ошибок). Можете так же сделать бекап сайта, перед тем как менять исходный код. Для включения в вывод ошибки информации о категории нужно сделать следующее:
зайдите в админку сайта в раздел Контент / Структура сайта / Файлы и папки
перейдите в папку bitrix\modules\iblock\classes\general\ найдите файл iblocksection.php и откройте его для редактирования
скопируйте текст в блокнот и найдите в нем слово IBLOCK_DUP_SECTION_CODE , оно будет примерно на 1860-ой строке (со временем позиция эта может меняться). Рекомендуем вместо стандартного блокнота установить программу Notepad++ - в ней есть нумерация строк и работать более комфортно, чем в обычном блокноте.
замените всю эту строку
$this->LAST_ERROR .= GetMessage("IBLOCK_DUP_SECTION_CODE")."<br>";
на такую:
$this->LAST_ERROR .= GetMessage("IBLOCK_DUP_SECTION_CODE")."<br/> CODE: ".$arFields["CODE"]."<br/> SECTION_CODE: ".$arFields["SECTION_CODE"];
после этого скопируйте текст обратно в битрикс (или же можно, после того как нашли строку в блокноте, вернуться в админку битрикса и там по номеру перейти к этой строке и внести изменения) и сохраните.
Теперь сделайте импорт XML или заново запустите обновление в QuadSync - в результате в сообщении ошибки будет уже указан символьный код раздела, с которым есть проблемы, например
Ошибка импорта метаданных.Раздел с таким символьным кодом уже существует. CODE: chasy SECTION_CODE:
Из сообщения видно, что символьный код chasy , что намекает на то, что проблемы с группой "Часы". Если по символьному коду непонятно, что за группа - перейдите в админке в каталог товаров и найдите раздел символьному коду
Знаки процента нужны чтобы сделать поиск по частичному совпадению. Вид окна поиска может отличаться в разных шаблонах и версиях битрикс.
3. После того, как нашли, с какой категорией проблема, нужно исправить ее символьный код.
Если у вас и на сайте и в программе категория только одна, и символьный код совпадает и в программе и на сайте, то это значит, что отличается Внешний код. Посмотрите на сайте внешний код раздела (зайти в карточку раздела) и скопируйте его в программу соответствующему разделу
Если же категории дублируются в программе и их нельзя переименовать, то нужно, чтобы в каждой этой категории отличался символьный код. Вы можете в программе в карточке группы, установить для дублирующихся категорий символьный код, например, в виде chasy-1, chasy-2 и т.п.
После изменений сделайте полное обновление.
Похожие материалы