Сжатие (уменьшение размера) файлов изображений 1С без внешних компонент - для любой конфигурации на основе БСП > 2.3

29.06.22

База данных - Свертка базы

Если в базу загружено большое количество изображений, картинок, фото товаров, размером более 2-3МБ, то в базе будут сильно тормозить все процессы, связанные с чтением-передачей файлов изображений: формирование прайса, отчетов с картинками, выгрузка изображений товаров на сайт и т.д. Данная обработка позволяет провести оптимизацию (уменьшение размера) загруженных картинок в базу 1С любой конфигурации на основе БСП >= 2.3 стандартными средствами 1С, сохраняя при этом достаточно хорошее качество сжатых картинок. Проверено на релизе УТ 11.4.11.71, для обработки понадобится также версия Платформы 1С >= 8.3.14.

Скачать файлы

Наименование Файл Версия Размер
СжатиеИзображений.epf
.epf 9,23Kb
162
.epf 9,23Kb 162 Скачать

Обработка позволяет:

1. как сжать отдельно выбранный файл 

При нажатии на кнопку "1. Поместить файл" - выбирается файл в каталоге клиента,

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

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

На примере тестового фото jpg результат таков:

до сжатия: 1708x2362 5,05 Мб

после сжатия: 868x1200 2,75 Мб

Можно сжимать еще больше, оптимальная высота/ширина подбираются визуально по степени необходимости качества сжатого фото.

2. так сжать и все файлы товаров в базе

Алгоритм обработки файлов базы выполняется аналогично, перебором в цикле всех файлов изображений товаров.

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

Такие возможности работы с картинками доступны с версии Платформы 1С 8.3.14, подробнее про новые методы работы с картинками можно почитать в руководстве разработчика, глава 20, раздел 20.4 "Работа с картинками".

Выгрузка сжатие загрузка фото картинок изображений базы данных уменьшение размера большая база выгрузка на сайт тормозит Обработка оптимизация фотографий

См. также

Многофункциональная выгрузка из 1С: Управление торговлей (УТ11, УТ10) в Бухгалтерию предприятия (БП2, БП3) (соответствия товаров, контрагентов, складов, статей ДДС)+Свёртка по НДС

Обмен между базами 1C Оптовая торговля Свертка базы Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Хотите точно знать, что вы выгружаете? Хотите сворачивать товары по НДС или фильтровать товары по доп. реквизиту? Вы волшебник, которому необходимо превращать одних контрагентов в других? Хотите при выгрузке превратить группу товаров в один? Или просто нужен удобный OLE обмен между 1C Управление торговлей (ред. 11 или 10) и 1С Бухгалтерия предприятия (ред. 2 или 3). Тогда эта обработка для вас!

10900 руб.

19.04.2013    165261    340    393    

323

Правильная свертка или свертка базы по правилам

Свертка базы Чистка данных Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Обработка "Свертка базы по правилам" предназначена для свертки информационных баз системы программ "1С:Предприятие" версии 8.2. Основой обработки являются специальные правила свертки, которые создаются индивидуально для каждой конфигурации информационной базы. Встроенный в обработку генератор правил позволяет быстро создать правила свертки для любой конфигурации. Например, для конфигурации "1С:Бухгалтерия 8, ред. 3.0" правила свертки были созданы за 15 минут!

2400 руб.

22.07.2013    160430    601    527    

392

Свертка базы УНФ для 1.6

Свертка базы Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Управленческий учет Платные (руб)

Обработка свертки базы УНФ 1.6 выполнена в виде расширения конфигурации, которое встраивается в вашу базу без снятия с поддержки, и адаптирована под релиз УНФ 1.6.

4800 руб.

20.04.2021    14531    45    33    

52

Обрезание базы 1С

Свертка базы 8.3.8 Конфигурации 1cv8 Россия Управленческий учет Платные (руб)

Механизм обрезания базы 1С. Описан процесс переноса среза остатков в копию базы. Представлено прикладное решение - обработка по переносу данных. Реализован способ обмена между базами без длительного отключения рабочей базы.

7200 руб.

27.03.2023    3034    4    2    

5

Снова об использовании ТекущаяДата() на клиенте и на сервере и о работе в разных часовых поясах

БСП (Библиотека стандартных подсистем) Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Можно ли применять ТекущаяДата() вопреки требованиям стандартов 1С? Безопасно ли использование функции ОбщегоНазначенияКлиент.ДатаСеанса() из БСП? Как правильно поступать при работе пользователей в разных часовых поясах?

24.04.2023    5596    Alxby    26    

44

Печать в WORD при помощи БСП. Вывод уникальных ссылок в строки таблицы

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример вывода уникальных ссылок в строку таблицы макета WORD при печати с помощью БСП. Может быть полезна при создании интерактивных прайсов.

03.04.2023    1277    user1575928    0    

18
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. BigB 187 09.03.20 00:32 Сейчас в теме
У меня у одного картинки не отображаются?
5. 1sig 237 09.03.20 12:22 Сейчас в теме
(1)у вас картинки не отображаются в статье?
10. BigB 187 09.03.20 19:37 Сейчас в теме
(5) Первая отображается, а вместо двух других - белые квадраты.
Прикрепленные файлы:
11. 1sig 237 09.03.20 20:14 Сейчас в теме
(10) спасибо, глюк инфостарта, в режиме редактирования подставляются другие (внутренние) ссылки на изображения
18. BigB 187 10.03.20 00:08 Сейчас в теме
(11) Вот теперь картинки отображаются все.
2. webester 26 09.03.20 07:03 Сейчас в теме
Где ты раньше то был?)
3. Xershi 1402 09.03.20 09:09 Сейчас в теме
Тестировали только на джипегах?
4. 1sig 237 09.03.20 12:21 Сейчас в теме
(3) на jpg, png и tiff
7. Xershi 1402 09.03.20 13:35 Сейчас в теме
(4) на svg еще протестируйте, там структура кажись немного другая.
9. Xershi 1402 09.03.20 15:51 Сейчас в теме
(7) хотя можете и по остальным форматам пробежаться.
12. 1sig 237 09.03.20 20:51 Сейчас в теме
(9)
одну картинку svg обработка "съела", на второй выдала ошибку:

"Ошибка при выполнении операции ImageMagick: 1cv8c.exe: NoDecodeDelegateForThisImageFormat ... @ error/svg.c/ReadSVGImage/3007"

судя по ошибке для работы с картинками используется кроссплатформенный пакет ImageMagick, а он работает с довольно внушительным списком форматов:
https://www.imagemagick.org/script/formats.php
на практике конечно проверять надо.

p.s.: в обработке установлен фильтр на след. форматы: *.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf
20. Xershi 1402 10.03.20 08:27 Сейчас в теме
(12)так я что то не так понял. БСП использует пакет? Тогда причём здесь без внешних компонент?
21. 1sig 237 10.03.20 08:35 Сейчас в теме
(20)
ImageMagick использует сам движок Платформы 1С (>=8.3.14), написанный на C, поэтому код обработки отдельного файла изображения будет работать и на чистой конфигурации.
БСП в заголовке указана только потому, что алгоритм групповой обработки обращается уже к объектам БСП, ответственным за хранение файлов изображений.
6. folo 219 09.03.20 13:25 Сейчас в теме
А не проще хранить файлы в каталоге вне базы ? Даже типовое решение это сейчас позволяет. Запаковать в зип с паролем если что.
Serega-artem; VAAngelov; SuhoffGV; +3 Ответить
8. SuhoffGV 09.03.20 13:41 Сейчас в теме
(6) зачем паковать в ЗИП с паролем? Достаточно того чтобы к папке с файлами был ограничен доступ средствами ОС. Оставить права пользователю, под которым работает сервер 1с, админу и, если есть, пользователю под которым работает служба резервного копирования.
13. 1sig 237 09.03.20 20:54 Сейчас в теме
(6)
верно - это и проще, и надежнее, и на ssd дисках пооптимальнее скорее всего будет, но у клиента база в облаках раруса, там сильно не разгонишься в ограниченных ресурсах их рядового сервака)
14. kholodarev 9 09.03.20 21:04 Сейчас в теме
(13) мы сделали хранение файлов в yandex object storage - дёшево и сверхбыстро. Получается примерно 1,5тр за каждый терабайт данных в месяц - это чтение, запись, всяческие преобразования фото и видео на 2000 пользователей. Пришлось добавить вариант хранения в подсистеме хранения файлов. У Яндекса отдача может достигать терабайты в секунду и хранение в распределённых датацентрах. Ну и облачные базы становится выгоднее использовать - s3-хранилище гораздо дешевле, чем обычная база данных
VladimirElohov; klaus38; sstas007; ArchLord42; +4 Ответить
17. 1sig 237 09.03.20 23:16 Сейчас в теме
(14)
на 2000 пользователей - это конечно круто
15. CheBurator 3115 09.03.20 21:42 Сейчас в теме
То что в (0) называется сжатие - правильно именовать ресайзинг (resize) - изменение размера (если я правильно понял). А "сжатие" - это совсем из другой оперы.
16. 1sig 237 09.03.20 23:13 Сейчас в теме
(15)
верное замечание, просто обычно ключевое слово в поиске запросов по теме в основном так звучит :) и по факту цель всех манипуляций - уменьшение размера хранимых данных, вот "сжатие" размера файла и получается)
19. muskul 10.03.20 02:43 Сейчас в теме
Полезная штука
22. kydesniklesa 05.04.20 20:14 Сейчас в теме
Доброго времени суток! Подскажите, пожалуйста, а возможно данной обработкой уменьшить размер *.pdf файлов?
23. 1sig 237 05.04.20 21:48 Сейчас в теме
(22)
теоретически может и сожмет

на практике скорее всего разработчики 1С ограничили эту возможность и будет исключение.
Прикрепленные файлы:
24. пользователь 10.06.20 13:41
Сообщение было скрыто модератором.
...
25. пользователь 10.06.20 13:42
Сообщение было скрыто модератором.
...
26. Spirit11 30 29.09.20 13:09 Сейчас в теме
Здравствуйте. Необходимо формировать прайс-лист с картинками в УНФ(фреш). Возможно ли сделать обработку сжатия для картинок прайса, не меняя размер картинок в хранилище?
27. 1sig 237 29.09.20 23:08 Сейчас в теме
(26) Здравствуйте! Можно попробовать сжимать "на лету" картинки для прайса, не меняя при этом размер картинок в хранилище. Но здесь надо смотреть, насколько такое решение будет тормозить формирование прайса.
28. Dwiss 162 15.10.20 18:50 Сейчас в теме
Неспецифицированная ошибка работы с ресурсом
Ошибка при выполнении запроса POST к ресурсу /e1cib/logForm:
Недостаточно свободной памяти для выполнения операции

вылетает с ошибкой
Разобрался, запустил 64 разрядную версию, все поехало, но выскакивает другая ошибка
Ошибка при выполнении операции ImageMagick: 1cv8c.exe: Cannot write PNG8 or color-type 3; colormap is NULL `C:\Users\virtuser\AppData\Local\Temp\v8_5E6E_3324' * error/png.c/WriteOnePNGImage/9270
{ВнешняяОбработка.СжатиеИзображений.Форма.Форма.Форма(47)}: НовКартинка = ОбрКартинка.ПолучитьКартинку();
{ВнешняяОбработка.СжатиеИзображений.Форма.Форма.Форма(68)}: КомандаВЫполнитьНаСервере();

по причине:
Ошибка преобразования картинки
по причине:
Ошибка при выполнении операции ImageMagick: 1cv8c.exe: Cannot write PNG8 or color-type 3; colormap is NULL `C:\Users\virtuser\AppData\Local\Temp\v8_5E6E_3324' * error/png.c/WriteOnePNGImage/9270
29. 1sig 237 17.10.20 21:11 Сейчас в теме
(28)
Добрый день!

Да, ошибка воспроизвелась при попытке сжать картинку в формате png8 - глубина цвета 8 бит (256 цветов), видать что то глючит в используемом движке ImageMagick, как вариант, в таких ситуациях можно переустановить глубину цвета на большую, обработка подредактирована с учетом этого, попробуйте, если будут еще ошибки, просьба сообщать.
30. Egvenij 24.08.21 00:25 Сейчас в теме
Здравствуйте.
Облачная УНФ 1.6
Надо изменить формат из png в jpg со сжатием 65-70. Можно реализовать?
В базе уже 1000 png
31. sifftsov 4 26.04.22 12:32 Сейчас в теме
К сожалению, этот объект не может обрабатывать большие изображения. "Гениальные менеджеры загрузили в справочник номенклатуры картинки по 10-36 Мегабайт каждая. И 1С отбивает Обработка = Новый ОбрабатываемаяКартинка(Картинка); с ошибкой.
32. 1sig 237 26.04.22 16:40 Сейчас в теме
(31) добрый день! а картинки в каком формате? стандартные jpg, png? может формат какой то новый?
картинки под 36 Мб это конечно без комментов) попробую воспроизвести у себя, если движок ImageMagick их не сможет "съесть", что навряд ли, адресуем вопрос разработчикам платформы
33. sifftsov 4 27.04.22 14:22 Сейчас в теме
(32)Картинки в формате TIFF. Формат древний, как труха от мамонтов. Но вот пользователи решили не парится преобразованием. В базу залилось, и ладно. А сейчас у нас объём картинок безбожно вырос. Решили "причесать". И тут такое фиаско.
34. 1sig 237 27.04.22 16:30 Сейчас в теме
(33) а можно пример одного из таких файлов для разбора? скачал пример большого tiff отсюда (51,2Мб)
обработка по умолчанию сжала до 4,5Мб
Прикрепленные файлы:
35. vis_tmp 32 29.06.22 20:32 Сейчас в теме
Если у товара несколько картинок, они все выгружаются?
36. 1sig 237 29.06.22 22:17 Сейчас в теме
(35) да, выгружаются все картинки
37. ama68 05.12.22 05:10 Сейчас в теме
Можно ли использовать данную обработку на УНФ 3.0, или придётся подпиливать?
38. 1sig 237 05.12.22 08:53 Сейчас в теме
(37) можно, главное условие - версия БСП > 2.3 (в УНФ 3.0 БСП 3.1.7) и файлы залиты в саму БД
Оставьте свое сообщение