Читал несколько обсуждений на этом форуме по поводу проблем работы с 1С через COM. Хотелось бы узнать - не нашел ли кто-то действительно работающего решения.
Напомню суть проблемы. Есть код:
PHP код:
static void Connect1C(Args _args)
{
COM v77;
COM ref;
int res;
str s;
;
v77 = new COM("v77.Application");
res = v77.Initialize(v77.RMTrade(), "/D\"D:\\1C\" ", "");
if( !res ) throw error("Не соединился!");
ref = v77.CreateObject("Справочник.Номенклатура");
if( ref == null ) throw error("Не создан объект Справочник.Номенклатура");
ref.Новый();
s = "аксапта8";
ref.SetAttrib("Description",s);
ref.Write();
info(ref.Description());
info("Выполнено");
}
В 80% случаев вылетает ошибка "Метод 'SetAttrib' в COM-объекте класса '<unknown>' возвратил код ошибки 0x80070057 (E_INVALIDARG), который означает: Один или более аргументов не верен.".
В 20% случаев код работает правильно.
Аналогичный код, написанный на VB, работает всегда правильно.
Разного роды pause; после каждой строчки вставлял, как было посоветовано, - не помогает.