Перейти к содержимому

Не выгружаются картинки из 1С - разбор причин

Обмен прошёл, товары обновились, а изображений у них нет. Разбираем причины в порядке убывания частоты.

С чего начать

Смотрим, доехали ли файлы картинок до сервера:

Окно терминала
# каталог обмена: рядом с файлом каталога должны лежать сами изображения
ls -lh /home/bitrix/www/upload/1c_catalog/ | head
find /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/null
php -i | grep -E 'upload_max_filesize|post_max_size|max_execution_time'
# картинки приезжают частями: предел размера запроса важнее размера файла

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

Причины

  1. Выгрузка файлов отключена в учётной системе примерно 35% случаев

    ПризнакТовары обновляются, папка обмена содержит только файлы каталога без изображений.

    ПроверкаСчитаем файлы изображений в папке обмена сразу после выгрузки.

    Что делатьВключаем выгрузку присоединённых файлов на стороне учётной системы: настройки сайта на это не влияют.

  2. В инфоблоке нет свойства для дополнительных картинок примерно 25% случаев

    ПризнакДетальная картинка приезжает, все остальные изображения теряются.

    ПроверкаИщем множественное свойство типа «файл» с кодом, известным обмену.

    Что делатьЗаводим свойство и повторяем обмен: ранее отброшенные картинки приедут заново.

  3. Импорт обрывается на больших файлах примерно 20% случаев

    ПризнакЧасть товаров с картинками, часть без, граница проходит по весу изображений.

    ПроверкаСмотрим ограничения на размер загрузки и время выполнения, а также журнал обмена.

    Что делатьУменьшаем изображения на стороне выгрузки и поднимаем пределы загрузки в настройках PHP.

  4. Нет прав на запись в папку загрузок примерно 12% случаев

    ПризнакКартинки в папке обмена есть, у товаров их нет, журнал обмена пуст.

    ПроверкаПроверяем владельца папки загрузок и свободное место на разделе.

    Что делатьПриводим владельца файлов сайта к пользователю веб-сервера и освобождаем место на диске.

  5. Картинки разделов не выгружаются вовсе примерно 8% случаев

    ПризнакУ товаров изображения есть, у разделов каталога - нет ни одного.

    ПроверкаСмотрим, попадают ли изображения групп номенклатуры в файл обмена.

    Что делатьВключаем выгрузку изображений групп в учётной системе либо заполняем картинки разделов вручную.

Частые вопросы

Повторный обмен вернёт потерянные картинки?

Да, если файлы приезжают заново и свойство уже заведено. Товары при этом обновятся полностью, а не только изображениями.

Почему картинки приезжают только у части товаров?

Чаще всего импорт обрывается на тяжёлых файлах и продолжает со следующего шага. Граница между товарами с картинками и без совпадает с моментом обрыва.

Можно ли перенести картинки отдельно от каталога?

Штатного отдельного режима нет: изображения едут вместе с каталогом. Разово их загружают своим скриптом по внешним кодам товаров.

Как понять, что дело в правах, а не в выгрузке?

По наличию файлов в папке обмена: если они там есть, а у товаров картинок нет, разбирают права и место на диске.

Смежное

Первоисточник