|
Веб-Клиент: немодальная выбор и загрузка файла |
☑ |
0
MaxisUssr
25.05.15
✎
18:25
|
Читал, что у 1С новые веяния - отказ от модальности. Сейчас как раз нужно сделать веб-клиент - решил, что лучше помучится сейчас, и делать различные диалоги выбора именно не модальными. Но проблема в том, что через веб-клиент нужно еще и грузить файлы. Файлы грузятся на данный момент так:
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл с фотографией";
Диалог.ПолноеИмяФайла = "";
Диалог.ПредварительныйПросмотр = Истина;
Диалог.Фильтр =
"Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
+ "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
+ "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
+ "Формат TIFF (*.tif)|*.tif|"
+ "Формат GIF (*.gif)|*.gif|"
+ "Формат PNG (*.png)|*.png|"
+ "Формат icon (*.ico)|*.ico|"
+ "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|"; // картинки
Если Диалог.Выбрать() Тогда
ПутьКФайлу = Диалог.ПолноеИмяФайла;
ПомещаемыеФайлы = новый Массив;
ПомещаемыеФайлы.Добавить(новый ОписаниеПередаваемогоФайла(ПутьКФайлу, ""));
ПомещенныеФайлы = новый Массив;
РезПомещения = ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, ,Ложь, УникальныйИдентификатор);
Если РезПомещения <> Истина тогда
Сообщить(ОписаниеОшибки());
Иначе
Если ПрикрепитьФайлСервер(ПомещенныеФайлы, ИмяКартинки, Истина) тогда
Элемент.ЦветФона = WebЦвета.ЗеленаяЛужайка;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Вопрос - каким образом уйти от модальности в данном коде?
P.S. Вышеописанное работает в IE, в Chrome выдает: "br:showmodaldialog is not function". Это плохо как-то - не пересаживать же всех на IE.
|
|
1
Fragster
гуру
25.05.15
✎
18:31
|
НачатьПомещениеФайла
|
|
2
Fragster
гуру
25.05.15
✎
18:33
|
жизнь - боль
|
|
3
Fragster
гуру
25.05.15
✎
18:33
|
Примечание:
На мобильной платформе параметр <Интерактивно> игнорируется и диалоговое окно выбора файла не отображается никогда.
В тонком и толстом клиентах, в отличие от веб-клиента, метод блокирует исполнение кода языка. Тем не менее, по завершению помещения файла указанный обработчик оповещения также будет вызван, но до исполнения кода, размещенного после вызова метода.
|
|
4
MaxisUssr
25.05.15
✎
18:35
|
(1) Понятно - спасибо. У нас пока что 8.2 (если будут вопросы, почему хром не работает - скажу, что платформа 1С старая), но скоро перейдем-наконец на 8.3 и придется переделать все на немодальность по-хорошему.
|
|
5
Fragster
гуру
25.05.15
✎
18:37
|
(4) судя по справке - это теперь работает по одному файлу, так что в описание оповещения придется запихивать массив из оставшихся файлов (кроме того, который в текущий момент передается).
|
|
6
Fragster
гуру
25.05.15
✎
18:37
|
а вообще - по хорошему - раз уж все это асинхронно - то может быть есть умельцы, которые реально асинхронно-параллельно много файлов на сервер загружают?
|
|
7
MaxisUssr
25.05.15
✎
18:44
|
(6)
Не представляю, как. Может только через ВК какую-то (но она тоже может быть отключена браузером).
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший