Администрирование · 11 мин
Как уменьшить картинку в 1С: практические способы сжатия изображений
Как уменьшить картинку в 1С: сжатие фото номенклатуры, изменение размера через обработку, настройки и код. Уменьшение базы и ускорение работы с изображениями.
Фотографии товаров, сканы документов и картинки в справочниках со временем делают базу 1С тяжёлой: растёт размер файловой базы, увеличивается время резервного копирования, медленнее открываются карточки номенклатуры. Уменьшение картинок — изменение разрешения и степени сжатия изображений — решает эту проблему без потери прикладного смысла картинок.
Под «уменьшить картинку» пользователи обычно понимают три разные задачи: уменьшить размер файла изображения перед загрузкой в 1С, уменьшить уже хранящиеся в базе картинки массово и уменьшить отображаемый размер картинки в форме или печатной форме. Каждая задача решается своим инструментом, и важно не перепутать подходы.
Ниже разобраны рабочие способы для типовых конфигураций (Управление торговлей, ERP, Комплексная автоматизация, Бухгалтерия), а также вариант с программной обработкой через встроенный язык для нестандартных случаев.
Зачем уменьшать картинки и какой размер считать нормальным
Фотография с телефона весит 3–8 МБ при разрешении 4000×3000 пикселей. Для карточки товара в 1С такой размер избыточен: на экране и в печатной форме картинка выводится максимум на несколько сантиметров. Хранение тысяч таких фото раздувает базу на десятки гигабайт.
Практический ориентир для изображений номенклатуры: 800–1200 пикселей по длинной стороне, формат JPEG, итоговый вес файла 100–300 КБ. Этого достаточно для просмотра карточки, публикации на сайте и печати прайса. Для сканов документов, где важна читаемость мелкого текста, разрешение держат выше — около 1500–2000 пикселей по длинной стороне.
Признаки того, что картинки пора уменьшать: база растёт быстрее, чем добавляются документы; карточка товара с фото открывается заметно дольше остальных; резервная копия перестала помещаться на привычный носитель; обмен с сайтом отваливается по таймауту на передаче изображений.
Сохраните картинку из карточки на диск и посмотрите вес файла
Для экрана достаточно 800–1200 px по длинной стороне
Проверьте объём справочника хранения файлов
Сжимайте картинки перед выгрузкой
Способ 1. Уменьшить картинку перед загрузкой в 1С
Самый простой и безопасный путь — подготовить изображение до того, как оно попадёт в базу. Подходит, когда картинок немного или когда настроен регламент: менеджер обязан загружать фото определённого размера.
В Windows достаточно стандартного Paint: откройте файл, нажмите «Изменить размер», задайте процент (например, 25–30%) или точные пиксели, сохраните как JPEG. При сохранении Paint не показывает ползунок качества, но для умеренного сжатия его достаточно. Для пакетной обработки удобнее бесплатные программы с функцией конвертации папки целиком.
Онлайн-сервисы сжатия подходят для разовых задач, но не используйте их для изображений, содержащих персональные данные или коммерческую тайну: файл уходит на чужой сервер, и вы не контролируете его дальнейшую судьбу.
- 1Откройте изображение в Paint через контекстное меню «Открыть с помощью»
- 2Нажмите «Изменить размер» и выберите режим в пикселях
- 3Установите горизонтальный размер 1000–1200 с сохранением пропорций
- 4Сохраните файл как JPEG с новым именем
- 5Проверьте вес результата — цель 100–300 КБ
- 6Загрузите уменьшенный файл в карточку 1С
Способ 2. Типовые механизмы сжатия в конфигурации
В конфигурациях на Библиотеке стандартных подсистем (УТ 11, ERP, КА, БП 3.0) картинки хранятся как присоединенные файлы. Типовой функционал не всегда сжимает изображения автоматически, но в ряде конфигураций есть настройки, влияющие на размер загружаемых картинок, а также обработки очистки и сжатия файлов.
Проверьте раздел администрирования, связанный с файлами и обменом с сайтом: в настройках обмена с интернет-магазином часто есть параметр масштабирования изображений при выгрузке. Это не уменьшает картинку в базе, но решает задачу тяжёлой выгрузки на сайт.
Если типовых настроек недостаточно, используют внешние обработки массового сжатия присоединенных файлов. Их принцип: обработка перебирает файлы изображений в базе, уменьшает разрешение до заданного, пересохраняет и замещает исходный файл. Перед запуском такой обработки обязательно сделайте резервную копию базы — замещение файлов необратимо.
Способ 3. Программное уменьшение через встроенный язык
Для разработчиков и продвинутых администраторов доступен программный путь. В платформе есть объект ОбрабатываемаяКартинка (в новых версиях — средства работы с картинками через ОбработкаКартинок), который позволяет изменить размер и формат изображения, а также объект Картинка для чтения и записи.
Общий алгоритм: получить двоичные данные присоединенного файла, создать объект картинки, применить преобразование размера, сохранить результат во временный файл и записать обратно в хранилище. Ниже упрощённый пример логики.
ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("jpg");
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(ИмяВременногоФайла);
ОбрабатываемаяКартинка.УстановитьРазмер(1024, 768);
ОбрабатываемаяКартинка.Конвертировать(ФорматКартинки.JPEG);
ОбрабатываемаяКартинка.Записать(ИмяВременногоФайла);
НовыеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
// далее — запись НовыеДанные обратно в присоединенный файл
УдалитьФайлы(ИмяВременногоФайла);
Нюансы: методы и их названия зависят от версии платформы, поэтому сверяйтесь с синтакс-помощником вашей версии. Пропорции при изменении размера сохраняйте вручную — вычисляйте вторую сторону из исходного соотношения сторон, иначе картинки получатся сплющенными. Запускайте обработку в монопольном режиме или вне рабочего времени при больших объёмах.
ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(ИмяФайла);
ОбрабатываемаяКартинка.УстановитьРазмер(1024, 768);
ОбрабатываемаяКартинка.Конвертировать(ФорматКартинки.JPEG);
ОбрабатываемаяКартинка.Записать(ИмяФайлаРезультата);Уменьшение отображаемого размера в формах и печати
Иногда задача обратная: файл в базе пусть остаётся большим, а вот на печатной форме или в форме картинка должна занимать меньше места. Это решается настройкой отображения, а не сжатием файла.
В печатной форме (макет табличного документа) размер картинки задаётся размером области-рисунка: выделите рисунок в макете и измените его ширину и высоту в свойствах. В управляемых формах размер элемента «Поле картинки» настраивается в конфигураторе или программно; свойство «Размер картинки» определяет, как изображение вписывается в отведённую область (пропорционально, с растяжением и т.д.).
Важно понимать разницу: уменьшение отображения не ускоряет открытие карточки и не экономит место в базе — файл передаётся целиком. Если проблема именно в весе базы, сжимать нужно сам файл.
Сравнение подходов
Просто и безопасно, но работает только для новых картинок
Решает проблему накопленного архива, требует резервной копии и теста
Гибко и автоматизируется, нужны навыки разработки и тестирование
Меняет только внешний вид, вес базы не уменьшает
Типичные ошибки и как их избежать
Частая ошибка — сжимать картинки до слишком малого разрешения. Фото 300×200 пикселей приемлемо для списка, но на печати и при увеличении превращается в мозаику. Закладывайте запас: 1000–1200 пикселей покрывает большинство сценариев.
Вторая ошибка — конвертация всего в PNG. PNG отлично хранит схемы и скриншоты, но фотографии в PNG весят в разы больше, чем в JPEG. Для фото товаров используйте JPEG, для логотипов и схем с прозрачностью — PNG.
Третья ошибка — запуск массовой обработки без копии и без проверки на малой выборке. Если обработка содержит ошибку в расчёте пропорций или формата, вы можете испортить тысячи изображений за один проход.
Как проверить результат после сжатия
После обработки проверьте три вещи: вес файлов, визуальное качество и работоспособность связанных механизмов. Откройте несколько карточек с уменьшенными картинками, распечатайте прайс или каталог, выполните тестовый обмен с сайтом, если он настроен.
Для файловой базы можно оценить эффект по размеру файла 1Cv8.1CD до и после сжатия с учётом того, что место освобождается полностью после тестирования и исправления или сжатия таблиц. В клиент-серверном варианте ориентируйтесь на размер таблиц хранения файлов через средства СУБД.
Как проверить результат
100–300 КБ для фото товара
Больше 1 МБ или меньше 30 КБ с потерей качества
Изображение чёткое, пропорции сохранены
Растянуто, сплющено, видны квадраты сжатия
Выгрузка проходит без таймаутов
Ошибки передачи изображений
Заметно быстрее, чем до сжатия
Скорость не изменилась — сжатие не сработало
Часто задаваемые вопросы
Уменьшится ли база сразу после сжатия картинок?
Не всегда. В файловой базе освобождённое место внутри файла 1Cv8.1CD может остаться зарезервированным; для фактического уменьшения файла выполните тестирование и исправление с включённым сжатием таблиц. В клиент-серверном варианте аналогичную роль играют средства обслуживания СУБД.
Какой формат выбрать для фото товаров?
JPEG — оптимален для фотографий: хорошее качество при малом весе. PNG оставьте для логотипов, схем и изображений с прозрачным фоном. BMP и TIFF в базе держать не стоит — они несжатые и очень тяжёлые.
Можно ли сжимать картинки автоматически при загрузке?
Да, но это требует доработки: в обработчике записи присоединенного файла добавляют программное уменьшение изображения до заданного размера. В некоторых отраслевых решениях и расширениях такой механизм уже есть — проверьте настройки вашей конфигурации до собственной разработки.
Что делать, если после сжатия картинки стали размытыми?
Значит, степень сжатия или уменьшение разрешения были чрезмерными. Если резервная копия есть, восстановите исходники и повторите с менее агрессивными параметрами: разрешение 1000–1200 px и качество JPEG около 80%. Без копии восстановить исходное качество невозможно.
Влияет ли сжатие картинок на обмен с сайтом?
Да, положительно: меньшие файлы передаются быстрее и реже вызывают таймауты. Но проверьте требования сайта к минимальному разрешению изображений — некоторые CMS отклоняют слишком маленькие картинки или сами дожимают их при импорте.
Где в 1С хранятся картинки номенклатуры?
В типовых конфигурациях на БСП — как присоединенные файлы в специализированных справочниках хранения (например, «НоменклатураПрисоединенныеФайлы»), а сами двоичные данные — в информационной базе или в томах на диске, если включено хранение в томах. Прямое редактирование этих таблиц вручную не рекомендуется.
Что важно запомнить
Новые картинки сжимайте до загрузки в 1С (800–1200 px, JPEG), накопленные — массовой обработкой или программно, обязательно после резервного копирования и теста на малой выборке. Различайте сжатие файла и уменьшение отображения: только первое экономит место и ускоряет работу. После обработки проверьте вес файлов, качество изображений и обмен с сайтом.