Выбор файла и загрузка его на сервер в асинхронном режиме по фен-шую

14.11.17

Разработка - Механизмы платформы 1С

Жизнь без модальности и велосипедов.

Скачать исходный код

Наименование Файл Версия Размер
Выбор файла и загрузка его на сервер в асинхронном режиме по фен-шую:
.epf 6,64Kb
5
.epf 6,64Kb 5 Скачать

С появлением новых статей в разделе практики программирования, появились шаблонные решения некоторых задач, которые  ранее решались в обычном приложении за несколько строчек кода.

При использовании БСП жизнь улучшается.

Версия БСП на которой тестировалось: 2.4.2.124.

Диалог выбора файла

Если читать документацию то можно сократить свой простор для творчества и пользоваться достаточно гибкими и универсальными инструментами, такими как БСП. 

Тогда не придется писать процедуры и функции выбора для одного или для нескольких файлов. 

&НаКлиенте
Процедура ВыбратьИПрочитатьФайл(Команда)
    
    Обработчик = Новый ОписаниеОповещения("ВыбратьИПрочитатьФайлПослеВыбораФайла", ЭтотОбъект);
    
    ПараметрыДиалога = Новый Структура("Режим, Фильтр, ИндексФильтра, Заголовок");
    ПараметрыДиалога.Режим  = РежимДиалогаВыбораФайла.Открытие;
    ПараметрыДиалога.Фильтр = НСтр("ru = 'Файлы TXT (*.txt)|*.txt|Все файлы (*.*)|*'");
    ПараметрыДиалога.ИндексФильтра = 0;
    ПараметрыДиалога.Заголовок = НСтр("ru = 'Выберите файл который будем отправлять на сервер'");
    
    СтандартныеПодсистемыКлиент.ПоказатьПомещениеФайла(Обработчик, УникальныйИдентификатор, "", ПараметрыДиалога);
    
КонецПроцедуры

В этой процедуре все просто - показывается диалог выбора описанного файла и файл помещается во временное хранилище.

Загрузка файлов с клиента на сервер

Остается получить файл на сервере по адресу хранилища и обработать его.

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

&НаСервере
Процедура ПрочитатьФайлаНаСервере(АдресФайла)
	
	ПолноеИмяФайла = ПолучитьИмяВременногоФайла("txt");
	ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайла);
	ДвоичныеДанные.Записать(ПолноеИмяФайла);
	
	ТекстДокумент = Новый ТекстовыйДокумент;
	ТекстДокумент.Прочитать(ПолноеИмяФайла);
	Текст = ТекстДокумент.ПолучитьТекст();
	УдалитьФайлы(ПолноеИмяФайла);
	
	ШаблонТекста = НСтр("ru = '%1%2%3'");
	ТекстФайла = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонТекста, ТекстФайла, Символы.ПС, Текст);
	
КонецПроцедуры

 

См. также

Сервисы интеграции без Шины и интеграции

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    3177    dsdred    16    

65

Как готовить и есть массивы

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    7382    YA_418728146    25    

69

Планы обмена VS История данных

Перенос данных 1C Механизмы платформы 1С Системный администратор Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    7693    dsdred    36    

115

1С-ная магия

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    20053    SeiOkami    46    

124

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Системный администратор Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    13981    human_new    27    

77

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    10334    YA_418728146    7    

148

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6986    sebekerga    54    

99
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. acsent 1201 15.11.17 16:04 Сейчас в теме
можно и без БСП и временных файлов (потоки)
https://gist.github.com/a-sitnikov/6bd195061cd0c3911b1fd03910f0db10
2. kauksi 217 15.11.17 16:49 Сейчас в теме
лучше бы в платформу встроили... две функции
3. json 3321 15.11.17 20:57 Сейчас в теме
БСП - дело нужное. Плюсану.

Неплохо было бы для большей полноты картины указать, что данный метод работает только для режима "Открытие". Для режима "Сохранение" и "ВыборКаталога" - его использовать не получится.
Оставьте свое сообщение