01.10.2019 Роман Барабанов 10678
Загрузка прайс-листа. Как изменить размер изо...

Содержание:

1. Внедрение системы унификации

2. Библиотека изображений в 1С  

 

1. Внедрение системы унификации


Загрузка прайс-листов или загрузка каталогов – это извечная проблема для программиста. Каждый такой прайс – это что-то новое. Огромное количество позиций или сложный состав. А как быть, если картинки лежат на хостинге? А что делать, если картинки лежат в папке рядом с экселькой, а дальнейшая загрузка прайса должна будет перекочевать на сайт, где заказчик старательно выбирал шаблон изображений с определенным соотношением сторон для изображений? На самом деле нас больше всего интересует момент, чтобы наши изображения не растягивали фрейм для отображения, да и вес имели не запредельный.


Предположим, что загрузка из 1СXLS у нас уже написана. Нужно внедрить систему унификации в наш код. Благо 1С умеет работать с 1С COM-объектами, а Windows предусмотрительно поставляет со своей системой библиотеку для работы с изображениями. 

 

2. Библиотека изображений в 1С


Библиотека называется ImageFile и ImageProcess, поставляется вместе с окнами начиная с Vista.

Предположим, нам необходимо иметь максимальную высоту фото – 480.

Для начала подключим наш 1С COM-объект вне цикла:

ImageFile = НовыйCOMОбъект("WIA.ImageFile"); //ImageFile

ImageProcess = НовыйCOMОбъект("WIA.ImageProcess"); //ImageProcess

//Создаем новый адрес папки, где будут храниться правильные картинки.

Папка = “/resize”;

Допустим, мы находимся на строке с локальным айпи-адресом к изображению, уже перенесли его в переменную «АдресКартинки», где «АдресКартинки» = “/img/1.jpg”.

ImageFile.LoadFile(АдресДоПапки + АдресКартинки);//АдресДоПапки = C://НаЗагрузку1С

Дальше будем считать и сравнивать:

//Все картинки больше 480 px в ширину мы будем уменьшать.

Если ImageFile.Height>480 Тогда

                        //Узнаем разность, на которую нужно уменьшить ширину.

РатиоРазмеров = ImageFile.Height/480;                

//узнаем ширину

                        КонечнаяШирина = ImageFile.Width /РатиоРазмеров;

                        //создаем фильтр для картинки.

                        ImageProcess.Filters.Add(ImageProcess.FilterInfos("Resize").FilterID) ;

                        ImageProcess.Filters(1).Properties("MaximumWidth").Value   = КонечнаяШирина;

                        ImageProcess.Filters(1).Properties("MaximumHeight").Value = 480;

                        //Применяем фильтр.

ImageFile = objImageProcess.Apply(ImageFile);

objImageFile.SaveFile(АдресДоПапки + Папка + АдресКартинки);

//Загружаем в базу данных картинки.

Иначе

//Загружаем исходное изображение.

КонецЕсли;

Эти библиотеки изображений очень удобные для работы. Естественно, можно усложнить данный код, можно качать изображения из интернета и сразу переделывать их в необходимый размер.


                        Специалист компании ООО «Кодерлайн» 

Роман Барабанов.

Наши проекты

ООО “РТИТС”
ООО “РТИТС”

Отрасль:
Транспортные системы

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Блок регламентированного кадрового учета и расчета заработной платы в 1С:ERP;...

Доработка конфигурации Заказчика «1С:Управление строительной организацией»
ЗАО «Стройтрансгаз»

Отрасль:
Проектирование

Внедренное типовое решение:
1С:Управление строительной организацией

Взаиморасчеты с поставщиками;
- Оформление заказов поставщикам;
- Склад ...

Автоматизация системы учета продаж газа на базе «1С:ERP Управление предприятием 2.0»
ООО «Эйр Продактс Газ»

Отрасль:
Производство промышленных газов

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Расчеты с контрагентами;
- Производственные операции;
- Управление скла...

СТС-Медиа
СТС-Медиа

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление холдингом

- Бухгалтерский учет;
- Налоговый учет;
- МСФО (GAAP/управленческий учет);
- ...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Управление холдингом 8

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

 ЗАО "Инвестгеосервис" -ДО
ЗАО «Инвестгеосервис»

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Работа с файлами;
- Делопроизводство;
- Процессы движения документов; ...

ООО «Еврорадиаторы»
ООО «Еврорадиаторы»

Отрасль:
1С:ERP 2.4

Внедренное типовое решение:

Специалисты «Кодерлайн» помогли перенести базу из текущей системы «1С:ERP 2.2» ...

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

Кадровый учет;
Расчет зарплаты;...

МГК "Световые Технологии"
МГК "Световые Технологии"

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты "Кодерлайн" произвели доработки в системе 1С:ЕРП 2.4 с учетом треб...

ПЭК
ПЭК

Отрасль:
Грузоперевозки

Внедренное типовое решение:
1С:Зарплата и управление персоналом

- Перевод зарплатных баз с версии ЗУП 2.5 на версию ЗУП 3.1.
- Сопровождение в п...

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение