Запрос через COM из .NET

Добавил: bolsun

Создает и выполняет запрос 1С через COM соединение

COM .NET С#
class Program
    {
        static void Main(string[] args)
        {
            var v8comConnector = Type.GetTypeFromProgID("V83.ComConnector");
            var v8 = Activator.CreateInstance(v8comConnector);
            Object[] arguments = { @"File=""C:\Users\user\Documents\InfoBase2\"";" };
            var x = v8comConnector.InvokeMember("Connect", BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, v8, arguments);
            var query = InvokeObjectMethod(v8, x, "NewObject", new Object[] { "Запрос" });
            SetObjectProperty(v8, query, "Текст", new Object[] { "ВЫБРАТЬ Справочник1.Наименование ИЗ Справочник.Справочник1 КАК Справочник1" });
            var result = InvokeObjectMethod(v8, query, "Выполнить", new Object[] { });
            var selection = InvokeObjectMethod(v8, result, "Выбрать", new Object[] { });
            while ((bool)InvokeObjectMethod(v8, selection, "Следующий", new Object[] { }))
            {
                var name = GetObjectProperty(v8, selection, "Наименование");
                Console.WriteLine("Наименование: " + name);
            }
        }

        public static object GetObjectProperty(object v8, object refObject, string propertyName)
        {
            return v8.GetType().InvokeMember(propertyName, BindingFlags.GetProperty, null, refObject, null);
        }

        public static object SetObjectProperty(object v8, object refObject, string propertyName, Object[] value)
        {
            return v8.GetType().InvokeMember(propertyName, BindingFlags.SetProperty, null, refObject, value);
        }

        public static object InvokeObjectMethod(object v8, object refObject, string methodName, Object[] parameters)
        {
            return v8.GetType().InvokeMember(methodName, BindingFlags.Public | BindingFlags.InvokeMethod | BindingFlags.Static, null, refObject, parameters);
        }
    }
Назад к списку

Комментарии

FastCode - сервис поиска кода 1С

Уже более 1000 разработчиков используют FastCode в работе!