|
v7: универсальный парсер xml | ☑ | ||
---|---|---|---|---|
0
Grigory123456789
13.07.11
✎
11:17
|
Добрый день. Вопрос в следующем. Нужна обработка для чтения xml файлов и загрузки этого дела сразу в тз. Видел ли кто-нибудь подобное решение.Формат xml произвольный.
|
|||
1
ДенисЧ
13.07.11
✎
11:18
|
хе...
Произвольный формат загрузить в плоскую таблицу... Как это ты себе представляешь? :-) |
|||
2
Grigory123456789
13.07.11
✎
11:20
|
пример: берем xml и открываем его в екселе, ексель сам все читает и конвертирует в табличку. Вот и хотелосьбы такое только на 1с
|
|||
3
ДенисЧ
13.07.11
✎
11:20
|
сделай (с)
|
|||
4
Grigory123456789
13.07.11
✎
11:22
|
спс за совет!!! умное решение, а будут более продуктивные предложения согласно первоначального вопроса "Видел ли кто-нибудь подобное решение?"
|
|||
5
Лефмихалыч
13.07.11
✎
11:25
|
<root>
<node foo="bar" bar="foo"> valvalval <удачи в="загрузке" этого="в"> <Таблицу> Значений </Таблицу> </удачи> </node> </root> |
|||
6
Grigory123456789
13.07.11
✎
11:28
|
ммммммммда в очередной раз убеждаюсь, что народу делать нефига, стебется да и только, а дельное что нибудь предложить это упс и сдулись)))
|
|||
7
Злопчинский
13.07.11
✎
11:31
|
в книге знаний здесь есть - выводит строки в табло, вместо вывода строки пихать ее в ТЗ - два пальца об асфальт
|
|||
8
Лефмихалыч
13.07.11
✎
11:32
|
(6) переходите на v8, там это реализовано - ТЗ замечательно сериализуются в XML и обратно. В 7.7, как щас помню, всегда было достаточно ЗначениеВСтрокуВнутр() и обратно
|
|||
9
Рэйв
13.07.11
✎
11:32
|
(6)Как будешь оргнизовывать вложенность веток в плоской тз?
|
|||
10
Grigory123456789
13.07.11
✎
11:33
|
спс за наводку, будем копать)))
|
|||
11
Grigory123456789
13.07.11
✎
11:34
|
"Как будешь оргнизовывать вложенность веток в плоской тз?"
получением одной большой плоской тз, с дублями, такие вещи легко потом читать. |
|||
12
Grigory123456789
13.07.11
✎
11:51
|
не подскажите где конкретно в книге знаний лежит данный ответ)))) по поиску нахожу только частные примеры
|
|||
13
andrewks
13.07.11
✎
13:11
|
(0) нафига? почему с хмл работать не хочешь?
его ведь не от нечего делать придумали |
|||
14
Grigory123456789
13.07.11
✎
14:15
|
потомучто пытаюсь с минимальными временными и мозговыми затратами решить вопрос, а не заплатки новые ставить когда клиент придумает новый формат xml, а так дал ему решение универсальное и хай сам мучается, а я белый и пушистый, да и вообще пора уже на эпиляцию и в салярий)))
|
|||
15
Широкий
13.07.11
✎
14:26
|
(8) Т.З. сериализуется в хмл?? Хм... я юзаю ЗначениеВСтрокуВнутр..
Пример можешь привести? |
|||
16
1Сергей
13.07.11
✎
14:48
|
глянь мою поделку, если разберёшься :)
http://infostart.ru/public/60322/ Я там даже никаких ВК не использовал |
|||
17
zdas
13.07.11
✎
14:58
|
(0) вот ты в (2) описал что хочешь - сделай тоже самое через ОЛЕ и получай данные в свою тз))))
|
|||
18
Grigory123456789
13.07.11
✎
19:51
|
Поздравьте!!!!!!! Завтра скину решение)))))))))))) Авось кому и понадобится)))
|
|||
19
Злопчинский
14.07.11
✎
03:23
|
(16) атрибуты тегов обрабатываются?
|
|||
20
1Сергей
14.07.11
✎
07:39
|
(19) да, но не очень длинные
|
|||
21
ЧеловекДуши
14.07.11
✎
08:00
|
Походу автор не хочет думать :)
...Холяву ищет :)... Жаль что не пятницО :( |
|||
22
Grigory123456789
14.07.11
✎
16:34
|
Добрый день!!! Нашел решение своей проблемы))))
1)Создаем екселевский файлик в папке КаталогПользователя()+"konv.xls" 2)Обязательно смотрим настройки по vbs, безопасность, достоверность и т.д. 3)В 1с добавляем процедуру текст: //Перем текстовик; Перем Файл,Каталог; //текстовик=СоздатьОбъект("текст"); //текстовик.записать(КаталогПользователя()+"Konv.txt"); //текстовик.открыть(КаталогПользователя()+"Konv.txt"); Если ФС.ВыбратьФайл(0,Файл,Каталог,"Открытие документа XML","Документы XML|*.xml")=0 Тогда Возврат; КонецЕсли; Эксел= СоздатьОбъект("Excel.Application"); ФайлЭксел = Эксел.Workbooks.Open(Сокрлп(КаталогПользователя())+"konv.xls"); НашЛист = ФайлЭксел.Sheets(1); //ФайлЭксел.VBProject.VBComponents.Import(КаталогПользователя()+"Konv.txt"); ФайлЭксел.VBProject.VBComponents.Add(1); // добавляем модуль номер 1 ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(1, "Sub Konv()"); ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(2, "Workbooks.OpenXML Filename:= _"); ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(3, """"+Сокрлп(Каталог+Файл)+""", LoadOption:= _"); ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(4, "xlXmlLoadImportToList"); ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(5, "ActiveWorkbook.SaveAs Filename:= _"); //ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(6, """"+Сокрлп(Каталог+Файл)+".xls"", _"); ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(6, """"+Сокрлп(Каталог+Файл)+".xls"""); // //ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(7, "FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _"); // ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(7, "FileFormat:=xlExcel8,, , _"); // // ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(8, "ReadOnlyRecommended:=False, CreateBackup:=False"); ФайлЭксел.VBProject.VBComponents("Module1").CodeModule.InsertLines(9, "End Sub"); Эксел.Run("Konv"); //Workbooks("BOOK1.XLS").Close SaveChanges:=False //Эксел.ActiveWorkBook.save(); //Эксел.WorkBooks.close(); Эксел.DisplayAlerts = 0; Эксел.Workbooks.Close(); Эксел.DisplayAlerts = 1; Эксел.Quit(); 4) Получившийся файл читаем просто в тз |
|||
23
Grigory123456789
14.07.11
✎
16:35
|
Может кому и пригодится,но меня очень спасло))
|
|||
24
andrewks
14.07.11
✎
16:36
|
это шо, мне теперь, шоб xml прочитать, МС оффис покупать надоть?
|
|||
25
Grigory123456789
14.07.11
✎
17:17
|
Нууууууу так уж и быть!!! Разрешаю)))
|
|||
26
zdas
14.07.11
✎
17:17
|
(22) сам придумал?:)
|
|||
27
Grigory123456789
14.07.11
✎
17:19
|
Мысля крутилась, но не охото vbs изучать, а тут нашел примерчик как можно макрос запихать в фаил и выполнить))) вот и все
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |