Как передаются картинки из 1С на сайт
В стандартном обмене 1С и 1С-Битрикс изображения обычно передаются через CommerceML. В актуальной схеме Битрикс получает в import.xml элемент <Картинка>, где указан относительный путь к отдельному файлу изображения, обычно в папке import_files. Передача картинок через base64 встречается только в нестандартных реализациях конкретных модулей обмена.
1С формирует пакет обмена: import.xml и папку import_files с изображениями. В XML указывается путь к каждой картинке. Битрикс распаковывает данные обмена, находит файл по этому пути и прикрепляет его к нужному полю товара.
Если путь в XML не совпадает с реальным расположением файла в import_files, изображение не привяжется к товару, даже если сама картинка физически есть в выгрузке.
Основные причины отсутствия картинок
- Картинки не прикреплены к товару в 1С
Самая банальная причина: в карточке товара в 1С нет прикреплённых файлов изображений. Кто-то занёс товар без фото, или фотографии прикреплены к другому объекту (например, к характеристике, а не к самой номенклатуре).
- В настройках обмена отключена передача изображений
В «Обмен с сайтом» в 1С есть отдельные флаги по разделам данных. Флаг «Передавать изображения» может быть снят — намеренно (чтобы ускорить обмен) или случайно.
- Картинки относятся к торговым предложениям или дополнительным фото
Для изображений SKU, характеристик и дополнительных фотографий могут использоваться отдельные настройки выгрузки и отдельные поля Битрикс: DETAIL_PICTURE, PREVIEW_PICTURE или свойство дополнительных фотографий. Если сопоставление не настроено, основная карточка товара может выгрузиться, а нужные картинки — нет.
- Файлы не загружаются из-за ограничений сервера.
Если каталог большой, пакет с картинками может весить много. При штатном обмене файлы могут передаваться частями, поэтому важно смотреть не универсальные цифры в php.ini, а размер пакета, который сервер отдаёт на этапе init, HTTP-ответы на запросы mode=file, свободное место на диске и ошибки в логах веб-сервера/PHP. Если передача обрывается, изображения загрузятся частично или не загрузятся совсем.
- Битрикс не находит изображения по указанному пути
После распаковки данных обмена Битрикс ищет картинки по путям, которые указаны в теге
<Картинка>. Если структура папок изменилась, путь отличается хотя бы на один уровень или в имени файла есть ошибка, изображение не будет найдено и не попадёт в нужное поле карточки товара. - Нет прав на запись в нужные папки
Битрикс должен сохранить изображения на сервере. Если у каталога upload, upload/1c_catalog, временной папки обмена или вложенных папок import_files неправильные права доступа, файлы могут не записываться. В итоге обмен проходит, но картинки физически не сохраняются.
Что проверить в первую очередь
Проверьте наличие изображений прямо в пакете обмена: найдите у конкретного товара тег <Картинка> в import.xml и убедитесь, что указанный файл есть в import_files. Сравните путь в XML с фактическим расположением файла. Затем проверьте, передавалась ли полная выгрузка или только изменения: при обмене по изменениям обычно уходят только новые или изменённые картинки. На сервере проверьте ответ init, запросы mode=file, HTTP-коды, свободное место на диске, целостность загруженного файла и логи веб-сервера/PHP. Проверьте права на upload/1c_catalog, временный каталог обмена и всё дерево upload.
Если используется нестандартная передача изображений через base64, проверяйте memory_limit и логи обработки именно для этого модуля обмена. Для штатной схемы основной ориентир — файл из import_files и путь из тега <Картинка>.
Отдельно проверьте, в какое поле должна попасть картинка: DETAIL_PICTURE, PREVIEW_PICTURE или свойство дополнительных фотографий. Для SKU и характеристик проверьте настройки выгрузки картинок предложений и сопоставление изображений характеристикам.
Когда лучше подключить специалиста
Если все базовые проверки пройдены, а картинки всё равно не появляются — нужно смотреть детальные логи обмена Битрикс, ответы сервера на этапах init и mode=file, результат полной или принудительной выгрузки картинок и привязку файлов к DETAIL_PICTURE, PREVIEW_PICTURE или свойству дополнительных фото. Причина может быть в нестандартном модуле обмена, конфликте с CDN или нетиповой структуре каталога.
Студия «Правильные сайты» решает подобные задачи в рамках технической поддержки. Напишите нам — разберёмся с причиной и настроим корректную передачу изображений.
- Проверим пакет обмена и пути к файлам
- Разберём логи 1С-Битрикс и сервера
- Настроим передачу картинок товаров и SKU
- Поможем защитить каталог от повторения ошибки
Оставьте заявку, и мы проверим обмен изображениями на вашем сайте.
