Re[7]: 1С и .NET
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 06.02.06 09:36
Оценка:
Здравствуйте, ablazhko, Вы писали:


Посмотри еще
http://www.codeproject.com/csharp/SafeCOMWrapper.asp
и солнце б утром не вставало, когда бы не было меня
Re[7]: 1С и .NET
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 06.02.06 09:52
Оценка:
Здравствуйте, ablazhko, Вы писали:


A>object [] arg1 = new object[] {"ProcessCountriesList()"};

A> lateBoundType.InvokeMember("EvalExpr", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v77, arg1);

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemtypeclassinvokemembertopic3.asp
и солнце б утром не вставало, когда бы не было меня
Re[7]: 1С и .NET
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 06.02.06 10:35
Оценка:
Здравствуйте, ablazhko, Вы писали:

До кучи http://msdn.microsoft.com/msdnmag/issues/03/09/CustomMarshaling/
и солнце б утром не вставало, когда бы не было меня
Re[7]: 1С и .NET
От: t_a_n_k Россия http://www.ufastudio.ru
Дата: 24.08.06 04:48
Оценка:
Здравствуйте, ablazhko, Вы писали:

A>интересует как получить возвращаемое значение функции 1С


Все еще актуально. Посмотрел ссылки в конце ветки, ниче толком не понял
...Безумству храбрых поем мы песню... (с) М.Горький
Re[8]: 1С и .NET
От: Red Bird Россия  
Дата: 24.08.06 06:46
Оценка:
Здравствуйте, t_a_n_k, Вы писали:

___>Здравствуйте, ablazhko, Вы писали:


A>>интересует как получить возвращаемое значение функции 1С


___>Все еще актуально. Посмотрел ссылки в конце ветки, ниче толком не понял


Тоже не все понял из этой ветки...

Вообще сейчас для обмена данными, что с V77, что с V8 можно (и даже нужно) использовать XML.
Благо на диске ИТС лежат две конфигурации:

Поэтому для offline проще (и надежнее) обмениваться данными через XML.
Re[9]: 1С и .NET
От: t_a_n_k Россия http://www.ufastudio.ru
Дата: 24.08.06 06:50
Оценка:
Здравствуйте, Red Bird, Вы писали:

RB>Поэтому для offline проще (и надежнее) обмениваться данными через XML.


xml в моем случае не подходит — нужно именно ловить возвращаемые значения.
...Безумству храбрых поем мы песню... (с) М.Горький
Re[10]: 1С и .NET
От: t_a_n_k Россия http://www.ufastudio.ru
Дата: 24.08.06 09:10
Оценка:
У меня получилось примерно следующее:

string BaseCatalog=@"\\Test_base", User="TestDimon",Pass="123";
object[] arg=new object[3];
Type lateBoundType=Type.GetTypeFromProgID("v77S.Application",true);
object v77=Activator.CreateInstance(lateBoundType);
arg[0]=lateBoundType.InvokeMember("RMTrade",BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static,null,v77,null);
arg[1]=@"/D"+BaseCatalog+" /N"+User+" /P"+Pass;
arg[2]="";
lateBoundType.InvokeMember("Initialize",BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static,null,v77,arg);
object [] arg1 = new object[] {"FuckAchtung()"};
// выполняем ф-ию
object Params=lateBoundType.InvokeMember("EvalExpr", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v77, arg1);
// получаем значения
txtInfo.Text+="Value: "+(string)Params;
//before exit
System.Runtime.InteropServices.Marshal.ReleaseComObject(v77);
// чистим память, иначе процесс все равно остается.
GC.GetTotalMemory(true);


Ф-ия в 1С позращает один параметр.
...Безумству храбрых поем мы песню... (с) М.Горький
Re[11]: 1С и .NET
От: Red Bird Россия  
Дата: 24.08.06 11:14
Оценка:
Здравствуйте, t_a_n_k, Вы писали:

Ну, общем, да.

Только у меня 1cv7s.exe выгуржается из памяти по:
//before exit
System.Runtime.InteropServices.Marshal.ReleaseComObject(v77);
Re[12]: 1С и .NET
От: t_a_n_k Россия http://www.ufastudio.ru
Дата: 24.08.06 11:17
Оценка:
Здравствуйте, Red Bird, Вы писали:

RB>Здравствуйте, t_a_n_k, Вы писали:


RB>Ну, общем, да.


RB>Только у меня 1cv7s.exe выгуржается из памяти по:

RB>
RB>//before exit
RB>System.Runtime.InteropServices.Marshal.ReleaseComObject(v77);
RB>


Ну дык она и должна в этом месте выгружаться, но как я понял не всегда.
У меня процесс висит, пока память не почищу.
...Безумству храбрых поем мы песню... (с) М.Горький
Re[4]: 1С и .NET
От: t_a_n_k Россия http://www.ufastudio.ru
Дата: 14.09.06 06:31
Оценка:
Господа, а как же все-таки передать аргумент в вызываеммую 1С-ную ф-ию?
Например делаю так:

object [] arg1 = new object[] {"SomeFunction()"};


Удачно проходит только аргумент, как строка:

object [] arg1 = new object[] {"SomeFunction(\"bla-bla\")"};


А как передать в функцию массив или еще че-нить?
...Безумству храбрых поем мы песню... (с) М.Горький
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.