(изменено: Алёна Краснощёка, 11 декабря 2015 12:19:06)

Тема: Ошибка Automation Error

Добрый день!
   Подскажите, пожалуйста, при неоднократном обращении к API в старом построителе отчетов возникает ошибка "Automation Error" , в чем может быть причина? (Высылаю картинку с ошибкой и текст VBA модуля).

   В VBA модуле есть функция, которая получает необходимое значение, с помощью АПИ. Если из отчета эта функция вызывается один раз, тогда все работает хорошо, если несколько - тогда вылетает ошибка, отчет не формируется.
(Версия TechnologiCS: 6.3.0.0(19108))

Post's attachments

???? ??????.jpg
???? ??????.jpg 23.23 Кб, файл не был скачан. 

RptModule.txt 2.18 Кб, 6 скачиваний с 2015-12-11 

You don't have the permssions to download the attachments of this post.

Re: Ошибка Automation Error

Сложено сказать. Вы хоть укажите строку что выдает ошибку.

Хотя вызов Call TCSApp.DeleteModuleByUserModuleName(ProdBom.UserModuleName)  без присвоения уникального имени перед этим выглядит странно, но может и ничего страшного.

(изменено: Алёна Краснощёка, 11 декабря 2015 12:42:08)

Re: Ошибка Automation Error

Олег Зырянов пишет:

Вы хоть укажите строку что выдает ошибку.

Указания строки, в которой возникает ошибка, не происходит. Половина отчет формируется, потом возникает ошибка, и появляется Excel, который получается закрыть только через диспетчер задач.

Олег Зырянов пишет:

Хотя вызов Call TCSApp.DeleteModuleByUserModuleName(ProdBom.UserModuleName)  без присвоения уникального имени перед этим выглядит странно, но может и ничего страшного.

Вроде бы, сейчас объектам автоматически присваивается UserModuleName, или нет?

Post's attachments

Image 2.jpg 54.06 Кб, файл не был скачан. 

Image 3.jpg 208.72 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

Re: Ошибка Automation Error

Указания строки, в которой возникает ошибка, не происходит.

Запускать надо в отладчике или ошибки обрабатывать.

Вроде бы, сейчас объектам автоматически присваивается UserModuleName, или нет?

Нет конечно. Вы бы тогда работать не смогли и все старые скрипты посыпались.

Re: Ошибка Automation Error

При запуске в отладочном режиме, ошибка не возникает, но ячейка, в которой был вызов функции, остается пустой.

Присвоение имени модулю ProdBom.UserModuleName = ProdBom.UniqueUserModuleName не спасло ситуацию.

Re: Ошибка Automation Error

Попробуйте проверить значение на Null, например так:

Dim value As Variant
value = ISd.Fields(ProdBOMFieldNo)
If not IsNull(value) and (value <> "") Then
  ProdBomNote = CStr(value)
End If

Если функция вызывается из ячейки, то лучше добавить

On Error Resume Next

и в случае ошибки вернуть

if Err then
  ИмяФункции = Err.Description
End if

или показать сообщение с ошибкой и продолжить формирование отчета.

Входные параметры функции тоже не помешает проверить