![]() |
#6 |
Участник
|
Я вообще программировать в Nav не умею, но попытаюсь Вам помочь, т.к. подключиться к 1С можно из любой программы используя Com.
1. Прежде всего на компьютере, где будет запускаться вызов COM клиента 1С, этом COM клиент должен быть установлен. Для проверки сделайте в реестре поиск по "v81.COMConnector" Если такой ProgId существует, то компонент зарегистрирован. 2. Вот пример кода из Аксапты как выполнять запросы в 1С. Код: str text; //В аксапте есть универсальный класс Com, через который можно создать любой Com-объект по его ProgId или CLSID. Думаю у вас должно быть что-то подобное. Com com1c, con, query, Result, Choose; ; //Создаем объект com1c = new Com("v81.COMConnector"); // Подключение к БД con = com1c.Connect("srvr=\"сервер\";ref=\"конфигурация\";Usr=\"пользователь\";pwd=\"пароль\";"); //Пишем запрос на синтаксисе 1С text = " ВЫБРАТЬ * ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица" + " ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФИОФизЛиц КАК ФИОФизЛиц" + " ПО ФизическиеЛица.Ссылка = ФИОФизЛиц.ФизЛицо" + " ГДЕ ФизическиеЛица.Код <> \"000000001\""; // Создаем объект Запрос query = con.NewObject("Запрос"); query.Text(Text); // Выполнение запроса Result = Query.Execute(); //Открываем выборку запроса Choose = Result.Choose(); // Выборка результата выполнения запроса While (Choose.Next()) { //До полей справочника можно добраться через точку. И почему-то в аксапте к ним нужно обращаться как к методам, т.е. сос скобками на конце. Вот пример. //Choose.Код(); //Choose.ФАМИЛИЯ(); //Choose.ИМЯ(); //Choose.ОТЧЕСТВО(); //Choose.ДАТАРОЖДЕНИЯ(); //Choose.ИНН(); //Choose.СтраховойНомерПФР(); } |
|