26.09.2008, 13:49 | #1 |
Участник
|
Ошибка при вызове COM-метода
Иногда вызов метода COM-объекта странным образом валится. Иногда говорит, что метод был вызван с недопустимым числом параметров, а иногда что просто метод был вызван с недопустимыми параметрами. Это я с Вордом работаю, кстати. Хотя, попробовал создать простой джоб с вызовом этого метода - всё нормально. Может, кто-нибудь сталкивался с такой проблемой? По форуму поискал... что-то ничего похожего не нашёл...
Да, кстати... Dynamics AX 4.0 SP2
__________________
I believe! |
|
26.09.2008, 13:54 | #2 |
Участник
|
Думаю, если Вы выложите кусок кода на котором возникает ваша "мистическая" ошибка, вопрос может начать разрешаться быстрей
|
|
26.09.2008, 14:13 | #3 |
Участник
|
Кусок кода там простой...
X++: m_Report = new ComWordDocument_RU(); m_Report.newFile(this.ReportTemplatePath(), false); Хочу отметить, что класс ComOfficeDocument_RU не трогали.
__________________
I believe! |
|
29.09.2008, 11:37 | #4 |
Участник
|
Если работа происходит в терминальном режиме, то почитай вот это
Ошибки Word 2003 при работе в терминальном режиме |
|
19.02.2009, 20:09 | #5 |
Участник
|
Доброго времени. Подобная ошибка тоже появилась. Как удалось решить эту проблему?
AX 4.0 Office 2007 |
|
22.10.2014, 12:50 | #6 |
Участник
|
Доброго времени. Проблему так никто и не решал, в своей практике?
AX 3.0 SP6 и Office 2007 Ошибка времени выполнения. : Метод был вызван с не верным числом параметров. Трассировка стека: \Classes\COM\displayAlerts \Classes\ComOfficeDocument_RU\initAplication – Line 16 \Classes\ComExcelDocument_RU\initAplication – Line 6 … Проводил эксперименты на компе пользователя, где была ошибка. Запускаю отчет – выходит ошибка, запускаю отчет – нет ошибки, запускаю отчет – выходит ошибка, запускаю отчет – нет ошибки, запускаю отчет – нет ошибки, запускаю отчет – нет ошибки, запускаю отчет – выходит ошибка, запускаю отчет – нет ошибки. Заметил, что во всех версиях Excel параметр displayAlerts – boolean, а в аксапте 3 и 2009 он X++: int _displayAlerts = -1
__________________
Axapta 3.0 SP6 |
|
22.10.2014, 19:04 | #7 |
Участник
|
Пока наиболее стабильным решением является запуск приложений MS Office в отдельном потоке (thread). Все остальные решения не гарантируют стабильности
Пример реализации можно посмотреть вот здесь. Если не ошибаюсь, в Ax3.0 это тоже можно сделать Ошибка времени выполнения в ComExcelDocument_RU.findRange()
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
22.10.2014, 19:37 | #8 |
Участник
|
Подождите, а использование COMDispFunction тоже не гарантирует?
Вот, например: Win2008 и вызов методов COM-объектов |
|
23.10.2014, 09:57 | #9 |
Участник
|
С потоками пока решил не пробовать. Вчера изменил метод «\Classes\ComOfficeDocument_RU\initAplication» через COMDispFunction,
по аналогии с Ошибки Word 2003 при работе в терминальном режиме. Погоняли с пользователем проблемный отчет, работает стабильно.
__________________
Axapta 3.0 SP6 |
|
|
За это сообщение автора поблагодарили: kvg6 (3). |