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

01.04.23

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Переконвертация графических файлов в 1С для корректной выгрузки на сайт Битрикс v2 (УНФ):
.epf 591,90Kb
35
35 Скачать (1 SM) Купить за 1 850 руб.
Переконвертация графических файлов в 1С для корректной выгрузки на сайт Битрикс:
.epf 591,42Kb ver:1
76
76 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

См. также

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер).

22440 руб.

19.12.2023    5522    40    11    

37

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    18017    18    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20160    13    19    

18

СБП. Оплата по QR-коду Сайты и интернет-магазины Программист Платформа 1С v8.3 Конфигурации 1cv8 Автомобили, автосервисы Россия Бухгалтерский учет Управленческий учет Платные (руб)

В настоящее время система СБП очень часто стала использоваться в повседневной жизни. Одна из систем интеграции СБП через СБЕР. Данная конфигурация является инструментом интеграции СБП в Альфа Авто. Данная система не просто формирует статический QR, а динамический, а значит, в системе будет привязка и на покупателя, и на документ.

7200 руб.

25.10.2022    6427    32    4    

11

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 Россия Платные (руб)

Модуль выгрузки товаров услуг из 1С для сайта "Авито" раздел "Автозагрузка" выполнена в виде обработки. Обработка подходит для конфигураций УТ, УНФ и Розница. Данная обработка позволяет создавать шаблон с объявлениями для "Авито" - "Автозагрузка".

4200 руб.

07.06.2022    17852    40    56    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. ribolovmax 22.03.21 23:46 Сейчас в теме
Здравствуйте. Ваша обработка поддерживает если хранение графических файлов в томах, а не в базе 1с?
2. Sandmansss 27 23.03.21 13:59 Сейчас в теме
Не могу сказать. Я ее писал и тестировал для файлов хранящихся в базе.
Но в принципе кто мешает ее изменить?
В общем получается меняется только способ сохранения и записи конечного файла, а остальной алгоритм остается прежним.
3. ribolovmax 23.03.21 18:00 Сейчас в теме
Не дождался вашего ответа и приобрел вашу обработку. Из за хранения в томах пишет ошибку при открытии Ошибка инициализации модуля: ВнешняяОбработка.ИсправлениеКартинокПоТоварам.МодульОбъекта
по причине:
{ВнешняяОбработка.ИсправлениеКартинокПоТоварам.МодульОбъекта(144,10)}: Переменная не определена (ПрисоединенныеФайлы)
Адр = <<?>>ПрисоединенныеФайлы.ПолучитьДанныеФайла(Выборка.Ссылка, "ljbevf349ty";).СсылкаНаДвоичныеДанныеФайла;
{ВнешняяОбработка.ИсправлениеКартинокПоТоварам.МодульОбъекта(155,25)}: Переменная не определена (ПрисоединенныеФайлы)
ПрисоединенныйФайл = <<?>>ПрисоединенныеФайлы.ДобавитьФайл(Номенклатура,ФайлДокумента.ИмяБезРасширения,СтрЗаменить(ФайлДокумента.Расширение,".","";),ТекущаяДата(),ТекущаяДата(),АдресВременногоХранилищаФайла,,Номенклатура.Наименование);

У вас будет возможность поправить обработку?
4. Sandmansss 27 24.03.21 11:52 Сейчас в теме
Извините, но я Вам ответил - "23.03.21 13:59"
Обработка поставляется "как есть". Работы в томах в описании не заявлено.
Да и у меня нет такой тестовой базы, где файлы бы хранились в томах, для тестирования.
Поправьте код в местах скачивания и записи файла с учетом особенности хранения и все заработает.
stepani4; +1 Ответить
5. sladnn 27.10.21 16:19 Сейчас в теме
Здравствуйте
В 1с КА2 обработка работает?
6. sladnn 27.10.21 16:52 Сейчас в теме
Здравствуйте, обработка выдает
"Внешняя Обработка.Исправление Картинок По Товарам.МодульОбъекта(144.10):переменная не определена (ПрисоедененныеФайлы)"
Прикрепленные файлы:
7. kaplan 12.11.21 09:53 Сейчас в теме
(6)
обработка

Такая же проблема
8. Sandmansss 27 23.11.21 11:39 Сейчас в теме
Если кто сможет дать скинуть мне базу (или на выгрузку из нее) то я посмотрю в чем может проблема
9. Scott_Slim_Summers 02.02.22 09:37 Сейчас в теме
Здравствуйте. Тестировал вашу обработку на платформе 8.3.19.1467, конфигурация УТ 11.4.13.280. Обработка зависает. Пробовал оставлять на 1,5, примерно, но безрезультатно. Может быть есть версия, которая тестировалась на более свежих релизах, нежели тот, что вы указали в описании?
10. Sandmansss 27 02.02.22 12:52 Сейчас в теме
Да в общем нет. Я свою задачу решил и выложил. И больше не использовал.
Но повторюсь в принципе я могу глянуть что и к чему, но мне нужна проблемная база.
Если сможете дать выгрузку - гляну на ней почему может зависать и почему.
11. ZmeyG 24.02.22 21:24 Сейчас в теме
12. stepani4 28.11.22 16:17 Сейчас в теме
Нормальная обработка, поправил для УНФ (заменил ПрисоедененныеФайлы на модуль в УНФ) и все работает.
VyacheslavShilov; krein; +2 Ответить
13. krein 63 15.01.23 12:32 Сейчас в теме
(12) спасибо за дельный комментарий, а то после предыдущих всех даже думал, скачивать или нет вообще

По самой обработке то, что мне пришлось поменять у себя :
1. Самое главное идея и общая реализация: с этим проблем нет, всё работает, спасибо автору.
По итогу этой обработкой проблема с выгрузкой на сайт с Битриксом решилась.
(Ответ сервера: failure Файл не является графическим)

2. В УНФ заменил вызов общего модуля "ПрисоединенныеФайлы" на аналогичный "РаботаСФайламиСлужебныйВызовСервера"
3. Изменил в запросах отборы файлов, т.к. например на моей базе попали файлы MP4, если исключать перечисление, вместо исключения сделал явное указание графических форматов.
4. При записи новой картинки дополнительно присвоил от старой значения Автор, Изменил и обе даты
5. Если картинка была в незаконченном редактировании, то не удалялась, поправил.

Если 2 и 5 обязательно надо добавить, то 3,4 - уже от базы самой зависит.
Автору свою версию отредактированную отправлю, если он будет не против, то наверно добавит файл к своей публикации. Еще раз благодарность от меня и плюс.
VyacheslavShilov; +1 Ответить
14. krein 63 15.01.23 12:34 Сейчас в теме
Но если есть доступ к админке сайта, то проще конечно найти конкретную картинку и поправить её. Для этого:
В файле /bitrix/modules/main/classes/general/file.php перед каждым
return GetMessage("FILE_BAD_FILE_TYPE");
вставляем:
print_r($arFile)

вот тут эта инструкция: https://tichiy.ru/wiki/bitriks-obmen-s-1s/ и + еще способ включения обхода таких ошибок в принципе (тоже на стороне сайта)
15. stepani4 16.01.23 12:53 Сейчас в теме
Проще сделать лог загрузки, в который писать УИД кривых файлов, потом по этому логу редактировать точечно.
16. user1014118 13.09.23 21:07 Сейчас в теме
День добрый! где можно скачать
17. user1014118 13.09.23 21:07 Сейчас в теме
Upd: добавлена доработанная версия от krein. Заменен "вызов общего модуля "ПрисоединенныеФайлы" на аналогичный "РаботаСФайламиСлужебныйВызовСервера""
18. Mitsi 10.11.23 18:14 Сейчас в теме
Доброго времени суток. Столкнулся с ошибкой:
1С:Предприятие 8.3 (8.3.22.2175)
Управление торговлей, редакция 11 (11.5.13.82)


Ошибка инициализации модуля: Обработка.ИсправлениеКартинокПоТоварам.МодульОбъекта
по причине:
{Обработка.ИсправлениеКартинокПоТоварам.МодульОбъекта(144,10)}: Переменная не определена (ПрисоединенныеФайлы)
Адр = <<?>>ПрисоединенныеФайлы.ПолучитьДанныеФайла(Выборка.Ссылка, "ljbevf349ty").СсылкаНаДвоичныеДанныеФайла;
{Обработка.ИсправлениеКартинокПоТоварам.МодульОбъекта(155,25)}: Переменная не определена (ПрисоединенныеФайлы)
ПрисоединенныйФайл = <<?>>ПрисоединенныеФайлы.ДобавитьФайл(Номенклатура,ФайлДокумента.ИмяБезРасширения,СтрЗаменить(ФайлДокумента.Расширение,".",""),ТекущаяДата(),ТекущаяДата(),АдресВременногоХранилищаФайла,,Номенклатура.Наименование);
19. Sandmansss 27 10.11.23 19:15 Сейчас в теме
(18) Вы не ту версию обработки скачали.

У вас последняя версия конфигурации, а в ней теперь вместо общего модуля ПрисоединенныеФайлы используется общий модуль РаботаСФайлами.
Вам нужна версия обработки v2 (УНФ):

Или же просто перепишите этот кусок вызова.
VyacheslavShilov; +1 Ответить
20. Mitsi 10.11.23 19:22 Сейчас в теме
Принял. Меня смутило УНФ в названии файла)
21. mad_maksim 88 20.12.23 17:30 Сейчас в теме
Уточните, работает ли обработка, если файлы хранятся в томах?
после запуска вышло некоторое количество ошибок, но их меньше, чем обработанных файлов.
22. Sandmansss 27 20.12.23 18:15 Сейчас в теме
А нет разницы. Во второй версии используется служебный метод РаботаСФайламиСлужебныйВызовСервера.
А ему все равно где лежат файлы, в базе или в томах.
БСП наше все))
23. DLYuniton 21.02.24 10:38 Сейчас в теме
Добрый день. Скачал версию "Переконвертация графических файлов в 1С для корректной выгрузки на сайт Битрикс v2 (УНФ) ". 1 раз исправили проблемы с файлами.
Сейчас снова пытаюсь воспользоваться обработкой. Зависает намертво. Оставлял на длительный срок(1-2) дня. Процесс 1С зависает и всё. Подскажите, как можно исправить данную проблему?
VyacheslavShilov; +1 Ответить
25. Sandmansss 27 21.02.24 12:54 Сейчас в теме
24. Sandmansss 27 21.02.24 12:52 Сейчас в теме
Добрый день.
Честно говоря даже не могу предположить.
Там же просто цикл перебирающий номенклатурные позиции и работающий с прикрепленными файлами.
Наверное для начала я бы в консоли запросов сделал выборку из справочника НоменклатураПрисоединенныеФайлы с сортировкой по типу, а потом по размеру. И посмотрел бы что там. Если ничего в глаза бросающегося бы не обнаружилось, попробовал бы запустить обработку в режиме отладки и посмотрел на каком моменте все виснет.
Самые длительные операции это запись/чтение с диска, вот скорее всего в этом проблема, но понять можно будет только в отладчике.
VyacheslavShilov; +1 Ответить
26. AleSSandre 37 11.11.24 23:06 Сейчас в теме
(24) Зависает не обработка (там зависать нечему), зависает сам IrfanView на конвертации каких-то изображений. Достаточно через диспетчер задач убить процесс "IrfanView" и обработка "оживёт"
VyacheslavShilov; +1 Ответить
27. SuperEmboser 13 25.11.24 19:10 Сейчас в теме
(26) да оживает но ненадолго, тк вызов идет в цикле и через одну две итерации опять висит
может есть еще решения?
28. Sandmansss 27 26.11.24 10:45 Сейчас в теме
(27) Можете прислать мне выгрузку из базы я посмотрю в чем может быть проблема.
29. SuperEmboser 13 26.11.24 11:08 Сейчас в теме
(28) нет, не могу. может конечно с самим файлом в базе что то не так .. могу доступ дать на свой комп (тогда в личку напишите)
30. Sandmansss 27 26.11.24 11:52 Сейчас в теме
(29) Не, на чужом компьютере нет времени копаться. Так бы я вечерком когда освобожусь, глянул бы.
Давайте так, я в течении пары дней найду время и переделаю обработку на более свежую версию irfanview. У себя проверю и отпишусь. Если все ок, дадите email и я скину свежую версию
31. SuperEmboser 13 26.11.24 11:53 Сейчас в теме
Оставьте свое сообщение