Переконвертация графических файлов в 1С для корректной выгрузки на сайт Битрикс

01.04.23

Интеграция - Сайты и интернет-магазины

Согласно выбранному режиму конвертирует присоединенные графические файлы номенклатуры в jpg и переименовывает их, избавляясь от служебных символов. Upd: добавлена доработанная версия от krein. Заменен "вызов общего модуля "ПрисоединенныеФайлы" на аналогичный "РаботаСФайламиСлужебныйВызовСервера""

Бывают ситуации, когда при обмене 1С с сайтом Битрикс в логе появляются ошибки - "Файл не является графическим", и обмен проходит не полностью.

Данная ситуация возникает в следующих случаях:

  • Имена файлов в базе имеют служебные символы (,),!,@,#,?
  • Файл битый по внутренней структуре
  • Файл имеет неверное расширение. К примеру файл - webp, а расширение jpg
  • Файл имеет неверный тип: png, gif, jpeg

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

Лично я, столкнувшись с данной ситуацией - перелопатил кучу логов, но внятного списка номенклатуры с ошибками так и не получил. В итоге родилось следующее решение.

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

  • Файл сохраняется на диск во временную папку 
  • Файл конвертируется в формат jpg
  • Файл переименовывается. (наименование - GUID номенклатуры хозяина + индекс)
  • Файл записывается в базу 1С
  • Исходный файл помечается на удаление
  • Если удаленный файл был основной картинкой товара, то ссылка на картинку замещается ссылкой на новый файл
  • Номенклатура сохраняется

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

Режимы в которых работает обработка:

  • Все графические файлы, кроме jpg
  • Все графические файлы
  • Все графические файлы, кроме уже обработанных

Примечание: Опция "Только новые" работает, только если у номенклатуры не больше 9 присоединенных графических файлов.

После окончания работы обработки следует удалить помеченные на удаление присоединенные файлы, чтобы уменьшить объем информации хранимой в базе.

После исправления всех графических файлов выгрузка на сайт проходит без ошибок.

Тестировалось на версии: Платформа 8.3.17.1091, Конфигурация Управление торговлей, редакция 11 (11.4.6.230)

 

Upd: добавлена доработанная версия от krein. Заменен "вызов общего модуля "ПрисоединенныеФайлы" на аналогичный "РаботаСФайламиСлужебныйВызовСервера""

Вступайте в нашу телеграмм-группу Инфостарт

Обработка битрикс картинки