Summary: | 1Cv77: Не открывается msxml из v7plus | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Vitaly Lipatov <lav> |
Component: | Internet Explorer / Gecko | Assignee: | Денис Баранов <baraka> |
Status: | CLOSED FIXED | QA Contact: | Денис Баранов <baraka> |
Severity: | normal | ||
Priority: | P2 | CC: | baraka, kondratyuk, sonner |
Version: | unspecified | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | 12639 | Связано с: | |
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 32, 55, 584 |
Description
Vitaly Lipatov
2006-04-05 22:06:51 MSD
Нет, похоже с RPC не связано. Проблема связана с нем, что код СоздатьОбъект("Msxml2.DOMDocument.4.0"); выполняется, а СоздатьОбъект("Msxml2.DOMDocument"); не выполняется. На самом деле не создается ни Msxml2.DOMDocument.4.0, ни Msxml2.DOMDocument Вот код (с уточнениями) Попытка Сообщить("Создаем Msxml2.DOMDocument.4.0"); DOMDocument = СоздатьОбъект("Msxml2.DOMDocument.4.0"); Сообщить("Удачно создали Msxml2.DOMDocument.4.0"); шсключение Сообщить(ОписаниеОшибки()); Сообщить("Создаем Msxml2.DOMDocument"); DOMDocument = СоздатьОбъект("Msxml2.DOMDocument"); КонецПопытки; Вот результат: Создаем Msxml2.DOMDocument.4.0 Неудачная попытка создания объекта (Msxml2.DOMDocument.4.0) Создаем Msxml2.DOMDocument DOMDocument = СоздатьОбъект("Msxml2.DOMDocument"); {Обработка.ОбменДанными_XML.Форма.Модуль(3249)}: Неудачная попытка создания объекта (Msxml2.DOMDocument) Проблема возникла у Shestakov Nikolay (конфигурация .wine прислана в support@) Но не удаётся воспроизвести: Создаем Msxml2.DOMDocument.4.0 Удачно создали Msxml2.DOMDocument.4.0 Создаем Msxml2.DOMDocument Неудачная попытка создания объекта (Msxml2.DOMDocument) Вот код для тестирования: Попытка Сообщить("Создаем Msxml2.DOMDocument.4.0"); DOMDocument = СоздатьОбъект("Msxml2.DOMDocument.4.0"); Сообщить("Удачно создали Msxml2.DOMDocument.4.0"); шсключение Сообщить(ОписаниеОшибки()); КонецПопытки; Попытка Сообщить("Создаем Msxml2.DOMDocument"); DOMDocument = СоздатьОбъект("Msxml2.DOMDocument"); шсключение Сообщить(ОписаниеОшибки()); КонецПопытки; Код реализован в базе testnew Нужно проверить, поставив всё с нуля. Должно быть исправлено к 1.0.1 Проблема возникает из-за неправильной функции в mlang.dll: fixme:mlang:fnIMultiLanguage2_ConvertStringFromUnicodeEx В качестве временного решения рекомендуется использовать native-файлы mlang.dll и mlang.dat исправлено в 1.0.1 Не работает толком XML в 1.0.6+ пока не установишь msxml.msi, причём его установка не переносится на других пользователей, и им нужно то же самое делать... Нужно выяснить правильный способ: что внести в реестр, чтобы заработало. По идее, 1С обращается через COM-интерфейс, так что там какие-то проблемы с регистрацией... После установки 4 парсера нативность должна быть указана почему-то для msxml3.dll, без этого не работает. А у меня нормально msxml4 установился, убрал все упоминания о msxml3 из winecfg и все работает нормально. 1с выполняет приведенный выше скрипт без ошибок и выгружает данные в xml формате, тоже без ошибок. Ваня, просьба сообщить, работает ли msxml в WINE@E "из коробки", или нужно что-то дополнительно устанавливат/менять? В чистой системе после установки wine@etersoft msxml не работает. Результаты: Создаем Msxml2.DOMDocument.4.0 Не удалось создать Msxml2.DOMDocument.4.0 Создаем Msxml2.DOMDocument Не удалось создать Msxml2.DOMDocument Выгрузка в XML, естественно не проходит. После установки ie результаты следующие: Создаем Msxml2.DOMDocument.4.0 Не удалось создать Msxml2.DOMDocument.4.0 Создаем Msxml2.DOMDocument Удачно создали Msxml2.DOMDocument Выгрузка в XML проходит удачно. После установки msxml.msi, результаты: Создаем Msxml2.DOMDocument.4.0 Удачно создали Msxml2.DOMDocument.4.0 Создаем Msxml2.DOMDocument Удачно создали Msxml2.DOMDocument Выгрузка в XML проходит удачно. Таким образом для работы msxml, необходимо устанавлявать msxml.msi версии 4.Больше менять ни чего не надо. Ешё раз подтверждаю необходимость установки msxml4 для корректной выгрузки. Версия "из коробки" неработоспособна, нужно добавлять какие-то компоненты. Ну так надо разобраться, что за компоненты нужны. Понятно, что это не файлы. Значит, реестр? Надо сравнить. Потому что все необходимые файлы уже у нас включены. Необходимые изменения в реестре внесены в сборку wine-etersoft-public. Ошибка оказалась не в реестре, а в том что wine почему-то не находит библиотеки путь к которым указан через %SystemRoot%\system32\имя_библиотеки. А именно такие пути регистрируют библиотеки msxml при регистрации в системе. Вот примерная бага на эту тему: http://bugs.winehq.org/show_bug.cgi?id=1886 Но они так толком и не решили проблему Если сделать trace по каналу environ. То можно увидеть, что переменные окружения все задаются, но функция отвечающая за преобразование (ExpandEnvironmentStringsW) ни разу не вызывается за весь сеанс работы. Ваня, пиши пожалуйста что стало известно в процессе работы, и чего ты достиг, закрыта ли бага? патч создан, при нем все работает правильно...главное регистрировать msxml под win98...бага пока не закрыта...тест еще не готов, т.е. под wine работает, а под 98 не срабатывает - разбираюсь. Если патч создан, то я не понимаю, приложен он или нет. Надо сразу прикладывать, чтобы быстрее тестировалось. Да патч приложен.В сборке от 21 сентября, он уже присутствует. Надо проверить на 1.0.8 и закрыть. Проверил на 1.0.8 от 5.10.2007. Создал новую .wine и установил 1cv77, запустил тест. Результаты теста: Создаем Msxml2.DOMDocument.4.0 Удачно создали Msxml2.DOMDocument.4.0 Создаем Msxml2.DOMDocument Удачно создали Msxml2.DOMDocument Все работает. Как написал Ваня в комментарии #20:
> главное регистрировать msxml под win98
Похоже, парсер отломали ещё при переходе к версии winxp по умолчанию.
$ wine98 regsvr32.exe msxml4.dll
решает проблему инициализации парсера (проверено на обработке из коммента #2)
В preinstall.sh добавлена WINDOWS_VERSION=98 для регистрации msxml Проблема решена. Нужно проверить - работает ли на 1.0.12 Переоткрываю. Очень надеюсь, что после тестирования все узнают адрес страницы, где написано, чтобы у нас протестировано, чтобы в релизе 1.0.12 никто не сомневался в том, что у нас работает то, это или то. WINE@Etersoft 1.0.12 eter1.4/eter1 Выгрузка в xml проходит успешно. Принято. Можно читать то, что я пишу (comment #28)? (In reply to comment #31) > Можно читать то, что я пишу (comment #28)? > Создал страничку, http://kb.etersoft.ru/Wine/1.0.12 |