Не выгружаются картинки из 1с в битрикс

Не выгружаются картинки из 1с в битрикс

Недавно к нам поступил запрос от клиента, который не доволен работой типового обмена, потому что при удалении картинки из 1С, она не удаляется на сайте.

Ну что же, проверим как все работает. Тестировать обмен будем в режиме обмена изменениями.

На стороне сайта:

  • 1С-Битрикс, редакция «Бизнес»;
  • Модуль «Интернет-магазин», версия 16.0.31;
  • Типовое решение от 1С-Битрикс для интернет-магазина.

На стороне 1С:

  • Управление торговлей, редакция 10.3.5.1;
  • Типовой модуль обмена.

Доступа к 1С у нас не было, поэтому мы попросили предоставить две файловые выгрузки обменов:

  • после добавления картинки к товару;
  • после удаления картинки к товару.

Шаг №1: подготовка файлов.

Тестировать будем на копии сайта, но все равно, чтобы не «грохнуть» весь каталог, проверим, что файлы произведут загрузку на сайт в режиме «изменения».

Смотрим в import.xml с добавлением картинки.

«false» — это не то, что нам надо, меняем на «true».

То же самое проделываем с файлом на удаление картинки.

Шаг №2: устанавливаем на сайт скрипт для эмуляции обмена с 1С.

Распаковываем, и полученный файл bx_1c_import.php загружаем в корень сайта.

Шаг №3: еще немного подготовки

Для чистоты эксперимента находим нашу подопытную товарную позицию и удаляем ее из базы.

Создаем на сайте две папки для тестирования загрузки

  • /upload/test_1c_upload/with_picture/ — сюда выложим выгрузку с картиной
  • /upload/test_1c_upload/without_picture/ — сюда выложим выгрузку уже без картинки

Еще почистим папку с файлами для обмена заказами. Для этого удаляем все вот тут: /upload/1c_exchange

Шаг №4: первая загрузка – товар с картинкой

Так как скрипт эмуляции обмена не умеет брать файлы из папок кроме /upload/1c_catalog/, то копируем файлы сюда:

Включаем наш скрипт /bx_1c_import.php, переходим на вкладку «Импорт файлов 1С» и двойной клик по import.xml

Скрипт нам говорит об успешной загрузке

offers.xml грузить не нужно, там ничего про интересующие нас картинки не сказано.

Смотрим в элемент инфоблока соответствующий нашему товару.

Вот что у нас загрузилось:

1. Картинка для анонса загрузилась

2. Детальная картинка загрузилась (такая же как и картинка для анонса)

3. А еще мы видим, что фотография подгрузилась в свойство «PHOTO» (ID «MORE_PHOTO»)

Вот как эти картинки отображаются в публичном интерфейсе.

Читайте также:  Батник для перезагрузки компьютера

На странице карточки товара отображаются картинки, подгруженные именно в свойство «PHOTO». Это множественно свойство, и, если картинок несколько, то все они будут отображены на странице карточки товара. В случае, если в 1С к элементу номенклатуры подгружены несколько товаров, то стандартный обмен загрузит их именно в этой свойство.

Картинка для анонса как и детальная картинка (если они подгружены) отображаются ТОЛЬКО в списке товаров. При этом, если картинка для анонса и детальная картинка не заполнены, то в списке товаров будет отображаться одна из картинок из свойства «PHOTO».

ВЫВОД: Для того, чтобы удалить картинку у товара, не достаточно удалить картинки для анонса и детальную картинку. Необходимо также очистить картинки из свойства «PHOTO» (ID «MORE_PHOTO»).

Проверяем в публичном интерфейсе сайта. Все в порядке, картинка отображается в списке и в карточке товара. Теперь попробуем удалить картинку.

Шаг №5: вторая загрузка – удалили картинку (она была единственная) из товара

Удаляем файлы прежнего обмена из /upload/1c_catalog, копируем содержимое /test_1c_upload/without_picture/.

Проделываем загрузку файлов с помощью скрипта как в п.4.

В админке в списке товаров видим, что время дата и время изменения элемента обновились, значит обмен прошел. Смотрим в элемент инфоблока что изменилось:

  • Детальная картинка удалилась. Порядок.
  • Картина для анонса осталась на месте. Не порядок.
  • Картинка в свойстве «PHOTO» осталась на месте. Не порядок.

Разберемся в чем дело.

Шаг №6: смотрим как устроены файлы выгрузки

В первом файле находим тег «Картинка»:

А еще в первом файле видим тег «MORE_PHOTO» в блоке свойств товара.

Во втором файле также находим тег «Картинка»:

Здесь передается закрытый тег «Картинка», и собственно картинки уже нет. При этом загрузка повела себя так, что удалила детальную картинку, а картинку для анонса оставила на месте.

Также в перечне свойств мы уже не видим свойства «PHOTO». Однако картинка в свойстве «PHOTO» инфоблока не была удалена.

Итак, нам нужно добиться двух эффектов:

  1. Необходимо, чтобы удалилась картинка для анонса
  2. Необходимо, чтобы удалилась картинка из свойства «PHOTO»

Шаг №7: настраиваем удаление картинки из анонса

Попробуем настроить следующее решение. В настройках инфоблока можно указать, чтобы при удалении детальной картинки в элементе, также удалялась картинка для анонса. А в настройках интеграции с 1С укажем, чтобы при загрузке картинки обрабатывались по правилам, указанным в настройках инфоблока.

Читайте также:  Подключить колонки к андроид приставке

Настаиваем наш инфоблок с каталогом товаров на удаление картинки анонса (Инфоблоки – Типы инфоблоков – 1С Каталог – Каталог товаров). Вкладка «Поля», ставим флаг удаления:

Теперь настраиваем интеграцию (Магазин – Настройки – Интеграция с 1С). Вкладка «Каталог», говорим, чтобы настройки изображения обрабатывались по настройкам инфоблока:

Все настроили. Теперь проделываем загрузку товара с картинкой (п.4) и после этого загрузку без картинки (п.5).

Смотрим в элемент инфоблока что изменилось:

  • Детальной нет, как и в прошлый раз. Порядок.
  • Картина для анонса удалилась! Нужный эффект произошел. Порядок.
  • Картинка в свойстве «PHOTO» осталась на месте. Не порядок.

Шаг №8: придумываем как удалить картинку свойства «PHOTO»

Осталось убрать картинку из дополнительных фотографий. Во втором import.xml нет упоминаний про свойство «PHOTO» и картинка не удаляется.

Подобное поведение мы наблюдали с остатками товара. Когда 1С регистрировала нулевое количество на складах и добавляла товар к обмену. При выгрузке тег «Количество» не записывался в файл обмена и Битрикс на своей стороне не обнулял количество. Одним из вариантов решения было принудительно добавить в выгрузку 0 .

Поступим аналогичным образом. Добавим во второй файл запись с тегом «MORE_PHOTO» с пустыми записями. Примерно вот так:

Пробуем еще раз выгрузить товар. Снова загрузим с картинкой (п.4) и после этого — без картинки (п.5).

Смотрим что изменилось:

  • Детальной нет, как и в прошлый раз. Порядок.
  • Картинки для анонса нет. Порядок.
  • Картинка в свойстве «PHOTO» удалена! Порядок!

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

Вот как можно поступить:

  1. Доработать модуль обмена на стороне 1С, чтобы он всегда оставлял в import.xml тег «MORE_PHOTOS», даже в случае удаления картинок
  2. Делать доработку на стороне сайта, чтобы система после загрузки проверяла наличие дополнительных фотографий и делала очистку
  3. Как вариант, вместо удаления картинки на стороне 1С, подгружать однопиксельную белую картинку или «заглушку», тогда визуально это будет равно удалению.
Читайте также:  Почему не открываются новости майл ру

Существуют также особые «продвинутые» версии модулей обмена как для 1С, так и для сайта. Вероятно, с их помощью можно было бы решить эту задачу. Но для этого нужен отдельный тест.

  • Интернет-магазины
  • Аспро: Максимум
  • Аспро: Next
  • Аспро: Интернет-магазин
  • Аспро: Крутой шоп
  • Аспро: Маркет
  • Аспро: Оптимус
  • Аспро: Шины и диски 2.0
  • Аспро: Шины и диски, интернет-магазин
  • Корпоративные сайты
    • Аспро: Приорити
    • Аспро: Корпоративный сайт 2.0
    • Аспро: Digital-компания
    • Аспро: Корпоративный сайт
    • Аспро: Корпоративный сайт современной компании
    • Аспро: Корпорация
    • Аспро: Курорт
    • Аспро: Ландшафт
    • Аспро: Медицинский центр 2.0
    • Аспро: Сайт медицинского центра
    • Аспро: Стройка
    • Модули
      • Аспро: Кредитный калькулятор
      • Аспро: Универсальный импорт
      • Аспро: Шинный калькулятор
      • 1С-Битрикс
        • Общее
        • После выгрузки из 1С некорректно отображаются картинки

          Подобные проблемы возникают из-за выгрузки в новый инфоблок каталога, в котором отсутствуют настройки изображений. Необходимо внести изменения в инфоблок каталога и настройки модуля интеграции 1С, а затем повторить полную выгрузку.

          Перейдите в настройки инфоблока каталога товаров:
          Контент → Инфоблоки → Типы инфоблоков → Каталог

          Перейдите на вкладку «Поля» и выставите следующие настройки:

          — создавать картинку анонса из детальной (если не задана)
          — удалять картинку анонса, если удаляется детальная
          — создавать картинку анонса из детальной даже если задана
          — уменьшать, если большая

          Задайте размер изображений (по умолчанию он составляет 170х170 px). Сохраните изменения.

          Перейдите в настройки интеграции с 1С:
          Магазин → Настройки → Интеграция с 1С

          Проверьте правильность настроек:

          «Использовать контрольные суммы элементов для оптимизации обновления каталога» (неактивна)
          «Использовать настройки инфоблока для обработки изображений» (активна).

          Сохраните изменения и повторно выполните полную выгрузку из 1С в каталог решения.

          • Вопрос задан 23 окт. 2019
          • 54 просмотра

          Вот что ответила ТП битрикса:

          Из 1С на сайт пока доступна выгрузка только картинок в детальную картинку торгового предложения. Выгрузка картинок в свойства типа справочник торгового предложения, при обмене с 1С сейчас возможность не поддерживается.
          В рамках службы технической поддержки мы можем помочь вам по работе стандартного функционала обмена. Сейчас в отделе разработок стоят заявка на добавление интересующей вас возможности в модуль обмена, чтобы выгружались картинки в справочнике.
          Написано только что

          Ссылка на основную публикацию
          Настроить принтер на русский язык
          В данном разделе приведены инструкции по выбору языка настроек и сообщений, отображаемых в отношении драйвера принтера. Откройте диалоговое окно свойств...
          Название группы в ватсапе прикольное для друзей
          116 самых дурацких и смешных названий групп: 0) Взрыв кабачка в коляске с поносом 2)Никогда Не Верь Хиппи 3)Машины, Которые...
          Наименьшая существенная разница это
          Наименьшей существенной разностью (НСР)– является своеобразной ценой деления, разрешающей способностью опыта при оценке разности выборочных средних. Критерий НСР = t0,5...
          Не выгружаются картинки из 1с в битрикс
          Недавно к нам поступил запрос от клиента, который не доволен работой типового обмена, потому что при удалении картинки из 1С,...
          Adblock detector