Показать сообщение отдельно
Старый 11.09.2003, 11:14   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ага. понятно.
Попробовал и вспомнил, что я уже на это напарывался.


Во-первых. Вы использовали ключик /m - это означает монопольный доступ. Отлично это помню, однако сначала накололся на том, что просто не было соединения из-за того, что 1Ска уже была открыта. (Кстати, забавное у вас имя пользователя )

Во-вторых. У COM объекта в Аксапте есть метод new. Он и вызывается вместо new справочника. Надо вызывать этот метод через COMDispFunction. В качестве проверки попробуйте не New, а NewGroup для справочника номенклатур.

Должно получиться следующее:
PHP код:
static void Job3(Args _args)
{
    
COM v77;
    
COM ref;
    
int res;
    
COMDispFunction methodNew;

    
v77 = new COM("v77s.Application");
    
res v77.initialize(v77.RMtrade(),"/dD:\\\\1Cv77\\\\1SBDemo\\\\","");
    if( !
res ) throw error("Не соединился!");

    
ref v77.CreateObject("Справочник.Номенклатура");
    if( 
ref == null ) throw error("Не создан объект Справочник.Номенклатура");

    
methodNew = new ComDispFunction(ref,"Новый"COMDispContext::Method);
    
methodNew.call();

//    ref.NewGroup(); // попробуйте вместо вызова methodNew
    
ref.SetAttrib("Description","аксапта 4");
    
ref.Write();

    
info("Выполнено");

Спасибо, что заставили вспомнить.
Ностальгия какая то просто... А уж постоянная перезагрузка 1с... это что-то...

Кстати, http://itland.ru/forum/index.php?showtopic=331


И еще важное добавление: в пути для Аксапты надо указывать двойные обратные слэши. Попробую вставить в форум.
За это сообщение автора поблагодарили: Corel (1).