Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Веб-клиент: передать на сервер несколько файлов

Веб-клиент: передать на сервер несколько файлов
Я
   N-S-B
 
17.07.18 - 13:43
Обработка запускается только в веб-клиенте, в ней указывается папка на клиенте и дальше на сервере должны обработаться все файлы, которые имеются в данной папке.

Используя НачатьПомещениеФайла() обработка при каждом вызове (а файлов может быть и 10 и 50) спрашивает у пользователя разрешение. У нее есть параметр интерактивности, чтобы отключить это, но почему-то для вебклиента он всегда должен быть Истина, иначе возвращает ошибку.
Тоже самое, если попытаться сначала на клиенте файл перевести в двоичные данные с помощью НачатьСозданиеДвоичныхДанныхИзФайла, спрашивает при каждом обращении к файлу.

Тогда я решил попробовать читать файл на клиенте как обычный текст и передавать его на сервер текстом.
Оказалось веб-клиент не знает такой тип ЧтениеТекста. Ок, есть еще ТекстовыйДокумент. Тут вообще на методе Прочитать() ругнулся, что модальные окна запрещены. Но ничего асинхронного взамен нету.

Как же можно решить эту задачу?
 
 
   DrWatson
 
1 - 17.07.18 - 13:57
(0) НачатьПомещениеФайлов не поможет?
   N-S-B
 
2 - 17.07.18 - 13:58
(1)
(0):
>Используя НачатьПомещениеФайла() обработка при каждом вызове (а файлов может быть и 10 и 50) спрашивает у пользователя разрешение.
   DrWatson
 
3 - 17.07.18 - 14:02
НачатьПомещениеФайлов - один вызов, массив файлов. Она тоже для каждого файла спрашивает?
   N-S-B
 
4 - 17.07.18 - 14:15
(3) Спасибо, то что нужно! Жаль, что нельзя указать просто папку, а надо выбирать файлы множественным выбором, ну хоть так)
   s03
 
5 - 17.07.18 - 14:18
режим диалога выбора поставь для каталога и будешь выбирать папки, а там перебор файлов в выбранной папке и далее по алгоритму
   butterbean
 
6 - 17.07.18 - 14:19
(5) жаль, все это нельзя делать в веб-клиенте
   DrWatson
 
7 - 17.07.18 - 14:19
(4) Вроде как их не надо выбирать, если используете параметр НаборПомещаемыхФайлов. Метод их сам найдёт и спросит только подтверждение.
   singlych
 
8 - 17.07.18 - 14:21
НачатьПомещениеФайлов(<ОписаниеОповещения>, <ПомещаемыеФайлы>, <НаборПомещаемыхФайлов>, <Интерактивно>, <УникальныйИдентификаторФормы>) 
....

<НаборПомещаемыхФайлов> (необязательный)

Тип: ДиалогВыбораФайла; Строка. 
Определяет набор помещаемых файлов.
Может быть задан строкой поиска для метода НайтиФайлы либо заранее подготовленным диалогом выбора файлов в режиме открытия файлов.
Если параметр определен, то параметр <ПомещаемыеФайлы> должен быть не определен либо быть пустым массивом.

<Интерактивно> (необязательный)

Тип: Булево.
Указывает использование интерактивного режима, при котором пользователю показывается диалог, в котором он может выбрать набор помещаемых файлов.

....
   DrWatson
 
9 - 17.07.18 - 14:21
Да и сам НайтиФайлы работает на веб-клиенте.
   N-S-B
 
10 - 17.07.18 - 14:39
Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
    ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);    
    ОбработкаОкончанияПомещения = Новый ОписаниеОповещения("ОбработчикОкончанияПомещения", ЭтотОбъект);
    НачатьПомещениеФайлов(ОбработкаОкончанияПомещения, , ДиалогОткрытия , Истина, ЭтаФорма.УникальныйИдентификатор);


Ругается, что диалог открытия должен быть в режиме Открытия. Не нравится ему режим ВыборКаталога
 
 Рекламное место пустует
   Вафель
 
11 - 17.07.18 - 14:40
открой каталог. потом найди там все файлы и передай их
   N-S-B
 
12 - 17.07.18 - 14:42
(11) Каким образом? В параметрах НачатьПомещениеФайлов или отдельно как-то? Не понимаю)
   DrWatson
 
13 - 17.07.18 - 14:45
(12) см
(8) - в параметрах НачатьПомещениеФайлов
(9) - отдельно
   N-S-B
 
14 - 17.07.18 - 14:48
(13) Ну вот я в (10) и пробую через параметры диалог туда передать, но не получается
   DrWatson
 
15 - 17.07.18 - 14:54
(14) ок, попробуй другие варианты. У тебя в запасе параметр строкой и НайтиФайлы.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно задать вопрос "Как сделать?" и получить кучу ответов, что тебе это делать не надо. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует