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

29.06.22

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
СжатиеИзображений.epf
.epf 9,23Kb
186
186 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    9596    78    33    

86

Перенос данных 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    172230    367    399    

334

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

Универсальная свертка баз данных под 1С разработана для свертки баз данных различного объема и сложности. Обработка работает на простых и управляемых формах. Обработка позволяет легко и интуитивно понятно проводить работы по свертке базы данных и других необходимых операций связанных с обслуживанием баз данных.

6000 руб.

22.05.2024    3197    15    7    

24

БСП (Библиотека стандартных подсистем) Программист Платные (руб)

Синтакс-помощник БСП - cправочник по библиотеке стандартных подсистем. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП.

1800 руб.

21.11.2024    2356    8    14    

8

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

Разработка универсальна, работает на любой конфигурации, на версиях платформ 8.1 и 8.2. Исходные коды открыты. Усекаются сразу все разделы учета (регистры бухгалтерии, регистры накопления, регистры сведений). Разработка представляет из себя cf-файл с одним единственным документом: ЗакрытиеПериода. В нём содержится функционал как по заполнению, так и по очистке регистров. Так же для версии 8.2 возможна переброска данных в "чистую" базу нажатием одной кнопки.

4800 руб.

21.02.2011    109595    113    249    

303

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

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1395    PROSTO-1C    0    

16

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

В статье рассмотрим пошаговую инструкцию создания дополнительного отчета с фоновым формированием результата.

04.10.2024    2082    MadRave    11    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. BigB 193 09.03.20 00:32 Сейчас в теме
У меня у одного картинки не отображаются?
5. 1sig 248 09.03.20 12:22 Сейчас в теме
(1)у вас картинки не отображаются в статье?
10. BigB 193 09.03.20 19:37 Сейчас в теме
(5) Первая отображается, а вместо двух других - белые квадраты.
Прикрепленные файлы:
11. 1sig 248 09.03.20 20:14 Сейчас в теме
(10) спасибо, глюк инфостарта, в режиме редактирования подставляются другие (внутренние) ссылки на изображения
18. BigB 193 10.03.20 00:08 Сейчас в теме
(11) Вот теперь картинки отображаются все.
2. webester 26 09.03.20 07:03 Сейчас в теме
3. Xershi 1551 09.03.20 09:09 Сейчас в теме
Тестировали только на джипегах?
4. 1sig 248 09.03.20 12:21 Сейчас в теме
7. Xershi 1551 09.03.20 13:35 Сейчас в теме
(4) на svg еще протестируйте, там структура кажись немного другая.
9. Xershi 1551 09.03.20 15:51 Сейчас в теме
(7) хотя можете и по остальным форматам пробежаться.
12. 1sig 248 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 1551 10.03.20 08:27 Сейчас в теме
(12)так я что то не так понял. БСП использует пакет? Тогда причём здесь без внешних компонент?
21. 1sig 248 10.03.20 08:35 Сейчас в теме
(20)
ImageMagick использует сам движок Платформы 1С (>=8.3.14), написанный на C, поэтому код обработки отдельного файла изображения будет работать и на чистой конфигурации.
БСП в заголовке указана только потому, что алгоритм групповой обработки обращается уже к объектам БСП, ответственным за хранение файлов изображений.
6. folo 226 09.03.20 13:25 Сейчас в теме
А не проще хранить файлы в каталоге вне базы ? Даже типовое решение это сейчас позволяет. Запаковать в зип с паролем если что.
Serega-artem; VAAngelov; SuhoffGV; +3 Ответить
8. SuhoffGV 09.03.20 13:41 Сейчас в теме
(6) зачем паковать в ЗИП с паролем? Достаточно того чтобы к папке с файлами был ограничен доступ средствами ОС. Оставить права пользователю, под которым работает сервер 1с, админу и, если есть, пользователю под которым работает служба резервного копирования.
13. 1sig 248 09.03.20 20:54 Сейчас в теме
(6)
верно - это и проще, и надежнее, и на ssd дисках пооптимальнее скорее всего будет, но у клиента база в облаках раруса, там сильно не разгонишься в ограниченных ресурсах их рядового сервака)
14. kholodarev 8 09.03.20 21:04 Сейчас в теме
(13) мы сделали хранение файлов в yandex object storage - дёшево и сверхбыстро. Получается примерно 1,5тр за каждый терабайт данных в месяц - это чтение, запись, всяческие преобразования фото и видео на 2000 пользователей. Пришлось добавить вариант хранения в подсистеме хранения файлов. У Яндекса отдача может достигать терабайты в секунду и хранение в распределённых датацентрах. Ну и облачные базы становится выгоднее использовать - s3-хранилище гораздо дешевле, чем обычная база данных
VladimirElohov; klaus38; sstas007; ArchLord42; +4 Ответить
17. 1sig 248 09.03.20 23:16 Сейчас в теме
(14)
на 2000 пользователей - это конечно круто
15. CheBurator 2684 09.03.20 21:42 Сейчас в теме
То что в (0) называется сжатие - правильно именовать ресайзинг (resize) - изменение размера (если я правильно понял). А "сжатие" - это совсем из другой оперы.
16. 1sig 248 09.03.20 23:13 Сейчас в теме
(15)
верное замечание, просто обычно ключевое слово в поиске запросов по теме в основном так звучит :) и по факту цель всех манипуляций - уменьшение размера хранимых данных, вот "сжатие" размера файла и получается)
19. muskul 10.03.20 02:43 Сейчас в теме
22. kydesniklesa 05.04.20 20:14 Сейчас в теме
Доброго времени суток! Подскажите, пожалуйста, а возможно данной обработкой уменьшить размер *.pdf файлов?
23. 1sig 248 05.04.20 21:48 Сейчас в теме
(22)
теоретически может и сожмет

на практике скорее всего разработчики 1С ограничили эту возможность и будет исключение.
Прикрепленные файлы:
24. пользователь 10.06.20 13:41
Сообщение было скрыто модератором.
...
25. пользователь 10.06.20 13:42
Сообщение было скрыто модератором.
...
26. Cab-dv 50 29.09.20 13:09 Сейчас в теме
Здравствуйте. Необходимо формировать прайс-лист с картинками в УНФ(фреш). Возможно ли сделать обработку сжатия для картинок прайса, не меняя размер картинок в хранилище?
27. 1sig 248 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 248 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 25 26.04.22 12:32 Сейчас в теме
К сожалению, этот объект не может обрабатывать большие изображения. "Гениальные менеджеры загрузили в справочник номенклатуры картинки по 10-36 Мегабайт каждая. И 1С отбивает Обработка = Новый ОбрабатываемаяКартинка(Картинка); с ошибкой.
32. 1sig 248 26.04.22 16:40 Сейчас в теме
(31) добрый день! а картинки в каком формате? стандартные jpg, png? может формат какой то новый?
картинки под 36 Мб это конечно без комментов) попробую воспроизвести у себя, если движок ImageMagick их не сможет "съесть", что навряд ли, адресуем вопрос разработчикам платформы
33. sifftsov 25 27.04.22 14:22 Сейчас в теме
(32)Картинки в формате TIFF. Формат древний, как труха от мамонтов. Но вот пользователи решили не парится преобразованием. В базу залилось, и ладно. А сейчас у нас объём картинок безбожно вырос. Решили "причесать". И тут такое фиаско.
34. 1sig 248 27.04.22 16:30 Сейчас в теме
(33) а можно пример одного из таких файлов для разбора? скачал пример большого tiff отсюда (51,2Мб)
обработка по умолчанию сжала до 4,5Мб
Прикрепленные файлы:
35. vis_tmp 32 29.06.22 20:32 Сейчас в теме
Если у товара несколько картинок, они все выгружаются?
36. 1sig 248 29.06.22 22:17 Сейчас в теме
(35) да, выгружаются все картинки
37. ama68 05.12.22 05:10 Сейчас в теме
Можно ли использовать данную обработку на УНФ 3.0, или придётся подпиливать?
VyacheslavShilov; +1 Ответить
38. 1sig 248 05.12.22 08:53 Сейчас в теме
(37) можно, главное условие - версия БСП > 2.3 (в УНФ 3.0 БСП 3.1.7) и файлы залиты в саму БД
VyacheslavShilov; +1 Ответить
39. user779012 04.12.24 08:53 Сейчас в теме
Можете актуализировать для УНФ 3.0? Регистра "ДвоичныеДанныеФайлов" больше нет.
VyacheslavShilov; +1 Ответить
Оставьте свое сообщение