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