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

bolsun 472 6 9 11

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

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);
        }
    }
0
Длина не может быть меньше нуля.
Имя параметра: length
Орфографическая ошибка в args: args
Орфографическая ошибка в bool: bool

См. также

Получить дату через указанное количество [дней, месяцев, лет, ...]

Обмен через ВЕБ Сервисы 1 часть

Чтение XML через DOM

Заполнение информации о Контрагенте по ИНН через сервис api-fns.ru

Как изменить реквизит в движениях документа?

Запрос 1С

Проверка изменения полей регистра сведений ПередЗаписью, кеширование средствами БСП

МодульОтправкаSMSЧерезПровайдера (БСП)

ОтправитьSMS (БСП)

Модератору