Skip to content

Instantly share code, notes, and snippets.

@a-sitnikov a-sitnikov/file.bsl
Last active Mar 19, 2019

Embed
What would you like to do?
Передача файла с клиента на сервер
&НаКлиенте
Процедура Загрузить(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьЗавершение", ЭтотОбъект);
НачатьПомещениеФайлов(ОписаниеОповещения, , Объект.ИмяФайла , Ложь, Новый УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьЗавершение(ПомещенныеФайлы, ДополнительныеПараметры) Экспорт
Если ПомещенныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
ЗагрузитьНаСервере(ПомещенныеФайлы[0].Хранение);
КонецПроцедуры
&НаСервере
Процедура ЗагрузитьНаСервере(АдресХранилища)
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
ЧтениеXML = Новый ЧтениеXML;
// Через файл
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ЧтениеXML.Открыть(ИмяВременногоФайла);
// Через поток
Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения();
ЧтениеXML.ОткрытьПоток(Поток);
КонецПроцедуры
&НаКлиенте
Процедура АСЦ1_ЗагрузитьЛимиты(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("АСЦ1_ВыборФайлаЗавершение", ЭтотОбъект);
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx";
Диалог.Показать(ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура АСЦ1_ВыборФайлаЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
Если ВыбранныеФайлы = Неопределено Тогда
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("АСЦ1_ЗагрузитьЛимитыЗавершение", ЭтотОбъект);
НачатьПомещениеФайла(ОписаниеОповещения, , ВыбранныеФайлы[0] , Ложь, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура АСЦ1_ЗагрузитьЛимитыЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Если НЕ ЗначениеЗаполнено(Адрес) Тогда
Возврат;
КонецЕсли;
АСЦ1_ЗагрузитьЛимитыСервер(Адрес);
КонецПроцедуры
&НаСервере
Процедура АСЦ1_ЗагрузитьЛимитыСервер(АдресХранилища);
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилища);
Поток = ДвоичныеДанные.ОткрытьПотокДляЧтения();
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(Поток,, ТипФайлаТабличногоДокумента.XLSX);
КонецПроцедуры
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.