Налаштування вивантаження зображень товарів з 1С до 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування вивантаження зображень товарів з 1С до 1С-Бітрікс
Проста
~1 робочий день
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • 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
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Настройка виконання зображень товарів з 1С в 1С-Bitrix

Зображення передаються з 1С в Bitrix в складі стандартного обміну 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 Bitrix знаходить файл за шляхом та привязує до елемента інфоблока.

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

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

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

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

Множинні зображення

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

Для підтримки галереї зображень:

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

Повторна виконка зображень

При повному обміні зображення заново завантажуються на сервер та перепривязуються до елементів. Це означає, що при кожному обміні файли перезаписуються. Якщо зображення редагувалися на стороні сайту (ресайз, ватермарк) — вони будуть перезаписані оригіналами з 1С.

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

Проблеми з кодуванням імен файлів

Якщо імена файлів містять кирилицю — можливі проблеми при передачі через HTTP. 1С іноді передає імена файлів в UTF-8, іноді в Windows-1251. В обробнику Bitrix перевіряємо кодування імені файлу та при необхідності транслітеруємо його при збереженні.

Розмір зображень та продуктивність

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

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