|
прочитать на клиенте файл из сервера | ☑ | ||
---|---|---|---|---|
0
orda
15.02.14
✎
20:25
|
Чет не пойму, можно ли с клиента прочитать файл, лежащий на сервере в обычной (незашаренной)папке. Если можно то как?
|
|||
1
ДенисЧ
15.02.14
✎
20:27
|
Прочитать на сервере, отдать через временное хранилище на клиента
|
|||
2
orda
15.02.14
✎
20:28
|
Прочитать на сервере как?
|
|||
3
orda
15.02.14
✎
20:39
|
?
|
|||
4
alexei366
15.02.14
✎
20:58
|
(3) Ух тяжелый случай.
Давай так, ты это где хош сделать, я как подозреваю это действие какойто кнопки на форме? |
|||
5
orda
15.02.14
✎
21:43
|
(4) Хочу сделать из модуля со свойством "сервер" (обработка какого-либо события)
|
|||
6
zulu_mix
15.02.14
✎
21:46
|
(5) а что мешает?
прочитал файл в двоичные данные, положил во времянку. ссылку на времянку вернул на клиента. на клиенте открыл двоичные данные из времянки. |
|||
7
orda
15.02.14
✎
21:49
|
(6)т.е. в серверном модуле ПоместитьВоВременноеХранилище
а затем в клиентском ПолучитьИзВременногоХранилища ? |
|||
8
zulu_mix
15.02.14
✎
21:51
|
да
|
|||
9
b159263
15.02.14
✎
21:59
|
Весь код условно делится на клиентский и серверный. Разделение происходит директивами компиляции "&НаКлиенте", "&НаСервере" и т.п. Весь серверный код выполняется в контексте сервера, а клиентский в контексте клиента. При этом в модуле формы может присутствовать как клиентский, так и серверный код.
С клиента на сервер и обратно могут передаваться только типы данных в описании которых указано, что они стерилизуются. В основном это примитивные типы данных: Строка, Число, Дата и т.п. Передать прочие данные между клиентом и сервером можно по средством временного хранилища. Данные читаются на сервере, помещаются во временное хранилище, а на клиент возвращается адрес во временном хранилище. На клиенте данные по этому адресу читаются и обрабатываются, если они могу существовать в контексте клиента. При этом данные файла читаются объектом «Двоичные данные». Он может быть помещен во временное хранилище на сервере и на клиенте получен оттуда и сохранен в файл. В вашем случае необходимо реализовать: 1. Серверную функцию читающую файл из указанной папки (на сервере). Имя папки передается параметром. После прочтения двоичных данных файла их необходимо поместить во временное хранилище, а на клиент вернуть адрес. 2. На клиенте получить двоичные данные по адресу из временного хранилища, а затем сохранить их в файл на клиенте. &НаКлиенте Процедура ИмяФайлаКлиентНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение); Если Диалог.Выбрать() Тогда ИмяФайлаКлиент = Диалог.ПолноеИмяФайла; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура СкопироватьФайл(Команда) Текст = НСтр("ru = 'Файл не найден на сервере'"); АдресДанных = ПрочитатьФайлСервер(ИмяФайлаСервер, УникальныйИдентификатор); Если ЭтоАдресВременногоХранилища(АдресДанных) Тогда ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресДанных); Если ТипЗнч(ДвоичныеДанные) = Тип("ДвоичныеДанные") Тогда ДвоичныеДанные.Записать(ИмяФайлаКлиент); Текст = НСтр("ru = 'Файл сохранен на клиенте'"); КонецЕсли; КонецЕсли; Сообщение = Новый СообщениеПользователю; Сообщение.Текст = Текст; Сообщение.Сообщить(); КонецПроцедуры &НаСервереБезКонтекста Функция ПрочитатьФайлСервер(Знач ИмяФайла, Знач УникальныйИдентификаторФормы) АдресДанных = Неопределено; Файл = Новый Файл(ИмяФайла); Если Файл.Существует() Тогда ДанныеНаСервере = Новый ДвоичныеДанные(ИмяФайла); АдресДанных = ПоместитьВоВременноеХранилище(ДанныеНаСервере, УникальныйИдентификаторФормы); КонецЕсли; Возврат АдресДанных; КонецФункции |
|||
10
Chai Nic
15.02.14
✎
22:04
|
(9) "типы данных в описании которых указано, что они стерилизуются.
Что они делают? ) |
|||
11
b159263
15.02.14
✎
22:06
|
:))) Ворд проклятый :)))
не "стерилизуются", а "сериализуются" :))) |
|||
12
orda
15.02.14
✎
22:23
|
(8)-(9) Большое спасибо. Все понял.
|
|||
13
hhhh
16.02.14
✎
00:40
|
(11) ссылки тоже сериализуются, не только примитивные типы.
|
|||
14
b159263
16.02.14
✎
11:26
|
(13) Это все у Радчёнка написано и в синтаксис помошнике. Кстати ссылка это строка!!! GUID так называемый.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |