powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / java работа с БД 1С версии 8.
23 сообщений из 23, страница 1 из 1
java работа с БД 1С версии 8.
    #37672894
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно есть ли возможность из явы ходить в базы 1C? Или всеже делать импорт/экспорт через XML? Что посоветуете?
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37672942
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jab,
поищи была тут даже готовая библиотека (8-ка или нет не помню)
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37673848
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jabСобственно есть ли возможность из явы ходить в базы 1C? Или всеже делать импорт/экспорт через XML? Что посоветуете?

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

вроде как в 1С есть возможность организовать SOAP web сервисы, не?
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37674134
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
java работа с БД 1С версии 8.
    #37674474
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не работал с этим 1С. Знаю что там долбанный русский синтаксис. Какие там БД используются х.з. Как узнать х.з. Это надо иметь непосредственный доступ к их копии 1С? Т.е. могут быть отличия и заточки под конкретно взятое предприятие, я так понимаю? Т.е. есть версия 8, но у меня будет база MS SQL, а в соседней канторе postgres? И АПИ могут быть разные?
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37674503
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jab,
ну, не работал, так спроси. На это и форум.
Я могу сказать про 7-ку.
Под 8-ку не писал, там вроде большие изменения в архитектуре.
- язык можно писать на том на каком нравится. Компилятор ихний. (а вот в API не знаю)
- через API тебе всё равно какая БД (как в хибере)
- у OLE есть интерфейс (interface). Поддержка совместимости версий. Всё как в Java. Для этого MS их и придумала.
Я ответил?
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37674516
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кроме того Disp интерфейсы ищутся вообще не по имени метода, а по номеру.
Это всё должно быть скрыто в Java-обёртке (поиск)
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37674526
jab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123, скорее больше вопросов, чем ответов добавилось. :)
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37674531
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jab,
дак поищи поиском - было готовое. Во 2 посте советовал.
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #37675151
Gust2002
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В 1С используется объектная проекция на реляционную БД. Никаких общих механизмов для доступа к свои базам они делать не собираются. Как мне кажется это связано с желанием держать рынок под собой. Подключаться к 1С лучше всего через СОМ. При этом код обработок по сути пишется на языке 1С. В последних версиях платформы 8.2 появилась поддержка внешних источников данных и теперь можно напрямую подключаться к другим СУБД (кажется через ODBC). В данном случае код также придется писать на языке 1С. Гавеность языка (имхо) заключается не в русском синтаксисе, а в отсутствии поддержки ООП.
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #38099859
Elisy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть альтернативное подключение из 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
java работа с БД 1С версии 8.
    #38099899
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1ц имеет базы на MS SQL, PostgreSQL и в собственном формате. Лезть внутрь мс скл или постгрес можно но, вероятно, не нужно. Это ж не поделка на коленке, структура слишком сложна.
Можно вызывать 1ц через COM но это тоже не всегда подходит.
Можно через собственную 1-совую синхронизацию посылками документов в хмл.
Наиболее бескровный способ это обращаться к данным через веб-сервис который сделает 1-сник.

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

Да, без нормального 1-сника не обойтись.
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #38100418
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
java работа с БД 1С версии 8.
    #38100469
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оракл-то причем тут? 1ц работает только под мсскл или постгрес.

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

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

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

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

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

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

Сам дурак. Я ж не 1сник, за обновлениями не слежу.
...
Рейтинг: 0 / 0
java работа с БД 1С версии 8.
    #38101247
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
java работа с БД 1С версии 8.
    #38101415
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сложность изменения данных в том что контроль целостности осуществляется 1с-ом а не скл-сервером. Хотя разобраться можно, если только читать данные то проще, если менять то намного сложнее.

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


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