0
- 23.10.2015 - 16:16
|
Всем физкульт привет! Что-то уже голову сломал... Ситуация: WinXPSP3, 1С7.7, пытаюсь прочитать хмл-файл, при выборе узла выдаёт ошибку: Если ЗагрузитьВнешнююКомпоненту(гПутьОбъекта_Компонента V7plus) <> 1 Тогда Предупреждение("Компонента v7plus.dll не найдена!"); Возврат; КонецЕсли; Анализатор = СоздатьОбъект("AddIn.XMLParser"); ФайлХМЛ = Анализатор.СоздатьДокумент(); ФайлХМЛ.Загрузить(парФайл); хмлDocuments = ФайлХМЛ.ВыбратьУзел("ns:Documents"); Ошибка: ФайлХМЛ.ВыбратьУзел("ns:Documents") - ошибка исполнения метода. На другой машине с WinХР этот код работает, на Win7 - работает, а вот на WinServer2008 - тоже такая-же ошибка. Чего не хватает-то? Пробовал установить msxml4, не помогло... Куда ещё копнуть? | |
1
- 23.10.2015 - 16:45
|
regsvr32 /u msxml.dll regsvr32 /u msxml2.dll regsvr32 /u msxml3.dll regsvr32 /u msxml4.dll regsvr32 /u msxml6.dll regsvr32 msxml3.dll | |
2
- 23.10.2015 - 16:50
|
0-volk13 > V7plus - в директорию /BIN/. И зарегистрировать от лица главнокомандующего (не директора, а админа). P.S. Win7 ведет себя точно так же, если работать там по нормальному, а не по уродски ("из под админа"). | |
3
- 23.10.2015 - 16:53
| 1-user1C > Лишнее это... Без бубна танцует на 2008-м. Проверено. | |
4
- 23.10.2015 - 16:59
| спасибо, сейчас попробую зарегить сначала от админа на сервере (по рдп прорвусь), сообщу результат | |
5
- 23.10.2015 - 17:09
| \windows\syswow64\regedit.exe \windows\syswow64\msxml4.dll | |
6
- 23.10.2015 - 17:19
| 0-volk13 > V7plus - в директорию /BIN/. И зарегистрировать от лица главнокомандующего (не директора, а админа). НЕ помогло на вин2008, делал от имени самого главного Администратора, запускал тоже из его сессии. Версия v7plus.dll 7.70.0.11 (я так понимаю самамя последняя) Сейчас попробую (5) | |
7
- 23.10.2015 - 17:30
| \windows\syswow64\regedit.exe \windows\syswow64\msxml4.dll ошибка - не удалось импортировать файл, импорт возможен только файлов реестра (кстати, оба эти файла присутствуют по указанным путям) Сейчас попробую (1), но уже на winXP, на которой не работает (боюсь на сервере удалять что-то)... | |
8
- 23.10.2015 - 17:35
| regsvr32 /u msxml.dll regsvr32 /u msxml2.dll regsvr32 /u msxml3.dll regsvr32 /u msxml4.dll regsvr32 /u msxml6.dll regsvr32 msxml3.dll тоже не помогло! чего ещё может быть?.. | |
9
- 23.10.2015 - 17:57
|
7-volk13 > Ну ошибся я \windows\syswow64\regsvr32.exe \windows\syswow64\msxml4.dll Как ты делаешь это над 64-и разрядными версиями, а нужно над 32-х разрядными, они лежат в syswow64 | |
10
- 23.10.2015 - 17:58
| + это как говорит Вольфофич "однозначно" | |
11
- 23.10.2015 - 18:10
|
Хм... Я ориентировался на: Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "v7plus.dll") <> 1 Тогда Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "v7plus.dll") <> 1 Тогда Если ЗагрузитьВнешнююКомпоненту(КаталогИБ() + "ExtForms\" + "v7plus.dll") <> 1 Тогда Предупреждение("Компонента v7plus.dll не найдена!", 60); Возврат; КонецЕсли; КонецЕсли; КонецЕсли; В этом фрагменте видно, что предупреждение "Не найдена комронента..." вылазит, когда тогда, кодда компонента не обнаружена (в порядке поиска) в BIN, Каталогп ИБ, в ExtForms. Это в ЗиК. Но в Бух77 порядок иной: СписокВозможныхМест = СоздатьОбъект("СписокЗначений"); СписокВозможныхМест.ДобавитьЗначение( КаталогИБ() + "v7plus.dll" ); СписокВозможныхМест.ДобавитьЗначение( КаталогПрограммы() + "v7plus.dll" ); СписокВозможныхМест.ДобавитьЗначение( КаталогИБ() + "ExtForms\" + "v7plus.dll" ); СписокВозможныхМест.ДобавитьЗначение( гСтрПуть + "v7plus.dll" ); т.е., вначале ищет в каталоге ИБ. Поэтому: надо либо изменить порядок поиска, либо выкинуть нафиг v7plus.dll из каталого ИБ. | |
12
- 23.10.2015 - 18:10
| \windows\syswow64\regsvr32.exe \windows\syswow64\msxml4.dll сделал, зарегилась успешно, но НЕ помогло, та-же самая ошибка.. запускал от Администратора... (блин.. столько лет создавал файлы на этой Вин2008 с помощью v7plus.dll , но не разу не парсил.. тут понадобилось - и такая засада... ничего не понимаю - ведь на других компах работает... а на этом и на ещё одном с ВинХР - нет) что ещё попробовать? | |
13
- 23.10.2015 - 18:11
| в каталоге ИБ у меня нет библиотеки этой, только в BIN | |
14
- 23.10.2015 - 18:14
| и у меня же находится dll, а парсер не пашет почему-то | |
15
- 23.10.2015 - 18:18
| 14-volk13 > по реестру всё же посмотри какой версии msxml зарегистрирован? Точно третий? | |
16
- 23.10.2015 - 18:20
| а где посмотреть, в какой ветке? | |
17
- 23.10.2015 - 18:21
| +(15) ну и по стародревнему обряду после изменений реестра ребутнись для чистоты | |
18
- 23.10.2015 - 18:22
| HKLM (на память) | |
19
- 23.10.2015 - 18:25
|
14-volk13 > Предупреждение "Компонента v7plus.dll не найдена!" по прежнему вылазит? Тогда не дергайся с парсерами, выясни путь, откуда конфа v7plus.dll пытается загрузить. Вот когда эту длл-ку загрузит, вот тогда и с парсером будешь разбираться. Вначале исправляют первую ошибку. P.S. И не трогай UAC. Не надо. | |
20
- 23.10.2015 - 18:28
|
19-VZ > откуда Предупреждение "Компонента v7plus.dll не найдена!" по прежнему вылазит? В (0) Ошибка: ФайлХМЛ.ВыбратьУзел("ns:Documents") - ошибка исполнения метода | |
21
- 23.10.2015 - 18:30
|
задал в реестре поиск по msxml - так их там полно, этих записей... нужен конкретный путь.... есть и 3 (их больше), есть и 4 где конкретно-то проверить? | |
22
- 23.10.2015 - 18:31
| у меня не вылазит "компонента не найдена", у меня вылазит "ошибка исполнения метода" | |
23
- 23.10.2015 - 18:38
| 20-roma n > Тады не знаю. От v77 почти отошел... | |
24
- 23.10.2015 - 18:38
|
ребутнулся, не помогло :( сейчас готов проводить эксперименты только на винХР, её и убить не жалко (на сервере не буду ничего делать, пока на ХР не заработает) | |
25
- 23.10.2015 - 18:41
|
только мыслей больше нет... :( явно не работает парсер, так как v7plus использует именно его. А вот почему он не работает - не ясно | |
26
- 23.10.2015 - 18:45
|
(24) - ну раз пошла такая пьянка... Состояние реестра в файл (не гарантирую, но по-моему в хрюне можно для этого воспользоваться созданием точки восстановления), regsvr32 /u для всех версий. Потом можно какой-нить чистилкой реестра пройтись или руками все ветки погрохать. Ребут regsvr32 msxml3.dll Ребут если что-то пошло не так - восстановление реестра | |
27
- 23.10.2015 - 18:47
|
так, уже клёво - запустил на 2008-м!!! как Смахарба написал - только сначала удалил 4-й, затем зарегил 3-й.. И заработало!!! На ХР пока нет... :) т.е. дело в версии парсера, должна быть 3-я! Только вот в какой ветке на ХР она должна быть 3-я - непонятно, так как там куча этих парсеров | |
28
- 23.10.2015 - 18:48
| 25-volk13 > Гранаты у тебя не той системы © скорее всего винда-таки поднимает msxml4, а v7plus писался под msxml3 | |
29
- 23.10.2015 - 18:50
|
на ХР я уже делал regsvr32 /u msxml.dll regsvr32 /u msxml2.dll regsvr32 /u msxml3.dll regsvr32 /u msxml4.dll regsvr32 /u msxml6.dll regsvr32 msxml3.dll щас ещё попробую тогда но причина главное понятна ПАРСЕР MSXML3 должен быть зареген | |
30
- 23.10.2015 - 18:53
|
вобщем всем спасибо! как добью ХР - сообщу (хотя и ежу уже ясно, что дело в парсере) :) (а то уже дурные мысли посетили - переписывать обработку под DOM или какую-нибудь ВК типа OpenXML ... ) :) | |
31
- 23.10.2015 - 19:23
|
ну вот, собственно, и всё: на ХР - через установку и удаление программ удалил msxml4 и msxml4 SP2 (оказывается они там были раньше зачем-то установлены и видимо поэтому их и подхватывало) далее сделал c:\windows\system32\regsvr32.exe c:\windows\system32\msxml3.dll и всё ОК! :) Итак, ПАМЯТКА: 1С - при парсинге файла - ошибка исполнения метода. Нужен msxml3 (именно третьей версии!) И указывать надо ПОЛНЫЕ пути!!! при регистрации c:\windows\system32\regsvr32.exe c:\windows\system32\msxml3.dll (Предварительно можно удалить другие версии, используя ключ /u т.е. например: c:\windows\system32\regsvr32.exe /u c:\windows\system32\msxml4.dll) Для ВИН2008х64 (64-разрядная) пути ОСОБЫЕ!!! c:\windows\syswow64\regsvr32.exe c:\windows\syswow64\msxml3.dll Предварительно можно удалить другие версии, используя ключ /u т.е. например: c:\windows\system32\regsvr32.exe /u c:\windows\system32\msxml4.dll Всем спасибо, приятных выходных! :) | |
32
- 23.10.2015 - 19:25
|
в самом низу памятки лишнее скопировалось: Предварительно можно удалить другие версии, используя ключ /u т.е. например: c:\windows\system32\regsvr32.exe /u c:\windows\system32\msxml4.dll убрать! :) | |
33
- 23.10.2015 - 22:48
|
Только одно решение, что выше написал, интерпретируй правильно, остальное куета полная. Давай доступ. | |
34
- 23.10.2015 - 22:50
| | |
35
- 23.10.2015 - 22:52
| Вообще афтар, что связано с системой кроме меня всех шли на куй. Нет в мире всем и на т1с, и особо на мисте, кто что то вообще понимает окромя меня. (не стеб) | |
36
- 24.10.2015 - 21:44
| А я VZ поддержу ничего регить не надо , достаточно под админом запустить 1с 1 раз . В данном случае еще 4ые парсеры удалить | |
| Интернет-форум Краснодарского края и Краснодара |