Подскажите, возможно кто-то встречался. Нужно изменять размер изображения при выводе на печать. На макете объект Картинка, туда выводится основное изображение номенклатуры из базы , т.е.
ОбластьМакета.Рисунки.РисунокНоменклатуры.Картинка = Номенклатура.ОсновноеИзображение.Хранилище.Получить();
Номенклатура.ОсновноеИзображение.Хранилище.Получить();
можно ж уменьшенные копии хранить в базе.
если отсутствует при печати - генерировать и добавлять в базу.
а при изменении основного изображения удалять автоматом.
--
А еще пдф принтеры умеют сжимать картинки в файле.
+ТС у меня наблюдается проблема когда количество картинок в документе > 1000. Картинки маленькие. Но на последних начинает выводить пустые картинки. Беда просто
Fabri, считается, можно сказать, стандартным решением, когда картинки хранятся не непосредственно в базе, а хранятся где-то отдельно в файловом хранилище. Это решает те проблемы, которые вы озвучиваете.
Vofka, я это понимаю, но сейчас уже менять что-то не очень хочется...
На Вашем месте я бы все таки прислушался к советам Vofka...
Ок. В типовой конфигурации УТ 2.3 для Украины присоединенные файлы хранятся в базе данных. Если есть мануал, описание или другая информация по переносу прикрепленных файлов на диск, буду рад получить ссылку. Спасибо.
Самое главное чтобы это было "безболезненно" и в дальнейшем файлы выгружались с 1С на сайт и т.д.
Fabri, какой мануал? Пишете обработку, которая обходит справочник номенклатуры, смотрит есть ли там картинка, если есть - ложит её куда-то и из справочника удаляет. После этого (или перед этим) дорабатываете формы, где используется показ картинки, чтобы картинка бралась не из справочника, а откуда-то и показывалась. Вот это куда-то - это будет, например, какая-то константа в которой будет храниться путь каталогу картинок.
Это конечно не вопрос сделать, но вот если бы только переписать код на формах где выводятся изображения. Тут ещё прийдется и обработку ОбменССайтом менять, искать и т.д.
Хотя если канеш база начнет "тупить" до невозможности, то прийдется так сделать, а если чисто для того, что я писал выше, из-за чего начинал данную тему, то мне проще уже будет -
Если кому-то интересно, расскажу как решил данную задачу.
Для изменения размера изображения использовал ActiveX-библиотеку GflAx.
Получается немного через ж.., но все ж работает.
Код:
Картинка = Новый Картинка;
Картинка = ТекущаяСтрока.Номенклатура.ОсновноеИзображение.Хранилище.Получить();
ИмяВременногоФайла = Строка("c:\temp\" + ТекущаяСтрока.Номенклатура.УникальныйИдентификатор() + ".jpg");
Картинка.Записать(ИмяВременногоФайла);
Объект = Новый COMОбъект("GFLAX.GFLAX");
Объект.LoadBitmap(ИмяВременногоФайла);
Объект.Resize(200,200);
Объект.SaveBitmap(ИмяВременногоФайла);
Картинка = Новый Картинка(ИмяВременногоФайла);
УдалитьФайлы(ИмяВременногоФайла);
ОбластьКаталога.Рисунки.Рисунок.Картинка = Картинка;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua