Вход | Регистрация



запрос 1C в java

запрос 1C в java
Я
   Проф
 
15.02.18 - 11:47
Не работает запрос, что не так делаю?
private void query() throws Exception{
    
        DispatchPtr zapros = (DispatchPtr) ref.invoke("NewObject", "Запрос");
        zapros.put("Текст", "ВЫБРАТЬ"
                + "|ФизическиеЛица.Ссылка"
                + "|ИЗ"
                + "|Справочник.ФизическиеЛица КАК ФизическиеЛица");
    
        zapros.put("Текст", false);

    DispatchPtr rezult = (DispatchPtr) zapros.invoke("Выполнить");
        
        Ole32.CoUninitialize();
        ref.close();
        


    }


ошибка

org.jawin.COMException: 80020009: ??????.

    at org.jawin.marshal.GenericStub.dispatchInvoke0(Native Method)
    at org.jawin.marshal.GenericStub.dispatchInvoke(GenericStub.java:201)
    at org.jawin.DispatchPtr.invokeN(DispatchPtr.java:587)
    at org.jawin.DispatchPtr.invokeN(DispatchPtr.java:555)
    at valueTable.query(valueTable.java:70)
    at valueTable.getQuery(valueTable.java:55)
    at class1.main(classNDFL.java:11)
 
 
   Вафель
 
1 - 15.02.18 - 11:51
может палочек в тексте не нужно?
   Проф
 
2 - 15.02.18 - 11:52
(1) без них тоже побывал, таже ошибка.
   Вафель
 
3 - 15.02.18 - 11:52
записши запрос в 1 строку
   Проф
 
4 - 15.02.18 - 11:54
КОМ - работает, 
выборку из справочника делает, запрос нет.
   Shur1cIT
 
5 - 15.02.18 - 11:57
(0) понимаю что вопрос не в тему, а для чего это? может проще сервис на стороне 1С поднять?
   бомболюк
 
6 - 15.02.18 - 11:58
zapros.put("Текст", false); - а это точно нужно?
   Проф
 
7 - 15.02.18 - 11:58
DispatchPtr zapros = (DispatchPtr) ref.invoke("NewObject", "Запрос");
        zapros.put("Текст", "ВЫБРАТЬ ФизическиеЛица.Ссылка ИЗ Справочник.ФизическиеЛица КАК ФизическиеЛица");

не работает, таже ошибка.
   Проф
 
8 - 15.02.18 - 11:59
(5) цель выполнить запрос в яве
   Проф
 
9 - 15.02.18 - 12:01
(3), (6) спасибо!
   Вафель
 
10 - 15.02.18 - 12:02
Ну и посмотри как в яве многострочные строки формируются
 
 Рекламное место пустует
   Проф
 
11 - 15.02.18 - 13:30
рабочий вариант.
    private void query() throws Exception{
    
        DispatchPtr zapros = (DispatchPtr) ref.invoke("NewObject", "Запрос");

        StringBuilder sb = new StringBuilder();
        
        sb.append("ВЫБРАТЬ" + "\n");
        sb.append("ФизическиеЛица.Наименование" + "\n");
        sb.append("ИЗ" + "\n");
        sb.append("Справочник.ФизическиеЛица КАК ФизическиеЛица" + "\n");
        
        zapros.put("Текст", sb.toString());

        DispatchPtr rezult = (DispatchPtr) zapros.invoke("Выполнить");
    
        DispatchPtr viborka = (DispatchPtr) rezult.invoke("Выбрать");
         while ((Boolean) viborka.invoke("Следующий")) {
             
              String NameKontr = (String) viborka.get("Наименование");
              System.out.println(ref.invoke("String", NameKontr));
         
         }
             
        Ole32.CoUninitialize();
        ref.close();
        


    }
   mingw
 
12 - 15.02.18 - 14:55
ТС извини конечно. Но как программист 1С. И как программист java.

Могу сказать что идиот. Кто то из нас.
   mingw
 
13 - 15.02.18 - 14:58
Твоя ОЛЯ в 2018 году. С 64 бит. Или на хитром фреше.

Или ломаться будет постоянно. Или просто не даст.
   Shur1cIT
 
14 - 15.02.18 - 15:07
(13) уже ему предлогал в посте (5) сервисы поднять в 1С как это обычно принято, его цель именно "выполнить запрос в яве"
   Asmody
 
15 - 15.02.18 - 15:09
Запрос в 1С через COM из java?!
Только в гамаке стоя на лыжах.
   Nyarlathotep
 
16 - 15.02.18 - 15:17
(14) (15) Нормальный запрос, все работает, что вы пристали то к нему?
   Вафель
 
17 - 15.02.18 - 15:18
может тс просто тренируется на яве писать
   mingw
 
18 - 15.02.18 - 15:35
(17) не зная даже 1С
   Вафель
 
19 - 15.02.18 - 15:41
(18) а что для этого сначала нужно 1с выучить?
   Shur1cIT
 
20 - 15.02.18 - 15:51
(16)  в наше время для обмена данными принято использовать api когда клиент не обязан знать внутреннее устройство самой базы (те через обстакцию работать).
   Shur1cIT
 
21 - 15.02.18 - 15:52
обстакцию = абстракцию
   Проф
 
22 - 15.02.18 - 20:12
(18) ты где это прочитал?
   Проф
 
23 - 15.02.18 - 20:14
части аудитории на мисте, походу надоедает комменты на маил ру и рамблере писать про хохлов и амеров, они здесь ещё успевают.
   mingw
 
24 - 15.02.18 - 20:55
(22) В твоем коде. В тупых ошибках.

Или ты текст запроса в 1С так же складываешь?
С "|" когда стоят "+".
   Fram
 
25 - 15.02.18 - 21:05
(23) https://ru.wikipedia.org/wiki/Лучшая_практика
вот это тебе пытаются объяснить
   Fram
 
26 - 15.02.18 - 21:07
(25)+ и в твоем случае Лучшей практикой будет (5)
кстати, код в (7) вполне рабочий, если ты, конечно, строку (6) потом убрал
   NorthWind
 
27 - 15.02.18 - 22:06
(16) известно, что на российском форуме в качестве ответа на любой вопрос изначально будет куча реплик на тему какой ты... глупый человек и почему тебе не надо делать то что ты делаешь, и под конец, возможно, все-таки ответят по существу вопроса :)
   Tateossian
 
28 - 15.02.18 - 22:26
Я писал dll на Native-API, с блоком API от ВК 1С и такую же внутри от jvm и средствами cpp эти две системы обменивались.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует