К статье
Практический материал

Администрирование · 11 мин

Как уменьшить картинку в 1С: практические способы сжатия изображений

Как уменьшить картинку в 1С: сжатие фото номенклатуры, изменение размера через обработку, настройки и код. Уменьшение базы и ускорение работы с изображениями.

Фотографии товаров, сканы документов и картинки в справочниках со временем делают базу 1С тяжёлой: растёт размер файловой базы, увеличивается время резервного копирования, медленнее открываются карточки номенклатуры. Уменьшение картинок — изменение разрешения и степени сжатия изображений — решает эту проблему без потери прикладного смысла картинок.

Под «уменьшить картинку» пользователи обычно понимают три разные задачи: уменьшить размер файла изображения перед загрузкой в 1С, уменьшить уже хранящиеся в базе картинки массово и уменьшить отображаемый размер картинки в форме или печатной форме. Каждая задача решается своим инструментом, и важно не перепутать подходы.

Ниже разобраны рабочие способы для типовых конфигураций (Управление торговлей, ERP, Комплексная автоматизация, Бухгалтерия), а также вариант с программной обработкой через встроенный язык для нестандартных случаев.

Зачем уменьшать картинки и какой размер считать нормальным

Фотография с телефона весит 3–8 МБ при разрешении 4000×3000 пикселей. Для карточки товара в 1С такой размер избыточен: на экране и в печатной форме картинка выводится максимум на несколько сантиметров. Хранение тысяч таких фото раздувает базу на десятки гигабайт.

Практический ориентир для изображений номенклатуры: 800–1200 пикселей по длинной стороне, формат JPEG, итоговый вес файла 100–300 КБ. Этого достаточно для просмотра карточки, публикации на сайте и печати прайса. Для сканов документов, где важна читаемость мелкого текста, разрешение держат выше — около 1500–2000 пикселей по длинной стороне.

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

Карточка товара открывается 3–5 секундВероятно тяжёлые изображения

Сохраните картинку из карточки на диск и посмотрите вес файла

Одно фото весит больше 1 МБИзбыточное разрешение

Для экрана достаточно 800–1200 px по длинной стороне

База выросла на гигабайты без роста документовНакопились картинки и присоединенные файлы

Проверьте объём справочника хранения файлов

Обмен с сайтом падает по таймаутуБольшие пакеты изображений

Сжимайте картинки перед выгрузкой

Способ 1. Уменьшить картинку перед загрузкой в 1С

Самый простой и безопасный путь — подготовить изображение до того, как оно попадёт в базу. Подходит, когда картинок немного или когда настроен регламент: менеджер обязан загружать фото определённого размера.

В Windows достаточно стандартного Paint: откройте файл, нажмите «Изменить размер», задайте процент (например, 25–30%) или точные пиксели, сохраните как JPEG. При сохранении Paint не показывает ползунок качества, но для умеренного сжатия его достаточно. Для пакетной обработки удобнее бесплатные программы с функцией конвертации папки целиком.

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

Подготовка картинки в Paint
  1. 1
    Откройте изображение в Paint через контекстное меню «Открыть с помощью»
  2. 2
    Нажмите «Изменить размер» и выберите режим в пикселях
  3. 3
    Установите горизонтальный размер 1000–1200 с сохранением пропорций
  4. 4
    Сохраните файл как JPEG с новым именем
  5. 5
    Проверьте вес результата — цель 100–300 КБ
  6. 6
    Загрузите уменьшенный файл в карточку 1С

Способ 2. Типовые механизмы сжатия в конфигурации

В конфигурациях на Библиотеке стандартных подсистем (УТ 11, ERP, КА, БП 3.0) картинки хранятся как присоединенные файлы. Типовой функционал не всегда сжимает изображения автоматически, но в ряде конфигураций есть настройки, влияющие на размер загружаемых картинок, а также обработки очистки и сжатия файлов.

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

Если типовых настроек недостаточно, используют внешние обработки массового сжатия присоединенных файлов. Их принцип: обработка перебирает файлы изображений в базе, уменьшает разрешение до заданного, пересохраняет и замещает исходный файл. Перед запуском такой обработки обязательно сделайте резервную копию базы — замещение файлов необратимо.

Способ 3. Программное уменьшение через встроенный язык

Для разработчиков и продвинутых администраторов доступен программный путь. В платформе есть объект ОбрабатываемаяКартинка (в новых версиях — средства работы с картинками через ОбработкаКартинок), который позволяет изменить размер и формат изображения, а также объект Картинка для чтения и записи.

Общий алгоритм: получить двоичные данные присоединенного файла, создать объект картинки, применить преобразование размера, сохранить результат во временный файл и записать обратно в хранилище. Ниже упрощённый пример логики.

ДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(ПрисоединенныйФайл);

ИмяВременногоФайла = ПолучитьИмяВременногоФайла("jpg");

ДвоичныеДанные.Записать(ИмяВременногоФайла);

ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(ИмяВременногоФайла);

ОбрабатываемаяКартинка.УстановитьРазмер(1024, 768);

ОбрабатываемаяКартинка.Конвертировать(ФорматКартинки.JPEG);

ОбрабатываемаяКартинка.Записать(ИмяВременногоФайла);

НовыеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);

// далее — запись НовыеДанные обратно в присоединенный файл

УдалитьФайлы(ИмяВременногоФайла);

Нюансы: методы и их названия зависят от версии платформы, поэтому сверяйтесь с синтакс-помощником вашей версии. Пропорции при изменении размера сохраняйте вручную — вычисляйте вторую сторону из исходного соотношения сторон, иначе картинки получатся сплющенными. Запускайте обработку в монопольном режиме или вне рабочего времени при больших объёмах.

bsl
ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(ИмяФайла);
ОбрабатываемаяКартинка.УстановитьРазмер(1024, 768);
ОбрабатываемаяКартинка.Конвертировать(ФорматКартинки.JPEG);
ОбрабатываемаяКартинка.Записать(ИмяФайлаРезультата);

Уменьшение отображаемого размера в формах и печати

Иногда задача обратная: файл в базе пусть остаётся большим, а вот на печатной форме или в форме картинка должна занимать меньше места. Это решается настройкой отображения, а не сжатием файла.

В печатной форме (макет табличного документа) размер картинки задаётся размером области-рисунка: выделите рисунок в макете и измените его ширину и высоту в свойствах. В управляемых формах размер элемента «Поле картинки» настраивается в конфигураторе или программно; свойство «Размер картинки» определяет, как изображение вписывается в отведённую область (пропорционально, с растяжением и т.д.).

Важно понимать разницу: уменьшение отображения не ускоряет открытие карточки и не экономит место в базе — файл передаётся целиком. Если проблема именно в весе базы, сжимать нужно сам файл.

Сравнение подходов

Сжатие файла до загрузки

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

Обработка массового сжатия

Решает проблему накопленного архива, требует резервной копии и теста

Программное уменьшение

Гибко и автоматизируется, нужны навыки разработки и тестирование

Настройка отображения

Меняет только внешний вид, вес базы не уменьшает

Типичные ошибки и как их избежать

Частая ошибка — сжимать картинки до слишком малого разрешения. Фото 300×200 пикселей приемлемо для списка, но на печати и при увеличении превращается в мозаику. Закладывайте запас: 1000–1200 пикселей покрывает большинство сценариев.

Вторая ошибка — конвертация всего в PNG. PNG отлично хранит схемы и скриншоты, но фотографии в PNG весят в разы больше, чем в JPEG. Для фото товаров используйте JPEG, для логотипов и схем с прозрачностью — PNG.

Третья ошибка — запуск массовой обработки без копии и без проверки на малой выборке. Если обработка содержит ошибку в расчёте пропорций или формата, вы можете испортить тысячи изображений за один проход.

Типичные ошибки
01
Сжатие до 300–400 px — картинка нечитаема при печати и увеличении
02
Фото в PNG — файл в 3–5 раз тяжелее аналогичного JPEG
03
Массовая обработка без резервной копии — необратимая порча архива изображений
04
Изменение размера без сохранения пропорций — сплющенные картинки
05
Уменьшение только отображения — вес базы и скорость не меняются

Как проверить результат после сжатия

После обработки проверьте три вещи: вес файлов, визуальное качество и работоспособность связанных механизмов. Откройте несколько карточек с уменьшенными картинками, распечатайте прайс или каталог, выполните тестовый обмен с сайтом, если он настроен.

Для файловой базы можно оценить эффект по размеру файла 1Cv8.1CD до и после сжатия с учётом того, что место освобождается полностью после тестирования и исправления или сжатия таблиц. В клиент-серверном варианте ориентируйтесь на размер таблиц хранения файлов через средства СУБД.

Контрольные точки

Как проверить результат

Вес уменьшенной картинки
Норма

100–300 КБ для фото товара

Тревожный признак

Больше 1 МБ или меньше 30 КБ с потерей качества

Внешний вид в карточке и на печати
Норма

Изображение чёткое, пропорции сохранены

Тревожный признак

Растянуто, сплющено, видны квадраты сжатия

Обмен с сайтом
Норма

Выгрузка проходит без таймаутов

Тревожный признак

Ошибки передачи изображений

Открытие карточек
Норма

Заметно быстрее, чем до сжатия

Тревожный признак

Скорость не изменилась — сжатие не сработало

Часто задаваемые вопросы

Уменьшится ли база сразу после сжатия картинок?

Не всегда. В файловой базе освобождённое место внутри файла 1Cv8.1CD может остаться зарезервированным; для фактического уменьшения файла выполните тестирование и исправление с включённым сжатием таблиц. В клиент-серверном варианте аналогичную роль играют средства обслуживания СУБД.

Какой формат выбрать для фото товаров?

JPEG — оптимален для фотографий: хорошее качество при малом весе. PNG оставьте для логотипов, схем и изображений с прозрачным фоном. BMP и TIFF в базе держать не стоит — они несжатые и очень тяжёлые.

Можно ли сжимать картинки автоматически при загрузке?

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

Что делать, если после сжатия картинки стали размытыми?

Значит, степень сжатия или уменьшение разрешения были чрезмерными. Если резервная копия есть, восстановите исходники и повторите с менее агрессивными параметрами: разрешение 1000–1200 px и качество JPEG около 80%. Без копии восстановить исходное качество невозможно.

Влияет ли сжатие картинок на обмен с сайтом?

Да, положительно: меньшие файлы передаются быстрее и реже вызывают таймауты. Но проверьте требования сайта к минимальному разрешению изображений — некоторые CMS отклоняют слишком маленькие картинки или сами дожимают их при импорте.

Где в 1С хранятся картинки номенклатуры?

В типовых конфигурациях на БСП — как присоединенные файлы в специализированных справочниках хранения (например, «НоменклатураПрисоединенныеФайлы»), а сами двоичные данные — в информационной базе или в томах на диске, если включено хранение в томах. Прямое редактирование этих таблиц вручную не рекомендуется.

Итог

Что важно запомнить

Новые картинки сжимайте до загрузки в 1С (800–1200 px, JPEG), накопленные — массовой обработкой или программно, обязательно после резервного копирования и теста на малой выборке. Различайте сжатие файла и уменьшение отображения: только первое экономит место и ускоряет работу. После обработки проверьте вес файлов, качество изображений и обмен с сайтом.