Главная » Файлы » Программируем в 1С » 1С Разное |
Скачивать материалы с сайта, могут только зарегистрированные пользователи.
Для регистрации заполните два поля ниже!
Через минуту Вы получите "Гостевой доступ"
2014 Май 10, 21:09 | |
Как передать файл с «клиента» на «сервер» и обратно ? 1с 8.3 Когда «управляемые формы» и «тонкий клиент» ? Приветствую Друзья! Решение еще одной задачи, что 100% выпадет Вам как программисту 1С, если Вы работаете с 1С 8.3, на управляемых формах используя, тонкий клиент! Речь в статье пойдет о передаче файла с «Клиента» на «Сервер» , Как это проще и быстрее сделать ? Я поделюсь с Вами своим опытом, покажу все пошагово в скриншотах. И так давайте по порядку: Создаем обработку на управляемых формах, конечно, используем только тонкий клиент.
Перейдем на вкладку данные и добавим «Табличную часть» а в ней такие реквизиты:
Добавим команду «Выбрать» и перенесем все на форму, затем создадим обработчик события (&НаКлиенте) для нашей команды «Выполнить». С помощью нее Мы будем вызывать форму выбора файла.
На клиенте пишем процедурку выбора файла:
&НаКлиенте Обрабатывать Мы будем файл *СSV расширения разберем его на сервере и загрузим полученный результат в таб часть нашей обработки. CSV файл состоит всего из трех полей:
Весь ниже приведенный код отлично работает и &НаКлиенте но почему использую сервер ? Здесь думаю особо объяснять не надо, если нам нужны методы что работают только на сервере, к примеру это может быть «Запрос» или «Таблица значений» или сам файл у нас не простой "текстовый", а возможно что то более экзотичное ) все зависит от задачи. Конечно в таком случаи это возможно только на сервере!
Мы всего лишь для наглядного примера, разберем csv файл и отправим в таб. часть обработки.
Теперь собственно реализуем передачу файла на сервер. Вернемся к обработке и на вкладке «Данные» добавим «Реквизит1» Тип укажем «Произвольный» (На форму этот реквизит выводить не надо). С помощь этого реквизита Мы передадим файл на сервер, предварительно поместив его во «Временное хранилище» ресурсом для этого послужит наш «Реквизит1»
Чтоб это реализовать, добавим строчку ниже в нашу процедуру на «Клиенте» Объект.Реквизит1 = ПоместитьВоВременноеХранилище(ИмяФайла); Отлично !!! Теперь осталось на сервере прочитать его и обработать «Парсить» Для этого создадим процедуру &НаCервере &НаСервере Процедура НаСервере(); ДокумОб = ПолучитьИзВременногоХранилища(Объект.Реквизит1);
ТекДок = Новый ТекстовыйДокумент; ТекДок.Прочитать(ДокумОб); Для строки = 1 По ТекДок.КоличествоСтрок() Цикл
Стр = ТекДок.ПолучитьСтроку(Строки); Позиция = Найти (Стр,";");
Емаил = Сред(Стр,1,Позиция-1);
///////// Имя Им = Сред(Стр,Позиция + 1); НайтиИм = Найти(Им,";"); Имя = Сред(Им,1,НайтиИм - 1); ////////
//////// Город Гор = Сред(Им,НайтиИм +1); НайтиГор = Найти(Гор,";"); Город = Сред(Гор,1,НайтиГор - 1); ////////
КонецЦикла; КонецПроцедуры; Все! Отправим полученное в «Табличную часть» нашей обработки. Добавим код в процедуру &НаСервере. МояСтрока = Объект.ТабличнаяЧасть1.Добавить(); МояСтрока.Email = Емаил; МояСтрока.Имя = Имя; МояСтрока.Город = Город; Теперь чтоб это все выполнялось с одной кнопки «Выбрать» Добавим вызов процедуры «НаСервере()» в процедуру на клиенте
&НаКлиенте Выбрать(Команда)
Вот таким вот не хитрым способом можно передавать файлы на «сервер» с «клиента»! Если Вы уже зарегистрировались на сайте, то можете скачать эту обработку и файл csv. С уважением, Богдан.
| |
Просмотров: 20776 | Загрузок: 130 | |
Выразить благодарность - Поделиться с друзьями!
Всего комментариев: 0 | |