Имя: Пароль:
1C
 
8.2 Передать файл с клиента на сервер
0 YF
 
20.05.10
11:41
Есть текстовый файл - это файл, который нужно "парсить", т.е. перебрать строки и положить данные в информационную базу.

Сделал открытием текстового файла на сервере, передав туда путь к файлу.
Т.о. файл может быть прочитан только если к нему есть доступ сервера под пользователем от имени которого он запущен.

Как сделать так, чтобы доступ с сервера непосредственно к файлу был не нужен?

Пока 2 варианта пришли в голову
1) "Парсить" на клиенте, а потом передать в виде текста или ТЗ на сервер
2) Передать на сервер сам файл, а там его открыть и "Парсить"

Что выбрать и как реализовать вариант 2?
сервер
1 H A D G E H O G s
 
20.05.10
11:44
Использовать вариант 3!
2 H A D G E H O G s
 
20.05.10
11:45
Использовать ВременноеХранилище - и передать туда файл.
НО.
Экономичнее распарсить на Клиенте
3 Defender aka LINN
 
20.05.10
11:48
Передать на сервер ДвоичныеДанные, например.
4 YF
 
20.05.10
11:54
(2) Можешь пояснить, что ты имеешь ввиду? Типа некую папочку, доступную и клиенту и серверу или объект конфигурации?
5 YF
 
20.05.10
11:54
(3) Оно будет работать и при работе через Web-сервер?
6 H A D G E H O G s
 
20.05.10
12:19
(3) Двоичные данные нельзя создать ИЗ ФАЙЛА на ВЕБ-клиенте, насколько я помню.
7 Defender aka LINN
 
20.05.10
12:21
(6) Неправильно помнишь.
Цитата:
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Сериализуется
8 H A D G E H O G s
 
20.05.10
12:24
(7) Ты мне не СП цитируй, ты попробуй

{Форма.Форма.Форма(4)}: Конструктор не обнаружен
9 H A D G E H O G s
 
20.05.10
12:24
&НаКлиенте
Процедура тест(Команда)
   Хран=Новый ДвоичныеДанные("C:\text.txt");
КонецПроцедуры
10 H A D G E H O G s
 
20.05.10
12:25
(7) Это концепция безопасности такая.
Обрати внимание.
в 9 релизе 8.2 у двоичных данных метод Записать() был доступен на Веб-Клиенте.
11 Defender aka LINN
 
20.05.10
12:28
(9) А расширение работы с файлами ты, понятно поставил, да?
12 H A D G E H O G s
 
20.05.10
12:29
(11) Да
13 acsent
 
20.05.10
12:31

   // Поместим Файл в ВременноеХранилище
   АдресВременногоХранилищаФайла = "";
   
   ПомещаемыеФайлы = Новый Массив;
   Описание = Новый ОписаниеПередаваемогоФайла(Файл.ПолноеИмя, "");
   ПомещаемыеФайлы.Добавить(Описание);
   
   ПомещенныеФайлы = Новый Массив;

   Если НЕ ПоместитьФайлы(ПомещаемыеФайлы, ПомещенныеФайлы, , Ложь, ФормаВладелец.УникальныйИдентификатор) Тогда        
       ВызватьИсключение
         СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
           НСтр("ru = 'Ошибка при помещении файла в хранилище: %1'"), Файл.ПолноеИмя);
   КонецЕсли;
14 H A D G E H O G s
 
20.05.10
12:31
(11) Единственно юзать
ПоместитьФайл()
ПоместитьФайлы()

Причем заметь,
ПоместитьФайл() - не требуется расширение (надстройка над браузером), похоже работа с файлами идет стандартными командами браузера, НО. На каждый чих-пых требуется подтверждение пользователя.
ПоместитьФайлы() - ТРЕБУЕТСЯ расширение (надстройка над браузером), но все можно проворачивать НЕинтерактивно.
15 ll13
 
20.05.10
12:39
(14) +
в новом релизе 8.2.11.201 есть ещё:
"Реализован метод глобального контекста "ЗапроситьРазрешениеПользователя()". В веб-клиенте метод позволяет получить у пользователя разрешение на выполнение нескольких операций с файлами, которые потом будут выполнены без дополнительных вопросов."
16 H A D G E H O G s
 
20.05.10
12:42
(15) Круть..
17 Дикообразко
 
20.05.10
12:44
а не проще дать учетки под которым крутиться 1С сервер админские права?
18 acsent
 
20.05.10
12:44
(17) И что случится?
19 ll13
 
20.05.10
12:45
(17) И чё ?
20 Defender aka LINN
 
20.05.10
12:46
Мда, и правда не работает :)
21 Дикообразко
 
20.05.10
12:48
(18) (19) и дать серверу самостоятельно читать файл
22 H A D G E H O G s
 
20.05.10
12:51
(21) Жесть.
Не ожидал.
23 ll13
 
20.05.10
12:54
(21) убил *жешь напалмом, как американцы во вьетнаме :)))
24 YF
 
20.05.10
12:54
(21) У меня файл на локальной машине в Гонолулу, А сервер в Нижнем Тагиле, соединяюст тонким клиентом или Веб-клиентом через Инет. Как в таком случае дать серверу права на чтение файла? По-моему никак.

(*) По-пробую перечисленные методы, спасибо. Потом отчитаюсь :-)
25 ll13
 
20.05.10
13:06
(24) Посмотри любую конфу 1С 8.2, там есть подсистема работы с файлами, там это реализовано. Правда слишком непрозрачно и как всегда много ненужного г.... Я себе частично оттуда передрал.
26 YF
 
24.05.10
10:23
(*) А как открыть принятый во временное хранилище файл на сервере, т.е. не передавая его в файловую чистему клиента?
27 ll13
 
24.05.10
10:37
(26) Никак. Файл придётся сохранить на клиенте в виде временного, а его уже открыть.
28 YF
 
24.05.10
10:42
(27) Т.е. для (0) только одно решение: обрабатывать файл на клиенте?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн