Имя: Пароль:
1C
1С v8
Как передать файл с клиента на сервер асинхронно. Ну вот чтоб вообще асинхронно.
,
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С из браузера за секунды, уже проверяли.