Использование модальных окон в данном режиме запрещено (веб клиент)
Всем, привет! Не давно узнал что "Использование модальных окон в данном режиме запрещено (веб клиент)" Помогите разобраться как преобразовать данный код используя асинхронные методы. Что бы окна (ДобавитьФайл, СкачатьФайл) открывались на веб клиенте! В тонком и толстом клиенте, данный код отрабатывает 100%, а вот в веб клиенте выдает ошибку!
Источник исходного кода:http://danila.org.ua/dobavlenie-faylov-i-skachivanie-ih-cher/
&НаКлиенте
Процедура ДобавитьФайл(Команда)
Если НЕ ПодключитьРасширениеРаботыСФайлами() Тогда
УстановитьРасширениеРаботыСФайлами();
КонецЕсли;
Если ПодключитьРасширениеРаботыСФайлами() Тогда
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
ДиалогОткрытияФайла.МножественныйВыбор = Истина;
ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбрать() Тогда
МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
ПомещаемыеФайлы = Новый Массив;
Для Каждого Файл Из МассивФайлов Цикл
Описание = Новый ОписаниеПередаваемогоФайла(Файл, "");
ПомещаемыеФайлы.Добавить(Описание);
КонецЦикла;
ПомещенныеФайлы = Новый Массив;
Если ПомещаемыеФайлы.Количество() = 0 Тогда
ИначеЕсли ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, УникальныйИдентификатор) Тогда
ПоместитьФайлИзВременногоХранилищаВТЗ(ПомещенныеФайлы);
КонецЕсли;
Модифицированность = Истина;
Иначе
Предупреждение("Файл(ы) не выбран!");
КонецЕсли;
Иначе
Предупреждение(НСтр("ru ='Данная возможность недоступна, так как не подключено расширение работы с файлами.'", "ru"));
КонецЕсли;
КонецПроцедуры
Показать&НаКлиенте
Процедура СкачатьФайл(Команда)
Для Каждого ТекСтрока Из Элементы.ТаблицаПрикрепленныхФайлов.ВыделенныеСтроки Цикл
ТекущиеДанные = Элементы.ТаблицаПрикрепленныхФайлов.ДанныеСтроки(ТекСтрока);
Если ТипЗнч(ПолучитьЗначениеСсылкиИзФайла(ТекущиеДанные.ПрикрепленныйФайл)) = Тип("ДвоичныеДанные") Тогда
Адрес = ПолучитьНавигационнуюСсылку(ТекущиеДанные.ПрикрепленныйФайл, "Файл");
ПолучитьФайл(Адрес, ТекущиеДанные.ИмяПрикрепленногоФайла, Истина);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьИсточник исходного кода:
Прикрепленные файлы:

По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попробуй вместо "Если ДиалогОткрытияФайла.Выбрать() Тогда" написать:
НачатьПомещениеФайлов(Новый ОписаниеОповещения("ДобавитьФайлКлиентЗавершение", ЭтаФорма, Новый Структура("ДиалогВыбораФайла", ДиалогВыбораФайла)),, ДиалогВыбораФайла, Истина, ЭтаФорма.УникальныйИдентификатор);
вот процедура - в которой обработаешь полученный файл:
&НаКлиенте
Процедура ДобавитьФайлКлиентЗавершение(ВыбранныеФайлы, ДополнительныеПараметры)
Если ВыбранныеФайлы <> Неопределено ТОгда
ДиалогВыбораФайла = ДополнительныеПараметры.ДиалогВыбораФайла;
ДобавитьФайлСервер(ВыбранныеФайлы);
КонецЕсли;
КонецПроцедуры
и дальше процедура на сервере - ДобавитьФайлСервер:
Процедура ДобавитьФайлСервер(ПомещенныеФайлы)
Для каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл
Том = "";
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение);
и далее свою обработку файлов делаешь.
НачатьПомещениеФайлов(Новый ОписаниеОповещения("ДобавитьФайлКлиентЗавершение", ЭтаФорма, Новый Структура("ДиалогВыбораФайла", ДиалогВыбораФайла)),, ДиалогВыбораФайла, Истина, ЭтаФорма.УникальныйИдентификатор);
вот процедура - в которой обработаешь полученный файл:
&НаКлиенте
Процедура ДобавитьФайлКлиентЗавершение(ВыбранныеФайлы, ДополнительныеПараметры)
Если ВыбранныеФайлы <> Неопределено ТОгда
ДиалогВыбораФайла = ДополнительныеПараметры.ДиалогВыбораФайла;
ДобавитьФайлСервер(ВыбранныеФайлы);
КонецЕсли;
КонецПроцедуры
и дальше процедура на сервере - ДобавитьФайлСервер:
Процедура ДобавитьФайлСервер(ПомещенныеФайлы)
Для каждого ПомещенныйФайл Из ПомещенныеФайлы Цикл
Том = "";
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПомещенныйФайл.Хранение);
и далее свою обработку файлов делаешь.
(7)
&НаКлиенте
Процедура ЗаполнитьТовары(Команда)
Оповещение = Новый ОписаниеОповещения("ЗаполнитьТоварыВопросЗавершение", ЭтотОбъект);
ТекстВопроса = "Табличная часть будет очищена. Продолжить?";
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьТоварыВопросЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
//алгоритм заполнения
КонецЕсли;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот