Не выгружаются картинки из 1С - разбор причин
Обмен прошёл, товары обновились, а изображений у них нет. Разбираем причины в порядке убывания частоты.
С чего начать
Смотрим, доехали ли файлы картинок до сервера:
# каталог обмена: рядом с файлом каталога должны лежать сами изображенияls -lh /home/bitrix/www/upload/1c_catalog/ | headfind /home/bitrix/www/upload/1c_catalog/ -type f \ \( -name '*.jpg' -o -name '*.png' \) | wc -lНоль файлов означает, что разбирать нужно выгрузку, а не импорт. Сайт создаёт товар без картинки молча: отсутствие файла ошибкой обмена не считается.
Проверяем, что записалось у товаров после импорта:
$res = CIBlockElement::GetList([], ['IBLOCK_ID' => 5], false, ['nTopCount' => 10], ['ID', 'NAME', 'DETAIL_PICTURE', 'PROPERTY_MORE_PHOTO']);while ($row = $res->GetNext()) { printf("%-30s детальная=%-6s доп=%s\n", mb_substr($row['NAME'], 0, 30), $row['DETAIL_PICTURE'] ?: '-', $row['PROPERTY_MORE_PHOTO_VALUE'] ?: '-');}Заполненная детальная картинка при пустых дополнительных указывает на отсутствие множественного свойства. Пустые оба поля - на то, что до импорта картинок дело не дошло.
Смотрим права и место на диске:
ls -ld /home/bitrix/www/upload/ /home/bitrix/www/upload/iblock/df -h /home/bitrix # свободное место под изображенияtail -20 /home/bitrix/www/upload/1c_exchange.log 2>/dev/nullphp -i | grep -E 'upload_max_filesize|post_max_size|max_execution_time'# картинки приезжают частями: предел размера запроса важнее размера файлаПапка загрузок должна принадлежать пользователю веб-сервера. Обмен идёт от него же, и отказ в записи выглядит как молчаливое отсутствие картинок.
Причины
-
Выгрузка файлов отключена в учётной системе примерно 35% случаев
ПризнакТовары обновляются, папка обмена содержит только файлы каталога без изображений.
ПроверкаСчитаем файлы изображений в папке обмена сразу после выгрузки.
Что делатьВключаем выгрузку присоединённых файлов на стороне учётной системы: настройки сайта на это не влияют.
-
В инфоблоке нет свойства для дополнительных картинок примерно 25% случаев
ПризнакДетальная картинка приезжает, все остальные изображения теряются.
ПроверкаИщем множественное свойство типа «файл» с кодом, известным обмену.
Что делатьЗаводим свойство и повторяем обмен: ранее отброшенные картинки приедут заново.
-
Импорт обрывается на больших файлах примерно 20% случаев
ПризнакЧасть товаров с картинками, часть без, граница проходит по весу изображений.
ПроверкаСмотрим ограничения на размер загрузки и время выполнения, а также журнал обмена.
Что делатьУменьшаем изображения на стороне выгрузки и поднимаем пределы загрузки в настройках PHP.
-
Нет прав на запись в папку загрузок примерно 12% случаев
ПризнакКартинки в папке обмена есть, у товаров их нет, журнал обмена пуст.
ПроверкаПроверяем владельца папки загрузок и свободное место на разделе.
Что делатьПриводим владельца файлов сайта к пользователю веб-сервера и освобождаем место на диске.
-
Картинки разделов не выгружаются вовсе примерно 8% случаев
ПризнакУ товаров изображения есть, у разделов каталога - нет ни одного.
ПроверкаСмотрим, попадают ли изображения групп номенклатуры в файл обмена.
Что делатьВключаем выгрузку изображений групп в учётной системе либо заполняем картинки разделов вручную.
Частые вопросы
Повторный обмен вернёт потерянные картинки?
Да, если файлы приезжают заново и свойство уже заведено. Товары при этом обновятся полностью, а не только изображениями.
Почему картинки приезжают только у части товаров?
Чаще всего импорт обрывается на тяжёлых файлах и продолжает со следующего шага. Граница между товарами с картинками и без совпадает с моментом обрыва.
Можно ли перенести картинки отдельно от каталога?
Штатного отдельного режима нет: изображения едут вместе с каталогом. Разово их загружают своим скриптом по внешним кодам товаров.
Как понять, что дело в правах, а не в выгрузке?
По наличию файлов в папке обмена: если они там есть, а у товаров картинок нет, разбирают права и место на диске.
Смежное
- Картинки при обмене - оглавление подтемы
- Картинки товара при обмене: детальная, дополнительные, разделы - как это работает штатно
- Не выгружаются товары из 1С - когда не приезжает и сам каталог
- Обмен с 1С и HTTP - устройство обмена целиком
- Картинки при обмене изнутри - устройство привязки файла к элементу и свойству