|
8.2 Управляемое приложение, тонкий клиент, сохранить двоичные данные на диск | ☑ | ||
---|---|---|---|---|
0
lynx06
01.08.12
✎
06:44
|
Управляемое приложение, тонкий клиент. 8.2
Есть документ, к нему привязан регистр сведений в котором хранятся двоичные данные (файлы картинок). Необходимо при открытии документа сохранить эти данные на клиенте во временный каталог пользователя. Как правильно сделать? Не получается совсем, т.к. с клиента ПриОткрытии документа запускаю процедуру, и она, естесственно сохраняет файлы на сервере :( [code] &НаСервере Процедура СохранитьФайлыВложенийКартинкиВоВременныйКаталог(КаталогВремФайлов) Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Файлы.Ссылка, | Файлы.Наименование, | Файлы.Расширение, | Файлы.Описание, | Файлы.ВладелецФайла |ИЗ | Справочник.ЭлектронноеЗаданиеПрисоединенныеФайлы КАК Файлы |ГДЕ | Файлы.ВладелецФайла = &ВладелецФайла | И (НЕ Файлы.ПометкаУдаления)"; //| И Файлы.Описание ПОДОБНО ""cid"""; Запрос.УстановитьПараметр("ВладелецФайла", Объект.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Если Лев(Выборка.Наименование, 5)="image" Тогда МенеджерЗаписи = РегистрыСведений.ПрисоединенныеФайлы.СоздатьМенеджерЗаписи(); МенеджерЗаписи.ПрисоединенныйФайл = Выборка.Ссылка; МенеджерЗаписи.Прочитать(); ДвоичныеДанные = МенеджерЗаписи.ХранимыйФайл.Получить(); Попытка ПолноеИмяВремФайла = КаталогВремФайлов+Объект.ИдентификаторПочтовойЗаявки+"_"+Выборка.Наименование; ДвоичныеДанные.Записать(ПолноеИмяВремФайла); ВременныеФайлыКартинокДляHTML.Добавить(ПолноеИмяВремФайла, "cid:"+Выборка.Описание); Исключение Сообщить("Не удаётся записать временный файл на диск!!! "+"("+ПолноеИмяВремФайла+")"); КонецПопытки; КонецЕсли; КонецЦикла; [/code] |
|||
1
izekia
01.08.12
✎
06:48
|
ПоместитьВоВременноеХранилище
ПолучитьИзВременногоХранилища |
|||
2
Рэйв
01.08.12
✎
06:49
|
Сделай функцию и возвращай их на клиент в виде списка или тз
|
|||
3
Avalone2010
01.08.12
✎
06:56
|
А вам не кажется странным что сохранение дв данных идет на сервере. Может имеет смысл получить дв данные на сервере, через временное хранилище передать их на клиент и записать уже на клиенте?
|
|||
4
izekia
01.08.12
✎
06:57
|
(3) "А вам не кажется странным что сохранение дв данных идет на сервере."
по-моему автору это и кажется странным) |
|||
5
Avalone2010
01.08.12
✎
07:00
|
(4) читаю между строк, именно эту строку и пропустил :-(
|
|||
6
izekia
01.08.12
✎
07:00
|
(5) да может он уже курит (1), соответственно скоро что-то получится)
|
|||
7
Avalone2010
01.08.12
✎
07:03
|
(6) наверное. С месяц назад то же столкнулся с такой бядой. Только надо было наоборот с клиента не сервер двоичные данные передать(создание документов из текстовых файликов).
|
|||
8
lynx06
01.08.12
✎
07:11
|
То есть надо сделать так:
1 На сервере записать файлы во временное хранилище 2 Вернуть список ссылок временного хранилища на клиент 3 На клиенте сохранить файлы по списку Прокатит? |
|||
9
izekia
01.08.12
✎
07:13
|
да, должно
|
|||
10
lynx06
01.08.12
✎
07:55
|
Спасибо, заработало! Ещё такой вопрос: какое время жизни объектов во временном хранилище?
Если я передаю вторым параметром функции УИД формы, то при её закрытии данные временного хранилища удаляются? Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные, ЭтаФорма.УникальныйИдентификатор); |
|||
11
izekia
01.08.12
✎
07:58
|
(10) да, в сп же четко написано
|
|||
12
lynx06
01.08.12
✎
08:01
|
(11) Были некоторые сомнения в трактовке СП :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |