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

01.04.23

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Переконвертация графических файлов в 1С для корректной выгрузки на сайт Битрикс v2 (УНФ):
.epf 591,90Kb
34
34 Скачать (1 SM) Купить за 1 850 руб.
Переконвертация графических файлов в 1С для корректной выгрузки на сайт Битрикс:
.epf 591,42Kb ver:1
74
74 Скачать (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    5099    38    11    

35

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

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

36000 руб.

03.08.2020    17783    19    22    

16

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

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

5040 руб.

04.05.2021    19851    13    17    

16

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

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

7200 руб.

25.10.2022    6306    33    4    

11

Сайты и интернет-магазины Программист Бизнес-аналитик Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Управленческий учет Платные (руб)

Программа позволяет одним кликом настроить сбор цен ваших конкурентов или дилеров в интернете. Автоматически собирает данные результата поиска Яндекса (вам не придется вручную добавлять каждый сайт, за которым нужно следить). Обновление цен происходит по заданному вами расписанию автоматически. Можете легко отслеживать позиции вашего сайта в Яндексе по ключевым словам и фразам. Этот инструмент даст вам лучшее понимание того, как ваша SEO-стратегия влияет на видимость вашего сайта в поисковой выдаче, и поможет вам улучшить контент и структуру сайта для повышения его позиций. Функция доступна во всех тарифах.

19950 руб.

23.09.2019    31021    7    12    

30
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 Ответить
Оставьте свое сообщение