AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.09.2008, 13:49   #1  
koraman is offline
koraman
Участник
 
41 / 11 (1) +
Регистрация: 12.02.2008
Адрес: Казань
Ошибка при вызове COM-метода
Иногда вызов метода COM-объекта странным образом валится. Иногда говорит, что метод был вызван с недопустимым числом параметров, а иногда что просто метод был вызван с недопустимыми параметрами. Это я с Вордом работаю, кстати. Хотя, попробовал создать простой джоб с вызовом этого метода - всё нормально. Может, кто-нибудь сталкивался с такой проблемой? По форуму поискал... что-то ничего похожего не нашёл...

Да, кстати... Dynamics AX 4.0 SP2
__________________
I believe!
Старый 26.09.2008, 13:54   #2  
Lemming is offline
Lemming
Участник
Аватар для Lemming
 
1,144 / 343 (14) ++++++
Регистрация: 20.04.2004
Адрес: Москва, Чайнатаун в Люблино
Записей в блоге: 10
Думаю, если Вы выложите кусок кода на котором возникает ваша "мистическая" ошибка, вопрос может начать разрешаться быстрей
Старый 26.09.2008, 14:13   #3  
koraman is offline
koraman
Участник
 
41 / 11 (1) +
Регистрация: 12.02.2008
Адрес: Казань
Кусок кода там простой...
X++:
m_Report = new ComWordDocument_RU();
m_Report.newFile(this.ReportTemplatePath(), false);
На вызове newFile вываливается дебугер с сообщением что в методе ComOfficeDocument_RU::initApplication() был вызван m_comApplication.displayAlerts(_displayAlerts); с недопустимым числом параметров.
Хочу отметить, что класс ComOfficeDocument_RU не трогали.
__________________
I believe!
Старый 29.09.2008, 11:37   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Если работа происходит в терминальном режиме, то почитай вот это

Ошибки Word 2003 при работе в терминальном режиме
Старый 19.02.2009, 20:09   #5  
ALMO is offline
ALMO
Участник
 
6 / 10 (1) +
Регистрация: 09.12.2008
Доброго времени. Подобная ошибка тоже появилась. Как удалось решить эту проблему?
AX 4.0
Office 2007
Старый 22.10.2014, 12:50   #6  
kostass is offline
kostass
Участник
 
37 / 13 (1) ++
Регистрация: 27.08.2009
Адрес: Владимир
Доброго времени. Проблему так никто и не решал, в своей практике?

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  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Пока наиболее стабильным решением является запуск приложений MS Office в отдельном потоке (thread). Все остальные решения не гарантируют стабильности

Пример реализации можно посмотреть вот здесь. Если не ошибаюсь, в Ax3.0 это тоже можно сделать

Ошибка времени выполнения в ComExcelDocument_RU.findRange()
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
Старый 22.10.2014, 19:37   #8  
Ярослав Щекин is offline
Ярослав Щекин
Участник
 
78 / 174 (6) ++++++
Регистрация: 16.03.2009
Цитата:
Сообщение от Владимир Максимов Посмотреть сообщение
Все остальные решения не гарантируют стабильности.
Подождите, а использование COMDispFunction тоже не гарантирует?

Вот, например:
Win2008 и вызов методов COM-объектов
Старый 23.10.2014, 09:57   #9  
kostass is offline
kostass
Участник
 
37 / 13 (1) ++
Регистрация: 27.08.2009
Адрес: Владимир
С потоками пока решил не пробовать. Вчера изменил метод «\Classes\ComOfficeDocument_RU\initAplication» через COMDispFunction,
по аналогии с Ошибки Word 2003 при работе в терминальном режиме.
Погоняли с пользователем проблемный отчет, работает стабильно.
__________________
Axapta 3.0 SP6
За это сообщение автора поблагодарили: kvg6 (3).
Теги
ole

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37
танцы с бубном - COM Объект не имеет метода 'worksheets' Artem Mikhailov DAX: Программирование 4 05.02.2007 14:25
Объект, как параметр COM-метода Андре DAX: Программирование 10 22.03.2006 18:21
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:34.