|   |   | 
| 
 | Как передать файл с клиента на сервер асинхронно. Ну вот чтоб вообще асинхронно. | ☑ | ||
|---|---|---|---|---|
| 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С из браузера за секунды, уже проверяли.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |