Ситуация, когда привычный обмен данными между интернет-магазином на платформе Битрикс и 1С внезапно перестает работать, является классической технической задачей. Рассмотрим пошагово, как проанализировать проблему, когда вместо ожидаемых заказов система отдает пустой XML-ответ.
Первое, с чего нужно начать — это синхронизация времени. Если время на сервере, где размещен сайт, и на компьютере с 1С значительно различается, механизмы обмена могут игнорировать заказы, считая их «будущими» или слишком старыми для текущей сессии.
Для проверки корректности настроек часового пояса на сервере Битрикса выполните следующие действия:
echo (date("l dS of F Y H:i:s Z"));
В результате вы увидите текущую дату, время и смещение в секундах (например, 10800 соответствует GMT +03:00). Убедитесь, что это значение совпадает с тем, что установлено в настройках php.ini и на сервере 1С. Если есть расхождения — исправьте их через настройки хостинга или администратора сервера.
Если сервер отдает «только шапку» (пустой XML), значит, скрипт обмена не находит данных, соответствующих заданным критериям фильтрации. Давайте выясним, что именно попадает в обмен.
Воспользуйтесь ссылкой на скрипт обмена (обычно она прописана в настройках узла обмена в 1С). Перейдите по ней в браузере (потребуется авторизация). Если вы видите корректный XML-структурный заголовок, но нет узлов Order, значит проблема в логике выборки.
Если стандартные проверки не выявили очевидных причин, необходимо проанализировать логи. Поскольку проблема может быть скрыта в ошибках исполнения скрипта, ищите их в директории /logs/ на хостинге.
.log, содержащие в названии error.Рассмотрим распространенную ситуацию: заказы создаются, но не выгружаются из-за особенностей интеграции.
CRM и сделки: Если ваш магазин использует модуль CRM, заказы могут формироваться не как стандартные заказы интернет-магазина, а как сделки. Убедитесь, что в настройках модуля обмена 1С выбраны именно те направления или типы сделок, в которые попадают ваши заказы.
Таблицы регистрации изменений: В Битриксе существует механизм регистрации изменений. Если заказ по какой-то причине не попал в таблицу очереди обмена, 1С о нем не узнает. Попробуйте внести изменения в «проблемный» заказ (например, поменять статус и вернуть обратно). Это действие «дернет» событие, которое принудительно добавит заказ в очередь на выгрузку.
Часто изменения в настройках обмена не вступают в силу из-за кэширования. Проведите принудительную очистку кэша:
Выполнение этих шагов позволит локализовать проблему: выяснить, блокирует ли заказы фильтр в 1С, «видит» ли их сам Битрикс или на сервере возникают программные ошибки, препятствующие формированию XML-файла.