Настройка выгрузки изображений товаров из 1С в 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка выгрузки изображений товаров из 1С в 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка выгрузки изображений товаров из 1С в 1С-Битрикс

Изображения передаются из 1С в Битрикс в составе стандартного обмена CommerceML. В import.xml для каждого товара блок <Картинка> содержит относительный путь к файлу изображения. Файлы передаются отдельно — загружаются на сервер до отправки XML или в том же HTTP-сеансе обмена.

Как работает передача изображений

В протоколе CommerceML изображения выгружаются в два этапа:

  1. Загрузка файлов. Через POST /bitrix/admin/1c_exchange.php?type=catalog&mode=file 1С заливает изображения в папку /bitrix/catalog_export/ (или настраиваемую папку обмена).
  2. Загрузка XML. import.xml содержит ссылки на файлы: <Картинка>images/photo1.jpg</Картинка>. При разборе XML Битрикс находит файл по пути и привязывает к элементу инфоблока.

В инфоблоке изображение попадает в PREVIEW_PICTURE (превью) или DETAIL_PICTURE (детальное). Дополнительные изображения — в свойство типа «Файл» или через \Bitrix\Iblock\PropertyTable если используется несколько фотографий.

Настройка в 1С

В обработке «Выгрузка на сайт» (1С:УТ, 1С:Розница и др.) должен быть включён параметр «Выгружать картинки». Без этого флага XML формируется без блоков <Картинка>, и изображения не передаются.

Важно: 1С выгружает изображения только тех товаров, которые изменились (при инкрементальном обмене). Если изображение добавили к товару впервые — оно попадёт при ближайшем обмене. Если изображение поменяли, а другие данные товара не менялись — 1С может не включить товар в выгрузку. Решение: при обновлении изображения в 1С вручную «трогать» запись товара (изменить любое поле и сохранить).

Множественные изображения

По стандарту CommerceML для нескольких изображений можно передавать несколько тегов <Картинка>. Битрикс по умолчанию обрабатывает первое изображение как DETAIL_PICTURE, остальные теряются — если свойство «Дополнительные изображения» в инфоблоке не настроено.

Для поддержки галереи изображений:

  1. В инфоблоке создаётся свойство типа «Файл», множественное, например с кодом MORE_PHOTO.
  2. В обработчике события OnIBlockChange (или агенте постобработки) дополнительные изображения из XML записываются в это свойство.
  3. В шаблоне компонента catalog.element выводим галерею через $arResult["PROPERTIES"]["MORE_PHOTO"].

Повторная выгрузка изображений

При полном обмене изображения заново загружаются на сервер и перепривязываются к элементам. Это означает, что при каждом обмене файлы перезаписываются. Если изображения редактировались на стороне сайта (ресайз, ватермарк) — они будут перезаписаны оригиналами из 1С.

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

Проблемы с кодировкой имён файлов

Если имена файлов содержат кириллицу — возможны проблемы при передаче через HTTP. 1С иногда передаёт имена файлов в UTF-8, иногда в Windows-1251. В обработчике Битрикс проверяем кодировку имени файла и при необходимости транслитерируем его при сохранении.

Размер изображений и производительность

При большом каталоге (тысячи товаров с несколькими изображениями) загрузка изображений в процессе обмена может занимать значительное время. Рекомендации:

  • Включить сжатие изображений на стороне 1С перед выгрузкой (или использовать внешнюю обработку ресайза)
  • На стороне Битрикс — ресайз через CFile::ResizeImageGet() с кешированием, а не при каждом обращении
  • Хранить оригинальные файлы отдельно от отресайзенных превью