Уменьшение размеров базы через сжатие картинок в ОФ. Бережём время, пространство и нервы

28.04.25

База данных - Инструменты администратора БД

Обработка для 1С (Обычные формы), позволяющая автоматизировать процесс оптимизации изображений в базе. Поддерживает выгрузку картинок на диск, их сжатие через встроенный внешний конвертер на базе ImageMagick, и последующую загрузку обратно. Настраивается качество и размер сжатия в процентах. Возможна принудительная конвертация всех файлов в JPG и автоматическое удаление преобразованных файлов после загрузки. Работает пошагово или полным циклом одной кнопкой. Ведётся логирование и отображение процента выполнения операций. Обработка предназначена для работы с обычными формами и совместима с расширениями.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Уменьшение размеров базы через сжатие картинок в ОФ. Бережём время, пространство и нервы
.rar 15,93Mb
2
2 Скачать (3 SM) Купить за 2 450 руб.

Как я устал возиться с картинками в 1С...

Когда работаешь с постоянно расширяющейся торговой базой, рано или поздно сталкиваешься с проблемой: номенклатуры много, а значит и изображений (картинок) всё больше. База пухнет, открывается медленнее, а уж резервные копии… Размеры просто невообразимые, но главное, нет в их больших размерах необходимости. Чаще всего, картинки просто должны быть. Возникает вопрос, как бы их принудительно время от времени (а может и только разово) уменьшить. Без шума и пыли, так сказать.

Руками скачивать, сжимать в просмотрщиками (хоть бы даже и пакетно) или ещё каком фотошопе с фигмой, а потом также нудно это всё обратно загружать? Не наш путь!

Собственно, я решил автоматизировать этот процесс для своих нужд, а потом так вошёл во вкус, оценив удобство, что захотелось поделиться и с другими.

Сразу оговорюсь, что эта обработка работает только с обычными формами (обычным приложением), позднее обязательно сделаю и под управляемые, – там хотя бы изначально можно файлы хранить в томе на диске, не такая острая проблема. Итак.

 

 

Как это работает:

 
  1. Назначаем рабочую папку, откуда и куда буду выгружаться, обрабатываться и снова загружаться в базу картинки.
  2. Обработка выгружает картинки из базы в рабочую папку
  3. Затем через внешний конвертер (также содержится в архиве) сжимает их согласно заданным настройкам ширины и высоты, а также качества сжатия,
  4. Картинки загружаются обратно уже оптимизированные файлы.

Важно!

После загрузки уменьшенных картинок необходимо из-под конфигуратора выполнить "Тестирование и исправление информационной базы", включив все проверки и режимы. Это нужно для корректного обновления ссылок и таблиц после обработки изображений.

 

 

Особенности решения:

• !ПОЛНАЯ АВТОНОМНОСТЬ! Ничего устанавливать не требуется. В комплекте идёт ImageResizer.exe, основанный на распространённой и достаточно шустрой библиотеке ImageMagick.
• Сам конвертер
ImageResizer.exe – это консольное приложение, написанное на C# специально под эту обработку. Во главу угла ставилась работа без установки всяких рантаймов, зависимостей и иже с ними, т.е. всё, что нужно, уже внутри (собственно, поэтому размер чуть больше, чем хотелось бы, но тут уж извините, приходится чем-то жертвовать).
При необходимости могу предоставить исходный код для проверки или адаптации.

• По умолчанию работа происходит с файлами JPG, но сама внешняя ресайзилка поддерживает и другие форматы: PNG, BMP, GIF, TIFF и др.

• Настройка параметров обработки:

  • изменение качества сжатия изображения (в процентах, от 1% до 100%),
  • изменение размера изображения (в процентах от оригинала, например 50%).

• Возможность принудительного преобразования всех файлов в формат JPG после обработки, независимо от исходного расширения.

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

• Пошаговое выполнение процедур: можно отдельно запускать выгрузку, сжатие или загрузку.

• Или выполнить полный цикл одной кнопкой — выгрузить, преобразовать и сразу загрузить обратно в базу.

• Работоспособность проверена на УПП 1.3, КА 1.1, УТ 10.3.

• Мониторинг процента выполнения всех процедур — видно, сколько уже обработано и сколько осталось.

• Реализована поддержка поиска файлов по разным расширениям (учтите, что если имя одинаковое, а расширения разные, могут всплыть нюансы).

• Гибкое логирование: подробный лог всех действий записывается в текстовый файл, читай, изучай, контролируй процесс.

• Поддержка записи событий в Журнал Регистрации: предусмотрены разные способы записи в зависимости от версии платформы. Всё же ОФ – штука, мягко говоря, не самая современная в мире 1С.

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

 

 

Почему это удобно:

 

Раньше обработка картинок вручную занимала полдня и море нервов.

Теперь весь процесс автоматизирован — от начала и до конца за несколько минут.

База становится заметно легче, быстрее работает, резервные копии уменьшаются в несколько раз.

На больших базах это особенно хорошо видно: реальная экономия места и времени (ну и нервов, конечно).

 

 

Что входит в комплект:

 

• Сама обработка .epf (Обычные формы) с возможностью как внешнего вызова, так и подключения,
• Внешний конвертер
ImageResizer.exe, написанный на C# с использованием библиотеки ImageMagick.

 

Подходит для:

 

• Компаний, работающих с большим объёмом номенклатуры с изображениями,
• Проектов, где важно сократить размер базы без потери информации,
• Разработчиков, которым нужно быстро оптимизировать изображения в базе,
• Всех, кто устал вручную сжимать и обрабатывать картинки для 1С.

Проверено на следующих конфигурациях и релизах:

  • Управление торговлей, редакция 10.3, релизы 10.3.45.4
  • Управление производственным предприятием, редакция 1.3, релизы 1.3.210.1
  • Комплексная автоматизация, редакция 1.1, релизы 1.1.115.1

См. также

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

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

8400 руб.

20.08.2024    28139    187    90    

178

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

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

15000 руб.

10.11.2023    14514    62    33    

80

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

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 18.09.2024, версия 1.2

19200 руб.

06.12.2023    13419    57    8    

86

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    36323    118    152    

81

Инструменты администратора БД Системный администратор Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    63676    99    59    

81

Архивирование (backup) Инструменты администратора БД Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    75302    631    45    

90

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

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    10877    13    4    

21
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Baszilio 8 28.04.25 17:18 Сейчас в теме
Минусующий господин, буду признателен если выскажетесь, в чём, собственно, суть претензии
2. t278 58 29.04.25 04:32 Сейчас в теме
как я лет 5 назад хотел такую штуку.
1) Как определяется в каких местах искать картинки ?
2) Возможность уменьшить фото с 3000*2000 пикселей до 300*200 ?
3) Будет ли работать, если УТ 11 запустить в обычных формах ?
6. Baszilio 8 05.05.25 13:34 Сейчас в теме
(2)
А у меня эти вот 5 лет идут сейчас...

1) Однозначно ищет те, что привязаны к номенклатуре через механизм, который был в ОФ, почему и уточнено, что именно для них
2) Конечно! Коль скоро в процентрах можно выразить это (я не стал делать указание непосредственно ширины и высоты в пикселях, посчитав, что это избыточно)
3) Сомневаюсь... см. пункт 1. Я напишу обязательно и для управляемых как расквитаюсь с текущими делами. Если вам кажется, что нужен ещё какой-то функционал, смело пишите
3. V.Nikonov 123 29.04.25 07:57 Сейчас в теме
Вопрос, как избежать многократного сжатия картинки, когда исходная картинка с разрешением 3000х2000 после нескольких сжатий превратится в непотребные 30х20?
7. Baszilio 8 05.05.25 13:41 Сейчас в теме
(3)
Так делайте по шагам, несмотря на соблазн кнопки "ВСЁ!". А так кнопки специально выключаются после каждого цикла выгрузки-преобразования-загрузки.

Конечно это тоже по-своему геморойно, но можно же выгрузить, например, отсортировать по размеру. И те, что самые маленькие на грузить назад. Ну это первое, что приходит в голову.

Мне бы понять контекст вашего вопроса, чтобы дать какие-то рекомендации. В целом мне не сложно доработать, что обработку, что саму сжималку. Скажем выдумать параметр типа размера исключения. Ну, например, если картика меньше такого-то размера по ширине/высоте, то её или копируем в папку с сжатыми или вовсе удаляем, чтобы в момент загрузки исходная в базе не была затёрта. Дайте больше данных, постараюсь что-нибудь придумать.
4. user1401407 05.05.25 10:39 Сейчас в теме
//Пробегаемся в цикле по присоединенным файлам
ШиринаКартинки= 100;
ВысотаКартинки= 100;
Картинка = РаботаСФайлами.ДвоичныеДанныеФайла(РезультатЗапроса.Ссылка);
		
//Иногда возвращаются не общий объект (Картинка), а двоичные данные, по этому идет проверка на тип
Если ТипЗнч(Картинка) = Тип("ДвоичныеДанные") Тогда
	Картинка = Новый Картинка(Картинка);
КонецЕсли;		
		
Если Картинка.Высота() > ВысотаКартинки ИЛИ Картинка.Ширина() > ШиринаКартинки Тогда			
	ОбрабатываемаяКартинка= Новый ОбрабатываемаяКартинка(Картинка);
	ОбрабатываемаяКартинка.УстановитьРазмер(ШиринаКартинки, ВысотаКартинки);
	НоваяКартинка = ОбрабатываемаяКартинка.ПолучитьКартинку();
	ВременноеХранилище = ПоместитьВоВременноеХранилище(НоваяКартинка);
	ИнформацияОФайле = Новый Структура("АдресФайлаВоВременномХранилище, Расширение" ВременноеХранилище, РезультатЗапроса.Расширение);
	РаботаСФайлами.ОбновитьФайл(РезультатЗапроса.Ссылка, ИнформацияОФайле);
КонецЕсли;
Показать
VyacheslavShilov; Baszilio; +2 Ответить
5. user1401407 05.05.25 10:49 Сейчас в теме
(4) Этот метод еще и удаляет кучу метаданных в картинке. Если фото было сделано на телефон, там в метаданных куча инфы. И если задача - освободить память, то можно удалить метаданные без потери качества фото
8. Baszilio 8 05.05.25 13:47 Сейчас в теме
(5) Спасибо за идею. Не вижу только, где работа с изменением сжатия (качества) картинки, ведь не всегда есть необходимость менять размер. Например, если он уже и так достаточно небольшой.

А так в остальном моя сишарповая программка тоже чистит мета данные. В случае если это не жпег, использует и другие варианты уменьшения размера, как то, битность, дизеринг и т.д. Работает с кучкой форматов, не только с жпегом. Так что, можно сказать, что относительно обработки, сама программка на вырост.
unknown181538; +1 Ответить
9. V.Nikonov 123 06.05.25 12:31 Сейчас в теме
(8) Фильтрация нужна. Нужно иметь возможность Корректно и Удобно отбирать Картинки к обработке...
11. Baszilio 8 06.05.25 13:28 Сейчас в теме
(9)
Например как? Все собирать в ТЗ сперва и предлагать выбрать?
10. V.Nikonov 123 06.05.25 12:35 Сейчас в теме
В протоколе, кроме КодаНоменклатуры, не помешало бы Наименование отобразить... П.С. Может Полное Наименование с именами Групп?
Оставьте свое сообщение