Ole 1c EvalExpr
От: Student17  
Дата: 13.07.09 10:52
Оценка:
Здраствуйте.

label1.Text = "Режим подключения к 1с";
                    V7 = Activator.CreateInstance(Type.GetTypeFromProgID("V77.Application"));
                    Object[] arg = new Object[3];
                    arg[0] = V7.GetType().InvokeMember("RMTrade", BindingFlags.Public | BindingFlags.InvokeMethod, null, V7, null);
                    arg[1] = @"/dD:\zbase\База /nOr /p32 ";
                    arg[2] = @"NO_SPLASH_SHOW";
                    bool result = (Boolean)V7.GetType().InvokeMember(@"Initialize", BindingFlags.Public | BindingFlags.InvokeMethod, null, V7, arg);
                    if (!result)
                    {
                        label1.Text = "соединение с 1с отсутствуит";
                    V7 = null;
                    GC.Collect();
                    GC.WaitForPendingFinalizers();
                    }
                    else
                    {
                        label1.Text = "соединение  к 1с установлено";
                        arg = new Object[1];
                        arg[0] = "глПолучить1("+line_z+")";
                        Result = V7.GetType().InvokeMember("EvalExpr", BindingFlags.Public | BindingFlags.InvokeMethod, null, V7, arg).ToString(); 
                    }
                    label1.Text = "закрываем соединение к 1с";
                    V7 = null;
                    GC.Collect();
                    GC.WaitForPendingFinalizers();

В этом коде я пытаюсь запустить в 1с функцию и передать в неё параметр. так вот не получеться передать параметр. Подскажите как правильно мне это сделать?
пробовал писать вот так и все работает.

arg = new Object[1];
arg[0] = @"глПолучить1(""1"")";

В 1с функция просто возврашает переданое в неё значение.
Блогадарен за внимание.
й
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.