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

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

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

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

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

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

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

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

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


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