Выгрузка на сайт завершилась с ошибками. import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.

А началось все довольно безобидно. Позвонил старый клиент у которого уже года 2-3 работает магазин в связке с 1С и пожаловался что обмен перестал работать. Полез я к нему в 1С и вижу, что обмен действительно падает причем с разными ошибками и на разных файлах.

Первое что сделали - перешли на более мощный тариф хостинга. Половина зоопарка ошибок исчезла. Однако ошибка
Выгрузка на сайт завершилась с ошибками.
import.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Неверный тип файла, либо превышен максимальный размер файла
осталась и уходить не собиралась.

Пробовали выгружать и на тиражный магазин и на VDS на который другая 1С прекрасно все грузит - везде одна и та же ошибка.

В итоге обратились в поддержку Битрикса. Судя по оперативности и точности ответов поддержка знает о проблеме . А суть ответов была в следующем: поддержка вставила отладочную печать и попросила сделать выгрузку.
По результатам выгрузки в консоли 1С появилась отладочная информация вида
Array
(
    [name] => 04f5da44f3fe11e297cb002215a2039c_04f5da47f3fe11e297cb002215a2039c.jpg
    [size] => 3789
    [tmp_name] => /home/i/mysite/public_html/upload/tmp/1ec/04f5da44f3fe11e297cb002215a2039c
_04f5da47f3fe11e297cb002215a2039c.jpg
    [type] => application/octet-stream
    [COPY_FILE] => Y
    [description] => 
    [copy] => 1
    [MODULE_ID] => iblock
)
Отсюда можно видеть, что одна из картинок имеет mimetype: application/octet-stream (т.е. двоичные данные вместо структурированных).
Далее по названию картинки вычисляем (например, можно в import.xml поискать по названию картинки) нехороший товар, пересохраняем его картинку в любом графическом редакторе и все работает.


Кому интересно - вся отладка заключается в изменении файла /bitrix/modules/main/classes/general/file.php:
после каждого вызова
return GetMessage("FILE_BAD_TYPE");
нужно вставить
print_r($arFile);


Попросил поддержку исправить этот баг в импорте, но мы то с вами знаем сколько такие неважные исправления могут делаться. Поэтому я просто оставлю это сообщение здесь. Возможно кому-то поможет сэкономить время.

Комментарии (3)

...
  • Наталья
  • 05.03.2014 17:50:24
Спасибо, помогло! Только вставлять строчку нужно не перед, а после
return GetMessage("FILE_BAD_TYPE");
...
  • Плотников Артём
  • 12.08.2014 10:39:26
Получал подобную ошибку, воспользовался предложенным способом отладки. В моём случае одно из изображений товара было нулевого размера.
...
  • Зеленкин Максим
  • 26.06.2015 16:40:11
Спасибо, помогло