Многие владельцы сайтов, на которых осуществлён обмен между 1С и магазином, сталкивались с ошибками связанные с таблицей b_xml_tree. Ошибки у кодов могут быть разными, но причина всегда одна.
Для начала мы попробуем разобраться с тем, что собой представляет таблица b_xml_tree и какие ошибки можно в ней увидеть.
Что такое таблица b_xml_tree
Таблица b_xml_tree находится в базе данных и помогает обеспечить обмен сайта с внешними системами (1С и другие ПО, которые используют подобный принцип). Собственно, таблица необходима только для обмена.
И порой, в процессе интегрирования можно увидеть различные ошибки:
MySQL Query Error: create table b_xml_tree_import_1c
Сan't create table 'b_xml_tree' (errno: -1)
и тому подобное.
Основная причина состоит в том, что один процесс обмена наслоился на другой процесс обмена. Соответственно, необходимо сделать всё, чтобы происходил единственный процесс обмена, а не несколько.
Что предпринять?
Вы можете попытаться решить проблему самостоятельно или написать в техническую поддержку. Чаще всего ответ от техподдержки выглядит в виде алгоритма необходимых действий:
- Поставьте на компьютер, с которого происходит выгрузка из 1С, прокси-сервис fiddler.
- Откройте сервер и включите логирование трафика по https - Tools > Fiddler Options > HTTPS > Decrypt HTTPS traffic option.
- Запустите выгрузку из 1С.
- Все хиты отобразятся в fiddler и необходимо сохранить последнюю сессию в формате saz.
- Приложите этот файл к обращению в службу поддержку.
В ответе техподдержки будет совет проверить наложение обменов и уменьшить их количество.
Так что, в любом случае можно сразу задуматься о такой ситуации и исключить лишние обмены. Процесс решения проблемы зависит от причины.
- Многосайтовость. Если на одной админке больше одного сайта, и в одно время происходит обмен с разными сайтами, то это может привести к поломке таблицы. В этом случае достаточно просто производить обмены на разных сайтах в разное время.
- Настройка 1С. Допустим, вы долго выгружали на сайт только изменения. Потом, по необходимости поменяли формат на полную выгрузку и затем снова поставили значение режима «только изменения». В таблице могло произойти недопонимание и она может производить полную выгрузку в фоновом режиме. Проверьте узел обмена и разделите эти обмены, чтобы в одно время работал только один обмен.
-
Наложение графиков. Иногда бывает так, что график автоматического обмена работает на остатки и цены, но кто-то решил, что необходимо провести полное изменение здесь и сейчас. Система начинает ручную выгрузку, приходит время автоматического изменения и потоки накладываются.
-
Разные 1С. Возможно у вас 1 сайт, но несколько 1С, и вы используете их в зависимости от доступности или ставите им разные задачи. Такое использование также может вызвать наложение потоков.
- Обновление. Иногда, когда движок загружает серьёзные обновления или вы меняете сервер, можно при обмене увидеть такую ошибку:
MySQL Query Error: select ID, ATTRIBUTES from b_xml_tree where (ID = 1) and …
. В этом случае необходимо запустить проверки сайта, и выполнить запросalter database [ИМЯ БАЗЫ ДАННЫХ - default = sitemanager] default character set utf8
.
Иногда таблица разрушается при переносе сайта на новый домен или про каких-то других обстоятельствах, которые трудно понять. Чтобы исправить это необходимо запустить базы данных вашего сайта и исправить ошибки, которые будут обнаружены при проверке.
Если никакая ошибка не обнаружена, то необходимо удалить вручную файлы таблиц из базы данных, предварительно сделав бэкап:
/var/lib/mysql/[ ИМЯ БАЗЫ ДАННЫХ - default = sitemanager]/b_xml_tree_import_1c.ibd
/var/lib/mysql/[ ИМЯ БАЗЫ ДАННЫХ - default = sitemanager]/b_xml_tree.ibd
Вывод
Если вы столкнулись с определёнными проблемами во время обмена сайта с системами 1С или боитесь, что такое может произойти, обращайтесь к специалистам компании «Цифровой Элемент». Мы найдем ошибку и настроим функционал обмена так, чтобы он работал безошибочно.
При обращении в нашу компанию, будьте готовы к тому, что мы запросим доступы от вашего сайта. Какие доступы и с какой целью нам нужны читайте в нашей статье.
Мы оказываем услугу технической поддержки и делаем всё, чтобы таких ситуаций не происходило. А также, помогаем оперативно устранять возникшие ошибки функционала системы.