Обмен 1С с сайтом на Битрикс: где искать ошибки каталога
Обмен 1С с сайтом на 1С-Битрикс обычно ломается не полностью, а частично. Товары создаются, но цены не обновляются. Остатки приходят, но торговые предложения не связаны. В 1С обмен завершён, а на сайте изменений нет. Чтобы не гадать, нужно смотреть логи и понимать, на каком этапе останавливается процесс.
Типовой обмен каталога работает через файлы import.xml, offers.xml и связанные ресурсы. Проблемы часто возникают из-за прав на папки, лимитов PHP, настроек инфоблока, профиля обмена или структуры данных из 1С.
Проверить, доходит ли запрос до сайта
Сначала нужно понять, видит ли сайт обращения от 1С. Обычно обмен идёт через адрес вида /bitrix/admin/1c_exchange.php. Если запросы не доходят, проблема может быть в авторизации, htaccess, nginx, SSL или блокировках.
grep "1c_exchange" /var/log/nginx/access.log | tail
Если в access.log нет запросов, нужно проверять настройки подключения в 1С, домен, логин, пароль и доступность URL.
Права на upload/1c_catalog
Во время обмена Битрикс сохраняет временные файлы. Если веб-сервер не может писать в нужную директорию, импорт может падать или идти неполно.
ls -la upload
ls -la upload/1c_catalog
Если папки нет, она должна создаваться веб-сервером. Если не создаётся — проверить владельца и права.
chown -R www-data:www-data upload
chmod -R ug+rw upload
Пользователь www-data — пример. На конкретном сервере может быть nginx, apache или пользователь хостинга.
Лимиты PHP
Большой каталог может упереться в upload_max_filesize, post_max_size, memory_limit или max_execution_time. В 1С при этом может быть общая ошибка обмена, а реальная причина будет в логах сервера.
php -i | grep upload_max_filesize
php -i | grep post_max_size
php -i | grep memory_limit
php -i | grep max_execution_time
Также нужно проверить лимит тела запроса в nginx:
client_max_body_size 128m;
Файлы import.xml и offers.xml
Если файлы загрузились, нужно посмотреть их наличие и размер. Иногда import.xml приходит, а offers.xml с ценами и остатками нет. Тогда товары есть, но коммерческие данные не обновляются.
find upload/1c_catalog -name "*.xml" -type f -exec ls -lh {} \;
Для быстрой проверки можно открыть начало файла:
head -n 40 upload/1c_catalog/import.xml
head -n 40 upload/1c_catalog/offers.xml
Настройки инфоблока и каталога
В Битрикс нужно проверить, в какой инфоблок загружаются товары, включён ли торговый каталог, как обрабатываются свойства, цены, склады и торговые предложения. Если структура изменилась в 1С, старые настройки могут уже не подходить.
- правильный инфоблок каталога;
- инфоблок торговых предложений, если используются SKU;
- типы цен;
- склады и остатки;
- свойства и их коды;
- правила деактивации отсутствующих товаров.
Цены и остатки
Если товары обновляются, но цены нет, стоит проверить таблицы цен и типы цен. В 1С может приходить другой тип цены, который не связан с нужным типом на сайте.
SELECT ID, NAME
FROM b_catalog_group;
Для остатков нужно проверить, используется ли складской учёт и приходят ли данные по складам. Иногда в 1С выгружаются остатки по складам, а сайт ждёт общий остаток, или наоборот.
Логи Битрикс и сервера
Ошибки обмена часто видны в логах PHP, nginx или в собственных логах, если они включены. На время диагностики можно добавить аккуратное логирование в обработчики событий, если проект их использует.
tail -n 150 /var/log/nginx/error.log
tail -n 150 /var/log/php-fpm/error.log
Если сайт на shared-хостинге, логи могут быть в панели или в директории logs.
Чек-лист диагностики
- Проверить запросы к 1c_exchange.php в access.log.
- Проверить логин и пароль обмена.
- Проверить права на upload и временные папки обмена.
- Проверить лимиты PHP и nginx.
- Проверить наличие import.xml и offers.xml.
- Проверить настройки инфоблока, SKU, цен и складов.
- Проверить, какие товары, цены и остатки реально приходят из 1С.
- Посмотреть error.log и PHP-логи после тестового обмена.
Обмен 1С и Битрикс лучше разбирать по этапам: запрос дошёл, файл загрузился, XML распакован, товары сопоставлены, цены записаны, остатки обновлены. Так проще найти конкретное место сбоя, а не менять все настройки сразу.
Комментарии (0)
Пока нет комментариев. Будьте первым!