Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / java работа с БД 1С версии 8. / 23 сообщений из 23, страница 1 из 1
21.02.2012, 16:54:20
    #37672894
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
Собственно есть ли возможность из явы ходить в базы 1C? Или всеже делать импорт/экспорт через XML? Что посоветуете?
...
Рейтинг: 0 / 0
21.02.2012, 17:12:25
    #37672942
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
jab,
поищи была тут даже готовая библиотека (8-ка или нет не помню)
...
Рейтинг: 0 / 0
22.02.2012, 09:50:24
    #37673848
Озверин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
jabСобственно есть ли возможность из явы ходить в базы 1C? Или всеже делать импорт/экспорт через XML? Что посоветуете?

Так у 1с8 не базы, а конкретные базы) Например там вполне может быть postgres.
...
Рейтинг: 0 / 0
22.02.2012, 09:58:11
    #37673863
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
ОзверинjabСобственно есть ли возможность из явы ходить в базы 1C? Или всеже делать импорт/экспорт через XML? Что посоветуете?
Так у 1с8 не базы, а конкретные базы) Например там вполне может быть postgres.
я думаю, он в кавычках сказал про БД.
IMHO нужен доступ к 1С (API).
К базе у нас JDBC и SQL
...
Рейтинг: 0 / 0
22.02.2012, 12:07:17
    #37674124
vie
vie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
jab,

вроде как в 1С есть возможность организовать SOAP web сервисы, не?
...
Рейтинг: 0 / 0
22.02.2012, 12:14:49
    #37674134
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
viejab,
вроде как в 1С есть возможность организовать SOAP web сервисы, не?
много чего есть.
Но так же проще?:
Delphi
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
OleFizLica:=Ole1C.CreateObject('Справочник.ФизическиеЛица'); //6
     if not VarIsEmpty(OleFizLica) then begin //7
       if OleFizLica.ВыбратьЭлементы>0 then begin //8
          while OleFizLica.ПолучитьЭлемент>0 do //9
           begin
            ListBox1.Items.Add(OleFizLica.Код+'  '+OleFizLica.Наименование); //11
          end;
       end; //13
     end; 


______________________________________________
"Сделай настолько просто, насколько это возможно, но не проще". © А. Эйнштейн.
AutoPOI.ru — ГИС-технологии для Oracle
...
Рейтинг: 0 / 0
22.02.2012, 14:44:29
    #37674474
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
Я не работал с этим 1С. Знаю что там долбанный русский синтаксис. Какие там БД используются х.з. Как узнать х.з. Это надо иметь непосредственный доступ к их копии 1С? Т.е. могут быть отличия и заточки под конкретно взятое предприятие, я так понимаю? Т.е. есть версия 8, но у меня будет база MS SQL, а в соседней канторе postgres? И АПИ могут быть разные?
...
Рейтинг: 0 / 0
22.02.2012, 14:55:47
    #37674503
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
jab,
ну, не работал, так спроси. На это и форум.
Я могу сказать про 7-ку.
Под 8-ку не писал, там вроде большие изменения в архитектуре.
- язык можно писать на том на каком нравится. Компилятор ихний. (а вот в API не знаю)
- через API тебе всё равно какая БД (как в хибере)
- у OLE есть интерфейс (interface). Поддержка совместимости версий. Всё как в Java. Для этого MS их и придумала.
Я ответил?
...
Рейтинг: 0 / 0
22.02.2012, 14:57:50
    #37674516
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
кроме того Disp интерфейсы ищутся вообще не по имени метода, а по номеру.
Это всё должно быть скрыто в Java-обёртке (поиск)
...
Рейтинг: 0 / 0
22.02.2012, 15:02:24
    #37674526
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
Petro123, скорее больше вопросов, чем ответов добавилось. :)
...
Рейтинг: 0 / 0
22.02.2012, 15:05:57
    #37674531
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
jab,
дак поищи поиском - было готовое. Во 2 посте советовал.
...
Рейтинг: 0 / 0
22.02.2012, 22:38:48
    #37675151
Gust2002
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
В 1С используется объектная проекция на реляционную БД. Никаких общих механизмов для доступа к свои базам они делать не собираются. Как мне кажется это связано с желанием держать рынок под собой. Подключаться к 1С лучше всего через СОМ. При этом код обработок по сути пишется на языке 1С. В последних версиях платформы 8.2 появилась поддержка внешних источников данных и теперь можно напрямую подключаться к другим СУБД (кажется через ODBC). В данном случае код также придется писать на языке 1С. Гавеность языка (имхо) заключается не в русском синтаксисе, а в отсутствии поддержки ООП.
...
Рейтинг: 0 / 0
04.01.2013, 10:31:48
    #38099859
Elisy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
Есть альтернативное подключение из Java к 1C вместо COM. 1С публикуется через веб в этом случае
http://www.1csoftware.com/connector/ru-ru
Код доступа примерно такой:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
import net.elisy.businessconnector.*;
import net.elisy.businessconnector.types.*;
import net.elisy.businessconnector.vm.*;

          Connection connection = new Connection(connectionString);
            connection.open();
            connection.login();
            connection.getLicenseManager().activate(serialNumber, companyName, activationKey);
            GlobalContext globalContext = new GlobalContext(connection);

        StructureType s = new StructureType(globalContext);
        s.put("null", new NullType());
        s.put("undefined", new UndefinedType());

        StringType st = new StringType();
        st.setValue("String1");
        s.put("string", st);
        NumberType nt = new NumberType();
        nt.setValue(12345.678);
        s.put("number", nt);
        DateType dt = new DateType();
        dt.setValue(new Date());
        s.put("date", dt);
        BooleanType bt = new BooleanType();
        bt.setValue(true);
        s.put("boolean", bt);

        StringBuilder script = new StringBuilder();
        script.append("result = new Structure();\n");
        script.append("result.insert(\"null\", parameters.null);\n");
        script.append("result.insert(\"undefined\", parameters.undefined);\n");
        script.append("result.insert(\"string\", parameters.string);\n");
        script.append("result.insert(\"number\", parameters.number);\n");
        script.append("result.insert(\"date\", parameters.date);\n");
        script.append("result.insert(\"boolean\", parameters.boolean);\n");
        StructureType result = (StructureType)globalContext.getServerModule("ElisyBusinessConnector").invoke("Invoke", new Object[] { script.toString(), s });
...
Рейтинг: 0 / 0
04.01.2013, 12:03:12
    #38099899
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
1ц имеет базы на MS SQL, PostgreSQL и в собственном формате. Лезть внутрь мс скл или постгрес можно но, вероятно, не нужно. Это ж не поделка на коленке, структура слишком сложна.
Можно вызывать 1ц через COM но это тоже не всегда подходит.
Можно через собственную 1-совую синхронизацию посылками документов в хмл.
Наиболее бескровный способ это обращаться к данным через веб-сервис который сделает 1-сник.

Можно комбинировать все варианты (скажем, синхронизация раз в неделю посылками а оперативные изменения через веб-сервис).

Да, без нормального 1-сника не обойтись.
...
Рейтинг: 0 / 0
05.01.2013, 08:35:04
    #38100418
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
10241ц имеет базы на MS SQL, PostgreSQL и в собственном формате. Так же может быть Oracle и IBM DB2.

1. Соответственно можете писать запросы к вышеперечисленным серверам БД, минуя движок 1С. Окромя собственного формата, но этот формат в пром. эксплуатации встречается достаточно редко. Но чаще чем Oracle, IBM DB2 и PostgreSQL вместе взятые.
Наиболее распространенный сервер БД под 1С - MS SQL. Процентов 70-80 всех внедрений, если не больше.
Все это касается версии 8.2.
С версией 7.7 ситуация иная, там БД могут быть в форматах: MS SQL (официально выше MS SQL 2000 не поддерживается) и DBase.
Для 7.7 тоже можете писать запросы в обход движка 1С.

2. Как писал Petro123, если через API тебе всё равно какая БД (какой формат БД). Читаем книжку технология создания внешних компонент для 1С. Технология создания внешних компонент (DLL) для 7.7 и 8x практически не отличаются. Для 8x по сравнению с 7.7 есть некоторые ограничения, касаются они создания компонент для подключение к 1С в режиме конфигуратора. Для 8x подключение в режиме конфигуратора невозможно, только в режиме предприятия. Но оно вам и не надо.

3. Также можете воспользоваться механизмом обмена пакетами XDTO. Полностью поддерживается 8.2 на уровне платформы. Версией 7.7 XDTO на уровне платформы не поддерживается.

4. OLE - это из области извращений, на больших массивах данных будут тормоза.
...
Рейтинг: 0 / 0
05.01.2013, 12:46:10
    #38100469
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
оракл-то причем тут? 1ц работает только под мсскл или постгрес.

Формат структуры там несложный, можно парой функций вытащить соответствие 1ц-ых документов таблицам в мсскл. Но целостность данных поддерживается средствами 1ц а не склсервера, поэтому работать с данными напрямую сложно если это боевая система не тестовая установка.

Про оле/ком глупость какая-то, это ж просто интерфейс вызова 1ц-ных функций, как он может тормозить.
...
Рейтинг: 0 / 0
05.01.2013, 18:34:16
    #38100652
tumblerrr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
1024оракл-то причем тут? 1ц работает только под мсскл или постгрес..

О, 1024 опять неадекватен чуть более чем полностью... )))

1С работает с ораклом вообще-то.
...
Рейтинг: 0 / 0
06.01.2013, 00:27:35
    #38100799
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
tumblerrr1024оракл-то причем тут? 1ц работает только под мсскл или постгрес..

О, 1024 опять неадекватен чуть более чем полностью... )))

1С работает с ораклом вообще-то.

Сам дурак. Я ж не 1сник, за обновлениями не слежу.
...
Рейтинг: 0 / 0
07.01.2013, 00:20:56
    #38101247
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
1024 Но целостность данных поддерживается средствами 1ц а не склсервера, поэтому работать с данными напрямую сложно если это боевая система не тестовая установка.

В чем сложность та, работы напрямую если это не тестовая установка? У меня не раз обмен данными данными обходя движок 1С был реализован, еще со времен 7.7.
А в крайний раз у меня так вообще админ, не програмер, обмен написал на T-SQL с системой учета рабочего времени.
Какие то мифы глаголите.

1024Про оле глупость какая-то, это ж просто интерфейс вызова 1ц-ных функций, как он может тормозить. Побывали? А я побывал и не только я. Почитайте хоть что ли форумы по 1С. OLE для 1С, на обмен данными вам вряд ли в здравом уме кто посоветует.

1024 Я ж не 1сник, за обновлениями не слежу. Прежде чем, про 1С что то говорить надо было с этого и начинать. Этим обновлениям уже 2 года, как 8.2 вышла. А с IBM DB2 1C начала работать намного раньше, чем с postgres лет 5 назад .
...
Рейтинг: 0 / 0
07.01.2013, 12:49:34
    #38101415
1024
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
Сложность изменения данных в том что контроль целостности осуществляется 1с-ом а не скл-сервером. Хотя разобраться можно, если только читать данные то проще, если менять то намного сложнее.

OLE это Object Linking and Embedding , оно не может само тормозить. Хотя дурное дело нехитрое.
...
Рейтинг: 0 / 0
09.01.2013, 16:05:18
    #38103653
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
1024Сложность изменения данных в том что контроль целостности осуществляется 1с-ом а не скл-сервером. Хотя разобраться можно, если только читать данные то проще, если менять то намного сложнее.

Нет проблема совсем не в контроле целостности. Разобраться как располагаются данные в таблицах конкретного документа или справочника или регистра сведений, и в их ссылочной целостности не сложно . Тем более, что инструментов позволяющих это сделать - полно, на любой вкус и цвет.
Проблема в другом - в проведении документов по регистрам. Т.е. каждый документ при проведении делает записи в кучу аналитических и вспомогательных расчетных таблиц (регистров), причем по достаточно сложным алгоритмам. Вот здесь обычно и делается такая вещь как - документы и справочники создаются средствами например T-SQL (а лучше в соответствии со стандартом ANSI SQL 92, тогда можно будет полностью абстрагироваться от диалектов SQL и создать кросплатформеное решение), а проводятся средствами 1С. Для не 1С ника - это будет самый оптимальный вариант. Т.к. в этом случае как то серьезно понимать внутренний язык 1С не необходимости. Весь код на 1С будет представлять собой несколько строк: Документ.<ВидДокумента>.Провести() в цикле + Запрос который возвращает список документов которые необходимо провести (синтаксис запросов в 1С 8x полностью SQL подобен, можно писать и на латинице) для этого цикла + платформа 1С сейчас позволяет использовать в своих запросах внешние источники данных для выборки в своих запросах + для удобства обернуть этот код в регламентное задание.

1024OLE это Object Linking and Embedding , оно не может само тормозить. Хотя дурное дело нехитрое.
Разве я писал, что OLE тормозит? Я написал, что OLE в 1С тормозит. Т.е. конкретная реализация технологии в движке 1С.
Очень показательно в этом отношении отказ от использования этой технологии в конфигурации конвертация данных. В первой версии этой конфигурации метаданные из конвертируемых конфигураций загружались по OLE. Во второй, нынешней версии, метаданные конвертируемых конфигураций выгружаются в XML и загружаются в саму конфигурацию конвертация данных из этого XML. Хотя казалось как было удобно - подключился по OLE да читай эти метаданные.
...
Рейтинг: 0 / 0
10.01.2013, 13:28:56
    #38104757
eJack
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
У меня вопрос - вот реально нужно упираться и написать решение на Java?
Я не знаю целиком всю картину, но я бы взял .NET написал нужные мне сервисы и обращался бы к ним из Java.
просто на .NET уже все есть - погуглите на тему.
Например вот - http://www.1c.ru/news/info.jsp?id=11871 и вот
http://www.1csoftware.com/dotnet/en-us/solutions
...
Рейтинг: 0 / 0
10.01.2013, 14:23:35
    #38104846
fritorit
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
java работа с БД 1С версии 8.
Спасибо за полезную инфу. Друг подсказал ваш форум. Прикланяюсь к специалистам вашего форума.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / java работа с БД 1С версии 8. / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]