Приветствую всех.
Проблема с вызовом метода ком-объекта 1С - НайтиПо Коду или FindByCode.
Чего установлено: Windows XP, Axapta 3.0 SP2 CIS, 1C - 7.70.018
Ошибка: Метод 'FindByCode' в COM-объекте класса '<unknown>' возвратил код ошибки 0x80070057 (E_INVALIDARG), который означает: Один или более аргументов не верен.
Хотя вот тут
http://www.axforum.info/forums/showt...p?threadid=920 уже обсуждалась эта проблема, мне пока не удалось заставить метод работать по человечески...
Вот код. Он очень похож на тот кусок, который Маззи запостил и тогда назвал его
заведомо рабочим:
PHP код:
COM c,
cont;
int res;
c = new COM("V77.Application");
res = c.Initialize(c.RMTrade(), '/D "C:\\1Cv77\\1SBDemo" /M', 'NO_SPLASH_SHOW');
if (!res) throw error('Ошибка при инициализации 1С');
cont = c.CreateObject('Справочник.Контрагенты');
pause;
res = cont.FindByCode("000001",0);
print(strfmt('%1 - %2',res,cont.Наименование()));
pause;
Метод FindByCode вызывает ошибку. Пробовал самые различные комбинации с участием COMDispFunction, COMVariant - не выходит каменный цветок... Кстати, если засунуть вызывающую ошибку строчку в try .. catch, то можно увидеть, что хотя COM и ругается, но выполняет метод... Аналгоичный код на VBA под Excel, и на Delphi работает без ошибок.
И ещё: эта ошибка возникает только на win2k и winXP. Под 98-ми этот же код выполняется без эксепшенов... Присоветуйте, как бороться?