Использование модальных окон в данном режиме запрещено (веб клиент)

1. deutsch2008 09.10.17 17:27 Сейчас в теме +1.22 $m
Всем, привет! Не давно узнал что "Использование модальных окон в данном режиме запрещено (веб клиент)" Помогите разобраться как преобразовать данный код используя асинхронные методы. Что бы окна (ДобавитьФайл, СкачатьФайл) открывались на веб клиенте! В тонком и толстом клиенте, данный код отрабатывает 100%, а вот в веб клиенте выдает ошибку!



 
&НаКлиенте
Процедура ДобавитьФайл(Команда)
    Если НЕ ПодключитьРасширениеРаботыСФайлами() Тогда
        УстановитьРасширениеРаботыСФайлами();
    КонецЕсли;

    Если ПодключитьРасширениеРаботыСФайлами() Тогда
        Режим = РежимДиалогаВыбораФайла.Открытие;
        ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
        ДиалогОткрытияФайла.ПолноеИмяФайла = "";
        ДиалогОткрытияФайла.МножественныйВыбор = Истина;
        ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
        Если ДиалогОткрытияФайла.Выбрать() Тогда
            МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;

            ПомещаемыеФайлы = Новый Массив;
            Для Каждого Файл Из МассивФайлов Цикл
                Описание = Новый ОписаниеПередаваемогоФайла(Файл, "");
                ПомещаемыеФайлы.Добавить(Описание);
            КонецЦикла;

            ПомещенныеФайлы = Новый Массив;
            Если ПомещаемыеФайлы.Количество() = 0 Тогда

            ИначеЕсли ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, УникальныйИдентификатор) Тогда
                ПоместитьФайлИзВременногоХранилищаВТЗ(ПомещенныеФайлы);
            КонецЕсли;
            Модифицированность = Истина;
        Иначе
            Предупреждение("Файл(ы) не выбран!");
        КонецЕсли;
    Иначе
        Предупреждение(НСтр("ru ='Данная возможность недоступна, так как не подключено расширение работы с файлами.'", "ru"));
    КонецЕсли;
КонецПроцедуры
Показать


&НаКлиенте
Процедура СкачатьФайл(Команда)
    Для Каждого ТекСтрока Из Элементы.ТаблицаПрикрепленныхФайлов.ВыделенныеСтроки Цикл
        ТекущиеДанные = Элементы.ТаблицаПрикрепленныхФайлов.ДанныеСтроки(ТекСтрока);
        Если ТипЗнч(ПолучитьЗначениеСсылкиИзФайла(ТекущиеДанные.ПрикрепленныйФайл)) = Тип("ДвоичныеДанные") Тогда
            Адрес = ПолучитьНавигационнуюСсылку(ТекущиеДанные.ПрикрепленныйФайл, "Файл");
            ПолучитьФайл(Адрес, ТекущиеДанные.ИмяПрикрепленногоФайла, Истина);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
Показать


Источник исходного кода: http://danila.org.ua/dobavlenie-faylov-i-skachivanie-ih-cher/
Прикрепленные файлы:
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. aka Любитель XML 09.10.17 19:14 Сейчас в теме
Попробуй вместо "Если ДиалогОткрытияФайла.Выбрать() Тогда" написать:

НачатьПомещениеФайлов(Новый ОписаниеОповещения("ДобавитьФайлКлиентЗавершение", ЭтаФорма, Новый Структура("ДиалогВыбораФайла", ДиалогВыбораФайла)),, ДиалогВыбораФайла, Истина, ЭтаФорма.УникальныйИдентификатор);

вот процедура - в которой обработаешь полученный файл:

&НаКлиенте
Процедура ДобавитьФайлКлиентЗавершение(ВыбранныеФайлы, ДополнительныеПараметры)

Если ВыбранныеФайлы <> Неопределено ТОгда
ДиалогВыбораФайла = ДополнительныеПараметры.ДиалогВыбораФайла;
ДобавитьФайлСервер(ВыбранныеФайлы);

КонецЕсли;

КонецПроцедуры

и дальше процедура на сервере - ДобавитьФайлСервер:

Процедура ДобавитьФайлСервер(ПомещенныеФайлы)

Для каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл
Том = "";

ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение);

и далее свою обработку файлов делаешь.
3. deutsch2008 10.10.17 09:35 Сейчас в теме +1.22 $m
4. deutsch2008 10.10.17 19:18 Сейчас в теме
6. solaru 72 16.09.21 16:12 Сейчас в теме
7. tahir.akchurin 09.12.21 16:47 Сейчас в теме
8. deutsch2008 09.12.21 17:15 Сейчас в теме
(7)
&НаКлиенте
Процедура ЗаполнитьТовары(Команда)

    Оповещение = Новый ОписаниеОповещения("ЗаполнитьТоварыВопросЗавершение", ЭтотОбъект);

    ТекстВопроса = "Табличная часть будет очищена. Продолжить?";

    ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);

КонецПроцедуры

&НаКлиенте
Процедура ЗаполнитьТоварыВопросЗавершение(Результат, ДополнительныеПараметры) Экспорт

   Если Результат = КодВозвратаДиалога.Да Тогда

   //алгоритм заполнения

   КонецЕсли;

КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот