|
Чтение xml файла на сервере. УТ 11 | ☑ | ||
---|---|---|---|---|
0
vse_serjezno
10.12.13
✎
18:34
|
Здравствуйте.
Столкнулась с такой проблемой. Написала обработку по загрузке данных из файла в 1с. База лежит на сервере. Код обработки такой: &НаКлиенте Процедура ФайлДанныхНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) Режим = РежимДиалогаВыбораФайла.Открытие; ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); Фильтр = "xml|*.xml"; ДиалогОткрытияФайла.Фильтр = Фильтр; Если ДиалогОткрытияФайла.Выбрать() Тогда Объект.ФайлДанных = ДиалогОткрытияФайла.ВыбранныеФайлы; Файлик = ДиалогОткрытияФайла.ВыбранныеФайлы; Сообщить("Выбран файл: " + Объект.ФайлДанных); ЗагрузитьДанныеИзФайлаСервер(Файлик); Иначе Текст = "Файл не выбран"; Предупреждение(Текст); КонецЕсли; ОбновитьИнтерфейс(); КонецПроцедуры &НаСервере Процедура ЗагрузитьДанныеИзФайлаСервер(Файлик) ПутьКФайлу = Файлик[0]; ЧтениеФайла = Новый ЧтениеXML; ЧтениеФайла.ОткрытьФайл(ПутьКФайлу); Пока ЧтениеФайла.Прочитать() Цикл При запуске выдает ошибку , что каталог не обнаружен. Куда мне запихнуть этот файл, чтобы программа его считала? |
|||
1
acsent
10.12.13
✎
18:40
|
самый простой вариант. бери файлы прямо на сервере
|
|||
2
vse_serjezno
10.12.13
✎
18:53
|
постойте, ну а как же тогда нужно организовывать работу, чтобы периодически файлы загружать/выгружать в 1с??
Не будут же пользователи всякий раз на сервер лезть!.. |
|||
3
etc
10.12.13
✎
18:56
|
(0) Файл надо прочитать на клиенте в ДвоичныеДанные, отправить на сервер и уже на сервере сохранить и повторно прочитать как XML.
|
|||
4
Кир Пластелинин
10.12.13
✎
18:56
|
сохранять/перетаскивать файл на сервер в каталог временных файлов программно.
|
|||
5
vse_serjezno
10.12.13
✎
18:57
|
(3) это все программно нужно сделать, кодом 1с?..
|
|||
6
vse_serjezno
10.12.13
✎
18:58
|
Каким образом??... О_о
|
|||
7
Кир Пластелинин
10.12.13
✎
18:58
|
(5) можно руками копировать)
|
|||
8
Кир Пластелинин
10.12.13
✎
18:58
|
написали же. двоичные данные
|
|||
9
User_Agronom
10.12.13
✎
19:01
|
А можно на шару поместрить. Но чтобы шара была видна и там и тут:)
|
|||
10
vse_serjezno
10.12.13
✎
19:01
|
(7) Вот и я о том же. Зачем мне с двоичными данными заморачиваться, чтобы переносить файл на сервер и там его в норм.виде разворачивать, если я могу готовый файл на сервер руками скопировать.
Но что это за чушь?! Неужели пользователь не может закинуть файл к себе на раб.стол, открыть его обработкой в 1ске и загрузить все данные, которые ему нужны? Почему такие проблемы с расположением этого файла?.. |
|||
11
Кир Пластелинин
10.12.13
✎
19:03
|
оооо батенька. тогда вам внимательней читать про клиент-сервер
|
|||
12
vse_serjezno
10.12.13
✎
19:04
|
(9) закинула, не помогло...(((
|
|||
13
acsent
10.12.13
✎
19:06
|
(12) шара должна быть на сервере
|
|||
14
xReason
10.12.13
✎
19:09
|
Если ПоместитьФайл(АдресВременногоХранилища, "", ВыбранноеИмя, Истина) Тогда
ф = новый Файл(ВыбранноеИмя); Объект.ИмяФайла = ВыбранноеИмя; Объект.Наименование = ф.Имя; ПоместитьФайлОбъекта(АдресВременногоХранилища); Если НовыйОбъект Тогда ОтобразитьИзменениеДанных(Объект.Ссылка, ВидИзмененияДанных.Добавление); КонецЕсли; ЗаписатьИЗакрыть(); КонецЕсли; &НаСервере Процедура ПоместитьФайлОбъекта(АдресВременногоХранилища) ЭлементСправочника = РеквизитФормыВЗначение("Объект"); ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища); ЭлементСправочника.ДанныеФайла = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных()); Файл = Новый Файл(ЭлементСправочника.ИмяФайла); ЭлементСправочника.ИмяФайла = Файл.Имя; ЭлементСправочника.Записать(); Модифицированность = Ложь; УдалитьИзВременногоХранилища(АдресВременногоХранилища); ЗначениеВРеквизитФормы(ЭлементСправочника, "Объект"); КонецПроцедуры |
|||
15
acsent
10.12.13
✎
19:12
|
(14) файлы лучше передавать напрямую функцией передатьфайл или поместить файл не помню точно
|
|||
16
xReason
10.12.13
✎
19:15
|
(14) У меня в первой строчке - ПоместитьФайл
|
|||
17
Либерал
10.12.13
✎
19:24
|
1. ну и дураки же вы все!!))
2. (0) я конечно не в курсе что в файле и что с этим делать потом нужно, но не проще ли прочитать/распарсить файл, поместить полученные данные в подходходящую для отправки на сервер коллекцию, отправить на сервер полученные и там работать без всякого хмл с ними?? |
|||
18
vse_serjezno
10.12.13
✎
19:27
|
МОжет вы и правы, но к чему, если есть типовые методы работы с xml файлами.
|
|||
19
vse_serjezno
10.12.13
✎
19:28
|
В текущем разговоре выяснилось, что есть типовые методы передачи файлов с клиента на сервер...я о них, правда, только узнала, но раз они есть, то и логичнее работать с ними.
|
|||
20
Либерал
10.12.13
✎
19:29
|
я о том, что по хорошему препарировал бы файл на клиенте всякими славными методами, отправил на сервер результат и с ним там работал. нафига файлы гонять??
|
|||
21
Либерал
10.12.13
✎
19:31
|
я правда нипомню на клиенте работает ЧтениеХМЛ ??
а объект ЧтениеХМЛ нельзя прям передать на сервер? лень смотреть, гляньте сами.. |
|||
22
vse_serjezno
10.12.13
✎
19:32
|
(20) ну это двойная работа получается : сперва его на клиенте обработать, запихнуть в коллекцию, потом на сервере снова обходить, работая не методами xml, а просто как с текстом.
Полкокопательством заниматься... А метод чтенияXML он на сервере и работает.) |
|||
23
vse_serjezno
10.12.13
✎
19:33
|
(21) в первом сообщении у меня работающий код приведен. Там есть чтение и оно на сервере.
|
|||
24
xReason
10.12.13
✎
19:33
|
СП тебе в помощь
Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. |
|||
25
Кир Пластелинин
10.12.13
✎
19:34
|
просто чтениеХМЛ вроде как и в тонком, и толстом работает, а вот ФастИнфосэт только в толстом.
|
|||
26
xReason
10.12.13
✎
19:35
|
(25) не работает на тонком ЧтениеXML
|
|||
27
Либерал
10.12.13
✎
19:35
|
зачем просто как с текстом? загнать данные в структуру, пригодную для погонять между клиентом и сервером, отправить ее на сервер и насиловать там поразному. это же практичнее имхо..
|
|||
28
Либерал
10.12.13
✎
19:37
|
да и с текстом хорошо - прочитать файл в текст, отправить строкой на сервер и там разбирать как хмл.
какой выбор разнообразный!) |
|||
29
Кир Пластелинин
10.12.13
✎
19:42
|
(26) да лааадно.
ЧтениеXML (XMLReader) Свойства: Описание: Предназначен для последовательного чтения XML-данных из файла или строки. Автоматически обрабатывает объявление XML-документа и распознает тип кодировки файла. Доступность: Тонкий клиент, сервер, толстый клиент, внешнее соединение. СП врет?) не поленился даже залезть и посмотреть |
|||
30
etc
10.12.13
✎
19:44
|
(17) давай давай, распарси XML на клиенте.
|
|||
31
etc
10.12.13
✎
19:56
|
Кстати да, беру свои слова обратно. На клиенте оказывается можно прочитать XML по схеме используя фабрику XDTO.
|
|||
32
m-serg74
10.12.13
✎
20:26
|
(28) ну да, особенно 300 и выше МБ как текст/строку...
(0) пользуй (14)... |
|||
33
m-serg74
10.12.13
✎
20:28
|
+ (32) не обязательно именно слово в слово тот код, но через временное хранилище обязательно, самый надежный способ
|
|||
34
Либерал
10.12.13
✎
20:32
|
(33) убедил
|
|||
35
m-serg74
10.12.13
✎
20:33
|
(34) сталкивался просто сам :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |