На версии WINE@Etersoft 1.0.12 eter4/eter3 SQL перестали работать стандартные обработки выгрузки в xml на 1С:Бухгалтерия версии 7.7. При вызове гXMLАнализатор.СоздатьПоследовательноЗаписываемыйДокумент() появляется сообщение об ошибке 'Ошибка исполнения метода' после чего 1С помогает только kill pid. Откатил закрытую часть до 1.0.12eter1, сделал wine --update работоспособность восстановилась. Запуститься на 1.0.12eter3 без wine --update не удаётся, 1С ругается на импорт библиотек. Переезд на 1.0.12eter3 и обратно повторил несколько раз, всегда с одинаковым результатом.
Удалось воспроизвести проблему в бутылке. WINE@Etersoft 1.0.12 eter4.1/eter3 Бутылка: 1c77/1c77-27 База: Бухгалтерия Демо Способ воспроизведения: Операции > Обработка > Выгрузка данных для конфигурации > Выгрузить Происходит зависание. Через winedbg удалось получить такой BT: Backtrace: =>0 0xb7e9732c __libc_read+0x1c() in libpthread.so.0 (0x0032f96c) 1 0x7efa4af3 NTDLL_wait_for_multiple_objects+0x253() in ntdll (0x0032fb9c) 2 0x7efa4de3 NtWaitForMultipleObjects+0x63() in ntdll (0x0032fbdc) 3 0x7ee58ede WaitForMultipleObjectsEx+0xee() in kernel32 (0x0032fd2c) 4 0x7e3a1338 X11DRV_MsgWaitForMultipleObjectsEx+0xb8() in winex11 (0x0032fd7c) 5 0x7e9b4238 GetMessageW+0xe8() in user32 (0x0032fddc) 6 0x7e9b43b7 GetMessageA+0xa7() in user32 (0x0032fdfc) 7 0x5f4011a7 in mfc42 (+0x11a7) (0x0043611c)
Очевидно проблема в msxml. Надо экспериментировать с используемым парсером. Проблема очень похожа на багу #4276.
Попробовал парсеры msxml3, msxml4, msxml6 из winetricks - проблема не решилась.
Проблемы несовместимости msxml разных версий для 1С существуют и в виндовс, т.е. это старая проблема иного характера. Сами по себе файлы .dll в system32 у меня не меняются, т.к. это не ссылки. При зарегистрированных "неверных" .dll 1С ругается иначе. Поскольку свободная часть тоже не меняется, это наводит на мысли об отсутствии ошибок в builtin-версиях.
Какого состояние баги на данный момент?
Выгрузка данных в 1с7 под windows работает только с xml pareser 3.0. Если версия выше - выдает ошибку.
Пробовал установить XML parser 3.0 через winetricks (msxml3) и зарегистрировать его через "wine regsvr32 msxml3.dll". Не помогло, ошибка воспроизводится.
Запустил в бутылке оригинальный wine. После этого сообщение об ошибке изменилось. Было: "Ошибка исполнения метода", после этого зависание Стало: "Значение не представляет агргатный объект (Загрузить)", зависания нет Скорее всего это связано с изменениями в реестре, которые внес оригинальный wine. Проверить ошибку на оригинальном wine не удалось - он падает сразу после открытия MDI окна "Выгрузка данных..."
Так же наблюдаю на 1.0.12 4/5. Не зависит от парсера xml. Пробовал и с 3 и 4 (установленную версию проверял в v7plus.dll ВерсияБазовогоАнализатора, ВерсияАнализатора=2.0). Выдает ошибку и виснет. Умирает на гXMLАнализатор.СоздатьПоследовательноЗаписываемыйДокумент(). Хотелось бы починить, критично. Все выгрузки и обмены между базами перестали работать.
В качестве временного решения можно поставить dcom98: winetricks dcom98
(In reply to comment #12) > В качестве временного решения можно > поставить dcom98: А че не сразу винды?
из заявки 14268, помогло $ wine98 regsvr32.exe msxml4.dll
Created attachment 1701 [details] Обработка 1с: проверка версий XML парсеров. Обработка 1с, которая определяет реальные версии парсера. В данный момент, наиболее правильной является версия парсия 2.0 и версия базового парсера (msxml) 4.0. Если версия парсера меньше 2.0, нужно обновить v7plus.dll Если версия базового парсера неопределена или меньше четырех нужно сделать wine98 regsvr32 msxml4.dll /u wine98 regsvr32 msxml4.dll
Забыл добавить, эта бага проявляется при правильных версиях парсеров, а случай с заявкой 14268 легко было выявить с помощью обработки.
*** Bug 4276 has been marked as a duplicate of this bug. ***
Исправлено к 1.0.12 bugfix 2
*** Bug 5481 has been marked as a duplicate of this bug. ***
Баг-фикс выпущен давно.