|
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.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |