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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.03.2004, 11:30   #1  
isbist is offline
isbist
Участник
 
12 / 10 (1) +
Регистрация: 27.02.2004
Передача данных из 1С в Axapta 3.0 через COM Connector
Здравствуйте!
Ниже привожу код 1С:

Процедура ПриЗаписи()

Axapta = CreateObject("AxaptaCOMConnector.Axapta");
Axapta.Logon("admin");

MyRecord = Axapta.CreateRecord("MetroTable");
MyRecord.InitValue();
MyRecord.Field("MetroId").Value = "1";
MyRecord.Field("MetroName").Value = "Metro";
MyRecord.Insert();

Axapta.Logoff();
КонецПроцедуры

1С ругается, что нет такого метода MyRecord.Field("MetroId").Value.
Пустая запись в Axapta (без MyRecord.Field) вставляется спокойно.

В чем может быть проблема? Скорее всего неправильный синтаксис 1С.
Просьба откликнуться, кто уже имел подообный опыт передачи данных из 1С.
Старый 03.03.2004, 14:59   #2  
bucken is offline
bucken
Участник
Аватар для bucken
 
259 / 12 (1) ++
Регистрация: 04.09.2003
Адрес: Москва
Попробуй так:
PHP код:
metroField MyRecord.Field("MetroId");
metroField.Value "1"
Но это так предположение...
Например если со стороны аксапты к к какому-нибудь COM-у коннектиться, то можно толь так (длинный путь к обекту не поддерживатеся) . Извиняюсь, что не могу более грамотно выразиться.
__________________
Уточните значение слов и вы избавите человечество от половины его заблуждений. (Рене Декарт) / Axapta 2.5
Старый 03.03.2004, 15:50   #3  
isbist is offline
isbist
Участник
 
12 / 10 (1) +
Регистрация: 27.02.2004
К сожалению, тот же результат.
Старый 03.03.2004, 16:31   #4  
bucken is offline
bucken
Участник
Аватар для bucken
 
259 / 12 (1) ++
Регистрация: 04.09.2003
Адрес: Москва
еще одно предположение
Может так:
PHP код:
MyRecord.Field("MetroId").Value("1"); 
P.S. К сожалению это все мои догадки.
__________________
Уточните значение слов и вы избавите человечество от половины его заблуждений. (Рене Декарт) / Axapta 2.5
Старый 03.03.2004, 16:47   #5  
isbist is offline
isbist
Участник
 
12 / 10 (1) +
Регистрация: 27.02.2004
Нет, все тот же результат. Неужели из 1С (v 77) никто не передавал по COM данные
в Axapta?
По связи InterBase - Axapta (программка на Delphi) все четко, проблем нет,
с 1С "застряли".
Старый 03.03.2004, 17:09   #6  
ravil is offline
ravil
Участник
 
133 / 18 (1) ++
Регистрация: 15.04.2003
Предлагаю создать у таблицы со стороны Аксапты метод, исполняющий нужную логику. И вызывать его. Там при необходимости можно проверять правильность значений полей, взаимосвязи с другими таблицами и т.д.

Примерно так:

Аксапта:

public int insertRecord(str _metroID, str _metroName) {

// метод таблицы
int retCode;
try {
this.initValue();
this.MetroID=_metroID;
this.MetroName=_metroName;
this.write();
retCode=1;
}
catch (exception::error){
retCode=0;
}
return retCode;
}


1С:

Процедура Сформировать()

попытка
Axapta = CreateObject("AxaptaCOMConnector.Axapta");
Axapta.Logon("Ravil");

MyRecord = Axapta.CreateRecord("MetroTable");
if MyRecord.call("insertRecord","1", "Metro")=0 then
сообщить("Ошибка!");
иначе
сообщить("Запись вставлена");
КонецЕсли;

Axapta.Logoff();

исключение
Axapta=0;
Сообщить(ОписаниеОшибки());
КонецПопытки;

КонецПроцедуры
Старый 03.03.2004, 17:56   #7  
isbist is offline
isbist
Участник
 
12 / 10 (1) +
Регистрация: 27.02.2004
Спасибо!
Хороший способ.

Единственное, вылетает ошибка

if MyRecord.call("insertRecord","1", "Metro")=0 then
{Справочник.Метро.Форма.Модуль(7)}: AxaptaCOMConnector.Axapta.1: Недостаточно прав для выполнения Method insertRecord
Ошибка времени выполнения. : xRecord object не имеет метода 'insertRecord'.

Трассировка стека:
\Classes\xRecord\insertRecor

В Axapte я - начинающий ,
попробовал перезапустить Axapta Business Connector, не помогло.
Старый 03.03.2004, 18:16   #8  
Prof is offline
Prof
Участник
 
732 / 64 (4) ++++
Регистрация: 18.10.2002
Адрес: Москва
Честно говоря сходу ответить не могу
Но предложенный способ не кажется мне верным
Скорее правильное направление поиска будет следующее: видимо СОМ-интерфейс IAxaptaRecord реализует класс Common в Аксапте
Если Вам удастся вставить запись с помощью Common, Вы сможете сделать это и через СОМ
Старый 04.03.2004, 08:10   #9  
Пятак is offline
Пятак
Участник
 
1 / 10 (1) +
Регистрация: 04.03.2004
У меня работает
в 1с:
Процедура Сформировать()
Axapta = CreateObject("AxaptaCOMConnector.Axapta");
Axapta.Logon("Admin", "", "", "");
ClassObject = Axapta.CreateObject("MetroEdit");
ClassObject.Call("InsertRecord","1","Metro1");
Axapta.Logoff();
КонецПроцедуры

в Ax:
class MetroEdit
{
MetroTable MetroTable;
}
public void InsertRecord(int MetroId, str MetroName)
{
;
MetroTable.initValue();
MetroTable.MetroId = MetroId;
MetroTable.MetroName = MetroName;
MetroTable.insert();
}
Старый 04.03.2004, 14:42   #10  
isbist is offline
isbist
Участник
 
12 / 10 (1) +
Регистрация: 27.02.2004
Спасибо большое за помощь!
И этот способ работает успешно в Delphi, а вот в 1С
упорно выдается ошибка "AxaptaCOMConnector.Axapta.1: Недостаточно прав для выполнения Method insertRecord".
Даже не знаю, проблема в 1С, или в чем-то другом (политика лицензирования и т.п).
Старый 03.12.2004, 10:58   #11  
djoker is offline
djoker
Участник
Аватар для djoker
 
83 / 10 (1) +
Регистрация: 28.05.2004
Адрес: Красноярск
не работает!
1С -ка говорит что ошибка!
(COM я зарегисрировал и запустил)



Как сделать не знаю
Вложения
Тип файла: img52701-1 (13.0 Кб, 885 просмотров)
__________________
Смотрим в книгу - видим фигу.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Чудо с Axapta Com Connector RVS DAX: Администрирование 9 20.11.2008 07:05
msdynamicsax: VB script that test the com connector for Dynamics Ax 4.0 Blog bot DAX Blogs 0 25.08.2008 18:05
C# and AX Development: Using the .NET Business Connector for Dynamics AX / Axapta Blog bot DAX Blogs 0 18.12.2007 04:00
Работа с COM-объектом 1С - НайтиПоКоду не ест параметры :( Tony Green DAX: Программирование 14 14.04.2004 11:29
Введение в Аксапту Роман Кошелев DAX: Прочие вопросы 0 18.12.2001 14:00

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

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

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