Имя: Пароль:
1C
1С v8
v8: Помогите подключится к 1С по COM используя Java
,
0 nonameletters
 
30.08.12
17:25
Спасибо всем кто ответит на мой вопрос.
Есть приложение написанное на Java в нем пытаюсь подключиться к 1С.
Перечитал кучу форумов,пробовал jacob остановился на j-interop не получается подключиться к 1С. Может кто опишет подробную последовательность действий, т.е. надо ли 1С как-то регистрировать и надо ли запускать какой-то сервер 1с или просто запустить 1С или вообще этого делать не надо. Пробовал конфигурить wind'у через dcomcnfg ничего не получилось. Большая просьба опишите подробно, что для этого нужно и как это работает. В инете видел кучу разного кода, но у меня какая то загвоздка с авторизацией. Пишет The attempted logon is invalid. This is either due to a bad username or authentication information. [0xC000006D]
Перепроверил вроде все что можно и логины и пароли и указывал домены, не помогает.
Если кто это делал расскажите подробно.
Всем заранее ОГРОМНОЕ спасибо
Вот код подключения
JISession session = JISession.createSession("localhost", "Lenovo-THINK\\Lenovo", "");

       JIProgId l_progId = JIProgId.valueOf("V82.COMConnector");
       l_progId.setAutoRegistration(true);
       
       JLog.getIns().writeln("ProgId " + l_progId);
       try
       {
           comStub = new JIComServer(l_progId, "localhost", session);
           
           if (comStub != null)
           {
               JLog.getIns().writeln("ComServer not NULL");
           }
           else
           {
               JLog.getIns().writeln("ComServer IS NULL");
           }
       }
       catch (UnknownHostException e)
       {
           JLog.getIns().writeln("1C connectore 1 " + e.getMessage());
       }
       catch (JIException e)
       {
           JLog.getIns().writeln("1C connectore 2 " + e.getMessage());
       }
       catch (Exception ex)
       {
           JLog.getIns().writeln("1C connectore 3 " + ex.getMessage());
       }
1 Nexux
 
30.08.12
17:43
где-то на мисте пробегал пример
2 asady
 
30.08.12
17:48
3 Heckfy
 
30.08.12
17:49
Вариант забирать данные из промежуточного файла не рассматривается?
Вариант прямого подключения к SQL не рассматривается?
Нужно именно по COM к 1С?
4 nonameletters
 
30.08.12
18:16
Тот пример который есть на мисте очень сухой и его рассматривали
На счет промежуточного файла не пойдет т.к. задача стоит от него избавиться, почитал форумы самый нормальный вариант использовать COM
5 nonameletters
 
31.08.12
08:21
Как я понимаю есть только спецы которые гуглом умеют польщоваться :)
6 Ursus maritimus
 
31.08.12
08:30
Не знаю Java, но тебе сначала нужно создать объект "V82.COMConnector", потом вызвать у него метод Connect со строкой подключения в качестве параметра. Метод вернет объект - базу с которой можно работать.
У тебя коннекта не увидел.
7 nonameletters
 
31.08.12
08:41
Ursus maritimus, я так понимаю вы разработчик на 1с, тогда вопрос следующий.
Есть приложение 1 (П1) к которому надо подключиться и приложение 2 (П2), которое подключается к 1.
Я так понимаю все выше описанные действия вы проводите в П2 и больше ничего не делаете, т.е.  не надо запускать никаких дополнительных процессов в П1 или как то регистрировать com-объект приложения П1
8 Ursus maritimus
 
31.08.12
08:44
(7) Больше ничего не надо. Все объекты регистрируются при установке платформы. Но нужно чтобы у пользователя под которым заходим в 1С было право на Automation
9 nonameletters
 
31.08.12
08:47
Ursus maritimus, огромное вам спасибо, право Automation устанавливается в 1с, если не сложно подскажите где поискать, я с 1с не так давно общаюсь я больше по части С++ и JAVA
10 Ursus maritimus
 
31.08.12
08:49
Соврал, не Automation, а Внешнее соединение. В конфигураторе пользователю назначаются роли. нужно чтобы хотя бы у одной роли было право "Внешнее соединение".
А проще использовать роль с полными правами. на этапе отладки.
11 nonameletters
 
31.08.12
08:52
Ursus maritimus, еще раз огромное спасибо буду пытаться, как все получиться полностью опишу этот процесс, что бы закрыть эту тему раз и навсегда
12 bestuzhev
 
31.08.12
09:42
(0) Мы связывали 1C и PHP в общем остановились на технологии wsdl.