gifts2017

Загрузка \ Выгрузка изображений (картинок)

Опубликовал Сергей Пономарёв (izidakg) в раздел Администрирование - Системное

Выгрузка картинок из структуры БД
Выгрузка изображений из хранилища
Загрузка по коду изображений в хранилище

Собирал обработку преследуя возможность именно загрузки изображений после выгрузки и обработки. Так уж случилось что подопечные юзеры до встречи со мной просто сканировали и вставляли в БД изображения, каждое из которых было более 3-4 мб. Это привело к тому что БД файловая разрослась до 7 Гб. После выгрузки и сжатия изображений БД уменьшилась до 1 ГБ, далеко до... программу для сжатия использовал: http://sbgames.narod.ru/ собственно сильно не искал, но функционал устроил как меня так и пользователей

Единственно с чем обработка работать не умеет это документы - руки не дошли.

Возможности:

Выгрузка изображений из конфигурации (общих картинок). Имена фалам даются как в структуре.

Выгрузка изображений из хранилища (присоединенные изображения к номенклатуре). Выборка запросом.

При установке флага "выгрузить файлы (изображения)" (режим выгрузки из храниища). Изображения добавенные как файлы (закладка "файлы") и со статусом - файл.  отбор данных ведется поэлементно (не запросом). Причина - если пользователи набили базу большими файлами и их количество достаточно большое, 1С предприятие повиснет или выдаст ошибку по нехватке памяти.

при выгрузке имя файла состоит из идентификатора номенклатуры, по нему и возможна загрузка обратно

формирование имени:

ИмяФайла = Стр.Вид + "_" + Стр.Атрибут + "_" + СтрЗаменить(Эл.Наименование, " ", "_") + "_" + Эл.УникальныйИдентификатор();

пример имени файла: "00000003995&Н&Основное&И&nec серебро". "00000003995" код элемента спр, "Основное" вид изобр спр, "nec серебро" наименование заданное пользователем

также обратно можно загрузить и файлы (только к справочникам)

Скачать файлы

Наименование Файл Версия Размер
Загрузка-выгрузка изображений 111
.epf 8,62Kb
14.04.13
111
.epf 8,62Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Руслан Программист 1с (Mudrii_Gankster) 02.09.13 14:06
Вот ..."Причина - если пользователи набили базу большими файлами и их количество достаточно большое, 1С предприятие повиснет или выдаст ошибку по нехватке памяти."...

Думаю решать проблему нужно пакетно, выгружать большие фотки, сжимать и загружать.

У меня как-то узьвери загрузили базу в 5 000 номенклатурных позиций с фотками по 5мб, обмен через ftp оухл от задачки обмена.
2. Сергей Пономарёв (izidakg) 02.09.13 16:07
а смысл партиями делать?
придется счетчик делать - сколько в партию такую входит изображений и прочие радости контроля в обработку вписывать
данная обработка не для повседневного использования, поэтому вопрос скорости работы не критичен.
да и разница в данной обработке по времени - запрос, поэлементно фактически несущественна.
поэтому данный вариант считаю самым оптимальным: выгрузил все в папку, обработал все оптом (пример чем пользовался уже писал), загрузил обратно
хотя по используемой программе для сжатия как раз и мел счастье пакетной обработки. программа вешалась с объемом всей папки, сжимал по 50-60 файлов за раз. но это этой программой, есть лучше, без этих неудобств, но уже за деньги.
3. Вадим Иванцов (grum01) 03.09.13 09:53
Мы пошли другим путем: храним картинки отдельно в папке. а в базе только пути к этим картинкам.
Причина - картинки нельзя сильно сжимать, т.к. это сертификаты на товар и их нужно периодически печатать в хорошем качестве.
4. Сергей Пономарёв (izidakg) 03.09.13 10:52
тоже вариант
случаи бывают разные и методы решения бывают технически не самые оптимальные, тут основным критерием выступает удобство для пользователя.
хранить изображения в БД или на диске - тут главным критерием идет сколько новых добавляется, могут ли понадобится в будущем.
если все временно и много, то лучше на диске
а размер думаю не существенен, сжатое изображение формата А4 до 400 кб при печати выглядит как очень хорошая ксерокопия. видно и все надписи мелким шрифтом.
задачи печати второго оригинала ведь не стоит
5. y-ha Воронцова (y-ha) 26.10.13 00:49
УТ 11.1.2,при попытке выгрузить изображения из хранилища выдает следующее:
{Форма.Форма.Форма(76)}: Поле объекта не обнаружено (ВидыДополнительнойИнформацииОбъектов)
Запрос.УстановитьПараметр("ВидДанных", Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение);

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

Неплохо бы сделать выбор объекта конфигурации, к которому прикреплены изображения для выгрузки.
6. Надежда (user_2010) 12.05.14 11:20
А как в 1С сделать сжатие картинки перед ее сохранением в базе?
7. Сергей Пономарёв (izidakg) 18.05.14 16:40
так в описании писал что использовал http://sbgames.narod.ru/
программа все содержимое выбранной папки сжимает до нужного состояния и можно грузить в БД
8. Алексей Корзов (Defer4) 21.06.14 13:35
(5) y-ha, подскажите смогли решить проблему с ошибкой в ут 11.1?
9. andrey a (zager) 18.01.15 20:30
(5) y-ha, (8) Defer4,
Присоединяюсь, та же ошибка!
10. Сергей Пономарёв (izidakg) 19.01.15 15:16
(9) zager,
для ут11 ее не готовил. но думаю в недалеком будущем ее модернизирую и для ут11 и розницы
11. Чингис Сультимов (chingis.quiz) 03.07.15 20:38
А выгрузка картинок по документам реализации можно сделать?
12. Сергей Пономарёв (izidakg) 03.07.15 23:05
частично реализовано
руки не доходят свести все сделанное в одну универсальную
планирую в ближайшее время
13. Чингис Сультимов (chingis.quiz) 07.07.15 18:30
14. Вячеслав Сенин (gRenaDeR) 27.04.16 07:18
Приветствую, купил у Вас обработку по выгрузке/загрузке картинок, пришла обработка, но видимо старой версии, т.к при выгрузке не выгружается несколько картинок для одной номенклатуры и выгружаются без уникального идентификатора, как заявлено в описании. Видимо перезаписывается следующая картинка с таким же кодом. Можете выслать актуальную версию, которая соответствует заявленному описанию? почта в ПМ.
Спасибо