Привет всем!
У меня КА 2.4 обработкой создаю табличную часть и сохраняю в EXCEL(прайс лист с фото)
Проблема в том, что фотки в 1С по 1,5 МБ, позиций в прайсе 100 с лишним, и когда фото в макет вставляю, делаю масштаб под ячейку:

```1c
    ДанныеФайла = РаботаСФайламиСлужебныйВызовСервера.ДанныеФайла(Выборка.ОсновноеИзображение);
    АдресФотографии = ДанныеФайла.СсылкаНаДвоичныеДанныеФайла;
    Данные = ПолучитьИзВременногоХранилища(АдресФотографии);
    ОблСтроки.Рисунки.Фото.Картинка = Новый Картинка(Данные);
    ОблСтроки.Рисунки.Фото.РазмерКартинки = РазмерКартинки.АвтоРазмер
```

так вот файл весит 200 с лишним МБ, очень тяжелый.
Как мне уменьшить вес картинки средствам 1С на Сервере, так как у меня обработка работает в фоне по регламенту, база SQL, SQL сервер на линуксе, виндовые DLL не пойдут.
---
Так уменьшайте не в базе, а кодом
Вместо

```1c
    ОблСтроки.Рисунки.Фото.Картинка = Новый Картинка(Данные);
```

Делайте

```1c
    Картинка = Новый Картинка(Данные);
    ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(Картинка);
    ОбрабатываемаяКартинка.Масштабировать(50);
    МаленькаяКартинка = ОбрабатываемаяКартинка.ПолучитьКартинку();

    ОблСтроки.Рисунки.Фото.Картинка = МаленькаяКартинка;
```

P.S. Коэффициент внутри Масштабировать() сами определите какой нужно, число больше 0, в процентах от размера первоначального.
---
При экспорте табличного документа в различные форматы реализована возможность управлять качеством картинок, которые размещены в экспортируемом табличном документе.
Для табличного документа реализовано свойство ПлотностьСохраняемыхКартинок. Для списка параметров вывода компоновки данных (тип ЗначенияПараметровВыводаКомпоновкиДанных) реализован параметр ПлотностьСохраняемыхКартинок. Реализован объект МакетДокументаОбластиКомпоновкиДанных.
 в 8.3.22
---
а что мешает сделать батник который будет ресайзить картинки из одной папки в другую, тож по расписанию?

ну а 1С будет брать файлики уже из второй папки, а не из первой...
---
Для преобразования форматов изображений в Linux используется утилита Convert от ImageMagick
---
во времена, когда w31 (не w311) запускали только что бы пасьянс разложить,
помню была консольная утилита "picem.exe", удобная штука была...
для пакетной обработки картинок...

тогда многие удивлялись, как у меня получается картинки сжимать ("архивировать")
---
у меня фотки беруться из Номенклатура.ФайлКартинки Основное изображение. запросом на сервере...
 никак не могу достучаться до локального диска...
---
никак не могу достучаться до локального диска... Ну, а если переделать решение из (5) чтобы оно не обращалось к файловой системе, а работало через ДвоичныеДанные? Наверняка ведь там чтение/запись файлов именно так производятся, не?
---
convert -resize 50% image.png image.bmp # уменьшить вдвое
convert -resize 620x480 image.png image.bmp # размер в px
---
(6) тут средствами 1С надо как то сделать, что бы не затрагивать других приложений
---
а в языке 1с нет такой команды - запуск других приложений :) ?
или что-нибудь в этом роде ( запуск приложения по адресу ....)

а виртуалка - так себе вариант.
---
Я решение прошу а не выяснения правильности трактовки...

А виртуалка не моя компетенция почему так сделали... у меня есть задача, я ищу решение... переделывать сервер никто не будет)
---
ок :)
---
https://infostart.ru/public/1207348/
ответ здесь
---
клиент-сервер ?
---
да SQL который находиться на виртуалке)
---
Там сама суть. Ниже подробно расписал, коллега.
---
я сжать не могу, так как эти все фотки выгружаются на сайт 1С Битрикс а если уменьшать, то все фотки на сайте качество потеряют
---
Так уменьшайте не в базе, а кодом
Вместо

```1c
    ОблСтроки.Рисунки.Фото.Картинка = Новый Картинка(Данные);
```

Делайте

```1c
    Картинка = Новый Картинка(Данные);
    ОбрабатываемаяКартинка = Новый ОбрабатываемаяКартинка(Картинка);
    ОбрабатываемаяКартинка.Масштабировать(50);
    МаленькаяКартинка = ОбрабатываемаяКартинка.ПолучитьКартинку();

    ОблСтроки.Рисунки.Фото.Картинка = МаленькаяКартинка;
```

P.S. Коэффициент внутри Масштабировать() сами определите какой нужно, число больше 0, в процентах от размера первоначального.
---
Спасибо) то что нужно
Только когда фотка обычная не большая, она тоже уменьшается
---
У картинки есть метод РазмерФайла(), возвращает размер в байтах, можно им проверять, и, если размер больше какого-то значения, масштабировать.