|
Как передать файл с клиента на сервер асинхронно. Ну вот чтоб вообще асинхронно. | ☑ | ||
---|---|---|---|---|
0
sem4cnt
01.09.17
✎
11:45
|
Добрый день!
Пишу алгоритм для передачи файлов с клиента на сервер. Столкнулся с тем, что функции, заявленные 1С как асинхронные, таковыми не являются. У нас пользователи грузят в 1С-ку большие файлы до 1Гб и пока какая-нибудь "асинхронная" ПоместитьФайлы() отработает - пользователь курит у монитора. А хотелось бы, чтобы он мог в этот момент что-то делать в открытой форме. Что делать? Кто как выходил их такой ситуации? |
|||
1
Вафель
01.09.17
✎
11:46
|
у 1с однопоточная асинхронность.
Асинхронно только в очередь помещаются |
|||
2
Господин ПЖ
01.09.17
✎
11:47
|
в фоновую задачу запихнуть?
|
|||
3
mszsuz
01.09.17
✎
11:48
|
НачатьПомещениеФайла?
|
|||
4
Вафель
01.09.17
✎
11:48
|
(2) на клиенте нет фоновых задач.
Переходи на веб клиент, там вроде форма должна быть доступна |
|||
5
sem4cnt
01.09.17
✎
11:52
|
(3) Пробовал. Она тоже виснет до полной загрузки файла :(
|
|||
6
sem4cnt
01.09.17
✎
11:54
|
(2) Фоновую задачу можно запустить только с сервера, а мне на клиенте надо файл забрать.
|
|||
7
Вафель
01.09.17
✎
11:55
|
Можно запустить новую 1ску, но правда события по завершению не получишь
|
|||
8
YFedor
01.09.17
✎
11:57
|
(0) А нужно передать в определенное место, т.е. с привязкой к какому-то справочнику, документу ... или просто на сервер выложить?
|
|||
9
ptiz
01.09.17
✎
11:58
|
(6) Пусть юзер асинхронно через проводник копирует файл в сетевую шару.
|
|||
10
eklmn
гуру
01.09.17
✎
12:07
|
(0) поподробней, кажется у тебя тут проблемы с алгоритмом
|
|||
11
eklmn
гуру
01.09.17
✎
12:07
|
(0) поподробней, кажеться у тебя тут проблемы с алгоритмом
|
|||
12
sem4cnt
01.09.17
✎
12:07
|
(8) Просто на сервер для последующей обработки.
|
|||
13
eklmn
гуру
01.09.17
✎
12:08
|
(12) обработки кем,чем? просто так ничего не бывает
|
|||
14
Вафель
01.09.17
✎
12:09
|
пусть копируют в папку на сервере
|
|||
15
YFedor
01.09.17
✎
12:10
|
(12) Пользователи складывают в папочку, как пишет (9), регламентное задание на сервере обрабатывает
|
|||
16
Господин ПЖ
01.09.17
✎
12:13
|
если просто копировать - зачем через 1с пропускать?
|
|||
17
sem4cnt
01.09.17
✎
12:20
|
Нет у них доступа к серверу. Только через 1С грузят файлы.
|
|||
18
Asmody
01.09.17
✎
12:22
|
Кстати вот, интересно, ПолеHTMLДокумента в своем потоке выполняется или нет?
|
|||
19
YFedor
01.09.17
✎
12:24
|
(17) яндекс диск
|
|||
20
Вафель
01.09.17
✎
12:25
|
(17) ftp
|
|||
21
Вафель
01.09.17
✎
12:26
|
Даже из 1с можно клиента фтп с параметрами запускать и он будет в фоне перекачивать
|
|||
22
Мимохожий Однако
01.09.17
✎
12:27
|
Я однажды делал так, что на сервер ползёт файл с другим расширением. А когда файл загрузился, то меняю расширение на нужное. Можно конечно и имя менять, если на него завязано.
|
|||
23
Fragster
гуру
01.09.17
✎
12:37
|
поле html документа и http сервис в той же 1ске, принимающий файл. правда, пока файл не передастся, форму с полем html документ закрывать нельзя
|
|||
24
X Leshiy
01.09.17
✎
13:04
|
(17) Отличный пример ларингопроктологии :)
|
|||
25
Юрий Лазаренко
01.09.17
✎
13:09
|
(23) Можно еще через com открывать невидимое окно IE и из него загружать файл на http-сервис. Тогда можно и 1С полностью закрывать, передача не прервется.
|
|||
26
Лефмихалыч
01.09.17
✎
13:25
|
(0) большие файлы так передают только чудаки
|
|||
27
lubitelxml
01.09.17
✎
13:34
|
dropbox не предлагать?
|
|||
28
PiotrLoginov
01.09.17
✎
13:52
|
(0) "пока какая-нибудь "асинхронная" ПоместитьФайлы() отработает - пользователь курит у монитора" - очень интересная информация. Проверю на досуге. Покажу пользователю общую форму "ДлительнаяОперация", а затем начну "помещение" файла из пути на клиенте, указанном пользователем. Неужели прога зависнет, если файл большой, на время копирования файла по сети?
Ну что ж, тогда не использовать "помещение", а копировать файл другими средствами языка, например КопироватьФайл() |
|||
29
Автоном
01.09.17
✎
14:15
|
(0)Если нужно прям действительно асинхронно - используйте сторонние утилиты командной строки вызывая их из 1с.
Вызвали, передали параметры, и будет она качать ваш файл отдельным потоком, никак не касаясь работы 1с. А средствами языка - хоть тресни, но идеала не получится, так уж 1с реализовала асинхронное выполнение. |
|||
30
Автоном
01.09.17
✎
14:17
|
(17) А к самому серверу где размещен сервер 1с им доступ не нужен.
Просто нужен доступ к серверу передачи файлов - например -FTP или HTTP. |
|||
31
sem4cnt
01.09.17
✎
22:36
|
(28) ага, зависнет :(
|
|||
32
Torquader
02.09.17
✎
01:18
|
Клиент к серверу может установить только одно соединение, так что или несколько клиентов - запускать нового для передачи файлов или для работы пользователя или сторонняя программа.
При желании, на сервере подымается Web-сервис и в него через отдельный код (можно даже из отдельно запущенной 1С с локальной пустой базой) загружается файл. А можно действительно асинхронно - порезать файл на много маленьких кусочков и передавать через обработку ожидания - тогда и пользователь поработать сможет. |
|||
33
Юрий Лазаренко
02.09.17
✎
10:28
|
(32) Да не надо резать, гиговые файлы уходят по локалке в веб-сервис 1С из браузера за секунды, уже проверяли.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |