|
Экспорт изображений в Excel | ☑ | ||
---|---|---|---|---|
0
Вельможа
09.04.19
✎
17:11
|
Здравствуйте!
Ситуация. УТ 11.4 УФ. Выгружаю данные в Excel-файл внешней обработкой. Алгоритм действий такой: - Пользователь в форме обработки выбрал, что хочет отправить в Excel, - на сервере запросом получаю всю нужную информацию, включая картинки товаров, то есть, изображения номенклатуры. Картинки получаю в виде двоичных данных так: СтрокаТЗ.Фото = ПрисоединенныеФайлы.ПолучитьДвоичныеДанныеФайла(Выборка.Номенклатура.ФайлКартинки); Все результаты запроса пихаю в таблицу значений, - таблицу значений с результатами запроса (некоторые поля номенклатуры, включая фото) возвращаю на клиент в виде массива структур с именем Товары, - на клиенте уже перебором всех элементов массива все сохраняю в файл Excel через COMОбъект("Excel.Application"), в том числе и изображения. Вот тут подробнее. Изображение сначала из двоичного вида сохраняю в файл на диск Товары[Счетчик].Фото.Записать("C:\filename.jpg"); (Фото - ключ структуры, в котором лежат двоичные данные изображения) Потом этот сохраненный файл пихаю в Excel Лист.Shapes.AddPicture("C:\filenamee.jpg", 0, 1, -1, -1, -1, -1).Select(); Там попутно навожу нормальный вид и все такое. Ну и потом удаляю этот файл изображения с диска. И вот на это немало времени уходит, на сохранение на диск, потом на удаление. Можно ли как-то сразу пихать изображение в Excel, не прибегая к сохранению на диск в виде файла? Может, не в виде бинарных данных вообще нужно получать файл, а в каком ином виде для этого? Хотелось бы более оперативно получать результат, поэтому и пытаюсь добавлять изображения в Excel без сохранения их на диск. |
|||
1
dezss
09.04.19
✎
17:16
|
А почему не используешь ТабличныйДокумент?
Его можно в xls, xlsx сохранять? |
|||
2
Вельможа
09.04.19
✎
17:20
|
(1), вообще, потому что изначально есть обработка для обычных форм, которая работает именно так. А так как контора переходит на УТ11 с УТ10, то пока самый простой путь - это переписать все старые обработки под УФ.
Хотя вариант с ТабличнымДокументом тоже можно рассмотреть. А в нем можно делать плюсики/минусики как в Excel для разворачивания/сворачивания? На манер того, как в конфигураторе можно процедуры и функции сворачивать? |
|||
3
sqr4
09.04.19
✎
17:33
|
(2) НАчатьАвтогруппировкуСтрок
|
|||
4
sqr4
09.04.19
✎
17:33
|
Но можно много багов наловить в момент сохранения ТД в эксель.
|
|||
5
Вафель
09.04.19
✎
17:49
|
(2) делай у файло временное имя через ПолучитьИмяВременногоФайла.
1с сама потом все удалит |
|||
6
Вельможа
09.04.19
✎
17:54
|
(5), удаление файла - не основная трата времени. Основное время тратится на сохранение файла изображения на диск.
|
|||
7
sqr4
09.04.19
✎
17:55
|
(6) можно пересмотреть вариант хранения файлов не в базе, а на диске
|
|||
8
Вельможа
09.04.19
✎
18:02
|
(7), как совсем альтернативный вариант. Ну, можно. Хотя, думаю, более целесообразней попробовать все переписать на работу с ТабличнымДокументом.
|
|||
9
Вельможа
09.04.19
✎
18:03
|
Сейчас проверил. Без сохранения картинок на диск (и стало быть без их экспорта в excel) в 2,5 раза быстрей все работает.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |