Re[3]: 1С и .NET
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 08.10.03 12:28
Оценка:
Здравствуйте, abdula, Вы писали:

S>> Соди на http://www.gotdotnet.ru/ там есть пример.

A>это не то
A>запускаеться мой *.exe, он лезет в 1С и грузит себе все необходимое из нее, после небольшой обработки, выгружаем в 1С.
A>в данном случае юзеру не нать запускать 1С.

Посмотри v77websrv или я тебе ее скину. Честно не промню где взял. Но принцип обычный, на рефлексии.

lateBoundType=Type.GetTypeFromProgID("v77S.Application");
v77=Activator.CreateInstance(lateBoundType);
arg[0]=lateBoundType.InvokeMember("RMTrade",BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static,null,v77,null);
arg[1]=@"/D"+v77base+" /N"+user+" /P"+password;
arg[2]="NO_SPLASH_SHOW";



lateBoundType.InvokeMember("Initialize", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v77,arg);
object[] arg2=new object[]{@""+v77object};

object getv77object=lateBoundType.InvokeMember("CreateObject", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null,v77, arg2);
getv77object.GetType().InvokeMember("ВыбратьЭлементы", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, getv77object,null);


while(((double)getv77object.GetType().InvokeMember("ПолучитьЭлемент", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, getv77object,null))==1)

{

myDataRow = myDataTable.NewRow();
for (int i=0; i<param.Length; i++)
{
myDataRow[(param[i].ToString())]=getv77object.GetType().InvokeMember((param[i].ToString()), BindingFlags.GetProperty, null,getv77object,null);

}
myDataTable.Rows.Add(myDataRow);

}


Marshal.ReleaseComObject(getv77object);
Marshal.ReleaseComObject(v77);
return myDataSet;

}
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.