|
Скопировать файл сервером в нужном месте из временного хранилища? | ☑ | ||
---|---|---|---|---|
0
Kreont
03.04.13
✎
11:53
|
Обычный (толстое) кл-серверный режим.
На сервере есть папка куда надо складывать файлы полученные от клиента.Доступ к ней только у пользователя-сервера "usr1cv82". Получаю файлик от клиента 1С-ки так: ВнАдресСерверний = ""; ПоместитьФайл(ВнАдресСерверний,НазваФайлу,НазваФайлу,Ложь); Путь этого хранилища полученного: ВнАдресСерверний = e1cib/tempstorage/a8fb082a-9c2b-11e2-2f9b-002354472516 Как получить имя "правильное" абсолютное что б скопировать можно было через КопироватьФайл(А,Б) в нужное место? |
|||
1
Balonbl4
03.04.13
✎
11:56
|
Зачем через копировать файл? пишите на диск из временного хранилища прямо
|
|||
2
Kreont
03.04.13
✎
12:05
|
(1) Как и чем прямо писать?
я вот не пойму почему нету ф-ии (или не нашел), что б предать сразу: МОЯ_ПередатьФайл(ПутьОтносительноСервераЛокальный, ПутьКлиентаЛокальный, Ложь); |
|||
3
H A D G E H O G s
03.04.13
✎
12:07
|
(2) Зачем?
|
|||
4
H A D G E H O G s
03.04.13
✎
12:11
|
Двоичное=Новый ДвоичныеДанные("c:\my.txt");
АдресВХ=ПоместитьВоВременноеХранилище(Двоичное,Новый УникальныйИдентификатор()); ДействиеНаСервере(АдресВХ); Процедура ДействиеНаСервере(АдресВХ); Если НЕ (ТипЗнч(АдресВХ)=Тип("Строка") И ЗначениеЗаполнено(АдресВХ) И ЭтоАдресВременногоХранилища(АдресВХ)) Тогда Возврат; Двоичное=ПолучитьИзВременногоХранилища(АдресВХ); УдалитьИзВременногоХранилища(АдресВХ); Если ТипЗнч(Двоичное)=Тип("ДвоичныеДанные") Тогда Двоичное.Записать("C:\new.txt"); |
|||
5
Kreont
03.04.13
✎
12:12
|
(3) что б передавать файлы из клиента на сервер используя кл-серверное соединение 1С-ки, а не возможности файловой системы.
одной командой, а не через 10 строк кода и микс вызовов то НаСервере то НаКлиенте |
|||
6
H A D G E H O G s
03.04.13
✎
12:13
|
Можно тупо Двоичное передавать, но на объемах более 50 метров бывали разрывы связи и зависоны, х.з. почему.
|
|||
7
H A D G E H O G s
03.04.13
✎
12:13
|
(5) Никому это нахер не нужно, а кому нужно - напишет немного.
Это глупости ты пишешь, проблемы на вашей стороне. |
|||
8
Kreont
03.04.13
✎
12:21
|
(4) спс, во типа того, только теперь не понял чем отличается:
ПоместитьВоВременноеХранилище от ПоместитьФайл (7) ну есть одна задачка чтоб файлы/сканы документов можно было: а) привязывать к нужным элементам справочников б) сохранять НЕ в сюл-ной базе а файлом в нужном каталоге в) и что б паралельно был доступ всем к той расшаренной папке Только на чтение, если надо будет прямо открыть скан не запуская 1С. |
|||
9
H A D G E H O G s
03.04.13
✎
12:26
|
(8) ПоместитьФайл (ПоместитьФайлы) запихивает во временное хранилище тупо Файл (не объект 1С, хз что), а ПоместитьВоВременноеХранилище() - засунет Объект 1С.
ПоместитьФайл (ПоместитьФайлы) - актуально для ВебКлиента в основном, там запрос на каждую операцию с файловой системой задается (ну грубо), безопасность знаете ли. |
|||
10
H A D G E H O G s
03.04.13
✎
12:28
|
Более показательны функции
ПолучитьФайл (ПолучитьФайлы) Кроме как этими функциями, ты файл из ВебКлиента на диск пользователя не сохранишь, у двоичных данных метод Записать() в ВебКлиенте выпилен (я даже помню, в каком примерно релизе 8.2 это случилось). |
|||
11
Kreont
03.04.13
✎
12:39
|
спс. прояснилось.
Ща на обед уйдут, потестю на раб.базе :) |
|||
12
Kreont
03.04.13
✎
16:29
|
Еще раз.спс., вроде работает все как хотел.
Учел (6) и сразу лимит в 10МБ поставил на файл. В коде из (4) там самое главное для обычного приложения правильно процедуры поразкидывать по общим модулям с выполнением только на сервере. И еще вопрос такой, если файл передавать 10МБ можно показать как то прогресс передачи? (при макс 10МБ время передачи 1-3 сек. если сервер не нагружен, если нагружен - до 10 сек.). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |