Создание каталога на рабочей станции из Веб-клиента, асинхронный вызов в Веб-клиенте

1. panihinnv 16 02.09.19 13:04 Сейчас в теме
Требуется сформировать файл и сохранить его на клиенте из браузера.

При работе через обычное приложение все хорошо работает, а при работе через браузер не могу понять как создать каталог методом НачатьСозданиеКаталога(), и сохранить в него файл?

&НаКлиенте
Процедура Сформировать(Команда)

ДанныеФайла = СформироватьФайлСервер();

ЭтоВебКлиент = Ложь;

Если ДанныеФайла <> Неопределено Тогда
#Если ВебКлиент Тогда
Результат = НесинхронноУстановитьПриложенияДляРаботыСФайламиИНачатьРабот­атьСФайлами();
#Иначе

СоздатьКаталог("C:\1C\");
Описание = Новый ОписаниеПередаваемогоФайла("C:\1C\"+ДанныеФайла.ИмяФайла, ДанныеФайла.Адрес);
МассивОписаний = Новый Массив;
МассивОписаний.Добавить(Описание);
ПолучитьФайлы(МассивОписаний,,,Ложь);
ЗапуститьПриложение("C:\1C\");
#КонецЕсли
КонецЕсли;

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

&НаСервере
Функция СформироватьФайлСервер()

ПапкаПользователя = "C:\" + Пользователи.ТекущийПользователь().ИдентификаторПользователяИБ + "\";

УдалитьФайлы(ПапкаПользователя);
СоздатьКаталог(ПапкаПользователя);

XML = Новый ЗаписьXML;
ПараметрыЗаписиXML = Новый ПараметрыЗаписиXML("windows-1251", "1.0", Истина, Ложь, Символы.Таб);
ИмяФайла = Строка("MBKI_FL_.xml");
XML.ОткрытьФайл(ПапкаПользователя + ИмяФайла, ПараметрыЗаписиXML);

XML.ЗаписатьОбъявлениеXML();

XML.ЗаписатьНачалоЭлемента("TOBKI");

XML.ЗаписатьНачалоЭлемента("IDSchema");
XML.ЗаписатьТекст("2");
XML.ЗаписатьКонецЭлемента();

XML.Закрыть();

Двоичное = Новый ДвоичныеДанные(ПапкаПользователя + ИмяФайла);
Адрес = ПоместитьВоВременноеХранилище(Двоичное, ЭтаФорма.УникальныйИдентификатор);

УдалитьФайлы(ПапкаПользователя);

СтруктураДанных = Новый Структура("Адрес, ИмяФайла", Адрес, ИмяФайла);
Возврат СтруктураДанных;

КонецФункции

&наКлиенте
Функция НесинхронноУстановитьПриложенияДляРаботыСФайламиИНачатьРабот­атьСФайлами()

ОповещениеЗавершенияПодключенияРасширенияРаботыСФайлами = Новый ОписаниеОповещения("НачатьПодключениеРасширенияРаботыСФайламиЗавершение", ЭтотОбъект,Ложь) ;
НачатьПодключениеРасширенияРаботыСФайлами(ОповещениеЗавершенияПодключенияРасширенияРаботыСФайлами);

КонецФункции

&НаКлиенте
Процедура НачатьПодключениеРасширенияРаботыСФайламиЗавершение(Подключено,ЭтоУжеВтораяПопытка) Экспорт

Если НЕ Подключено Тогда
Если ЭтоУжеВтораяПопытка = Истина Тогда
Сообщить("Не удалось подготовить расширение работы с файлами, Обратитесь к разработчику");
Возврат;
КонецЕсли;
ОповещениеЗавершенияУстановкиРасширенияРаботыСФайлами = новый ОписаниеОповещения("НачатьУстановкуРасширенияРаботыСФайламиЗавершение", ЭтотОбъект);
НачатьУстановкуРасширенияРаботыСФайлами(ОповещениеЗавершенияУстановкиРасширенияРаботыСФайлами);
Иначе
// СформироватьФайлСервер();
КонецЕсли;

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

&НаКлиенте
Процедура НачатьУстановкуРасширенияРаботыСФайламиЗавершение(ОписаниеОповещения) Экспорт
ОповещениеЗавершенияПодключенияРасширенияРаботыСФайлами = Новый ОписаниеОповещения("НачатьПодключениеРасширенияРаботыСФайламиЗавершение", ЭтотОбъект,Истина) ;
НачатьПодключениеРасширенияРаботыСФайлами(ОповещениеЗавершенияПодключенияРасширенияРаботыСФайлами);
КонецПроцедуры
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
Оставьте свое сообщение

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