К 1С через драйвер jdbc

  • Автор темы HITMAN-NN
  • Дата начала
H

HITMAN-NN

Гость
#1
Народ срочно нужна ваша помощь.... Сам я программирую в лотусе и сейчас передомной стоит задача интеграции с 1С. И тут у мя появился вопрос, а через jdbc-драйвер можно подсоединиться и работать с 1С. В инете искал че-то вообще глухо...
Посоветуйте что-нито, скиньте какую-нито инфу....
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#2
1С хранит данные либо в ДБФ, либо в SQL - понятно куда копать?
 
H

HITMAN-NN

Гость
#3
ээээээ, а инфа есть какя-нито, ну или примерчик какой-нито...
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#4
инфаааааааа. есть! море инфы в интернете, как используя ODBC-провайдеры подключаться к базам данных и работать с ними. Структуру базы 1С можно узнать из файла 1cv7.dd (для ДБФ версии) или 1cv7.dds (для сиквельной версии).
НО! Если вам необходимо не только читать из базы, но и писать в нее, лучше связываться с 1С по OLE и использовать внутренние процедуры 1С для создания и модификации объектов. Хотя, в принципе, это касается только создания объектов.
 
H

HITMAN-NN

Гость
#5
Понятно.... Да мне нужно дергать данные из 1С, писать в 1С и синхронизировать данные 1С с данными из Lotus
Я тут проанализировал техническую платформу для интеграции(http://www.v8.1c.ru/overview/integration.htm) и насколько я понимаю самы лучший способ интегрироваться с 1С:предприятие через Com-соединение. Ваши мнения как опытных 1С?

И еще, а как в 1С можно отселиживать изменения в документах?
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#6
И еще, а как в 1С можно отселиживать изменения в документах?
Если настроить распределенную базу, 1С будет сама отслеживать и записывать изменения в любых объектах. Вам надо будет только прочитать эти данные...
 
H

HITMAN-NN

Гость
#7
А не подскажите где эти настройки провести, что бы 1С сама отслеживала изменения....
 
M

Mirage

Гость
#8
Если 8.1 то сдается мне что лучше всего через веб сервисы, можно и по оле, из лотуса это достаточно просто,
но всетаки, если в вашей 1с один раз определить нормально хмл интерфейсы, и через них работаь, то это даже
смахивает на хай теч и универсальность решения :blink:
 
H

HITMAN-NN

Гость
#9
Я так и сделал, интеграцию провожу спомощью веб-сервисов.... и теперь остался один вопрос на повестке: синхронизировать данные, тобишь, отслеживать в каких документах 1С происходят изменеия за день и потом обновить эту инфу в доках лотус
 
M

Mirage

Гость
#10
Тогда создавай план обмена, он и будет заниматься тем что будет следить за твоей базой, и через интерфейсы вебсервисов будешь получать данные что изменилось, а потом и то что само изменилось получишь
 
H

HITMAN-NN

Гость
#11
эээээ, а можно поподробнее о плане обмена, а то с 1С я тока начинаю работать....
 
M

Mirage

Гость
#12
Тут поподробнее сложно, надо брать книгу и смотреть, или лезть в документацию что сложно, если нужна дока, могу поделиться, пиши на мыло что нибуть подберем
adeptsystem[at]gmail.com
 
N

nkultashev

Гость
#13
Народ срочно нужна ваша помощь.... Сам я программирую в лотусе и сейчас передомной стоит задача интеграции с 1С. И тут у мя появился вопрос, а через jdbc-драйвер можно подсоединиться и работать с 1С. В инете искал че-то вообще глухо...
Посоветуйте что-нито, скиньте какую-нито инфу....
Есть такой драйвер.

Наша команда написала драйвер JDBC для 1С v8. Сейчас поддерживается спецификация JDBC v1.5. Драйвер работает через 1С API и сам в данные не лезет. Соединение с 1С производится через DCOM. Модификаций в конфигурации 1С не требуется.

Драйвер работает только на чтение, но под драйвером лежит наше Java API, которое практически повторяет 1С API и позволяет производить модификацию данных из внешних программ Java.

Драйвер и API мы писали в первую очередь для себя. Сейчас есть описание двух примеров использования JDBC:

Статья «Использование JDBC драйвера для доступа к информации 1С»: http://www.interprocom.ru/files/File/integ...JDBC&1C.pdf

Статья «Использование 1С JDBC в Java Compute node при написании потоков обработки сообщений IBM WebSphere Message Broker»: http://www.interprocom.ru/files/File/integ...mp;MQBroker.pdf

Screenshot с подключенным к eclipse драйвером: http://picasaweb.google.com/lh/photo/tE8im...feat=directlink

Мы можем дать бесплатно текущую версию драйвера, чтобы кто-то попробовал с ним работать и рассказал нам о результатах и проблемах.

Если интересно - пишите.
 

vitfil

IT-интегратор
02.04.2004
2 062
0
#14
Если найдутся страждущие и тема получит продолжение, выделю в отдельный топик JDBC для 1С. Возможно даже закрепим. Мне всегда были интересны темы интеграции. У самого, к сожалению, не хватает времени провести оценку проделанной вами работы. Тем не менее, являясь давним поклонником Java и работ в сфере интеграции и расширения возможностей программного обеспечения, с большим уважением отношусь к вашей работе.
Вот только ссылки на первые 2 статьи нерабочие.
 
N

nkultashev

Гость
#17
Извините, что не сразу ответил. Из-за процедурных вопросов мы пока не можем пакет в открытый доступ. Мы пришлём вам драйвер/ссылку.
 

oshmianski

Достойный программист
Lotus team
25.04.2012
547
13
#18
Есть еще j1с.

Это java библиотека, которая позволяет соединяться с базами 1С и выполнять запросы.
http://j1c.ru/ - сейчас сайт почему-то недоступен, попробуйте поискать.

У меня это было приблизительно <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">так</div></div><div class="sp-body"><div class="sp-content"><!--shcode--><pre><code class='java'>package pkg1c;

import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import ru.j1c.V7;
import ru.j1c.ManagerV7;
import ru.j1c.Metadatas.Catalog;
import ru.j1c.RecordSet;

public class Main {
private static V7 v7;

public static void main(String[] args) throws SQLException {
v7 = ManagerV7.getConnection(\"//ip_машины/папка_бд\");

Catalog catalog = (Catalog) v7.getMetaData().selectTypes(\"Справочник.Города\").get(0);

RecordSet r = v7.getRecordSet();
ResultSet rs = r.executeQuery(\"select * from $Справочник.\" + catalog.getName() + \" where Code=1\");
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
for (int c = 0; c < rsmd.getColumnCount(); c++) {
System.out.println (rsmd.getColumnLabel(c+1) + \": \" + rs.getObject(c + 1));
}
}
}

}[/CODE]