|
Есть ли возможность заставить работать 1C с приложениями на Java? | ☑ | ||
|---|---|---|---|---|
|
0
Arta
23.02.06
✎
21:34
|
Иными словами хотелось бы получить некие данные от Java приложения.
Или CreateObject(Java.траляля) тут никак не помогут?... :) Суть в следующем. Есть терминал-сервер, есть тонкие клиенты на базе линуха (проект thinstation). Тонкие клиенты разбросаны по зданию, и рядом нет виндовых машин. Есть острая необходимость постоянно, средставми 1С сканировать изображения. На данном этапе это уже реализовано, клиенты скомпилированы с поддержкой Sane, взята ВК sp.dll, для работы со сканерами (не знаю кто автор, но очень признателен ему), а также взят бридж SaneToTwain, небольшая софтинка, являющаяся мостом между линухом и виндами. Изза нагромождения компонент изредка бывают глюки, которые решить может только админ, чего собственно и хочется избежать... Сегодня нашел джава прилогу http://asprise.com/product/jsane/download.php, которая делает тоже самое, осталось достучаться до нее из 1с. Кто что может сказать? ЗЫ. Во избежания последующих вопросов :) Сканировать надо именно из 1с, сессии у лиентов в режиме опубликованных приложений, девайс скан-сервер стоит диких денег, а это реализовано на дешевых сканерах. |
|||
|
1
ШтушаКутуша
23.02.06
✎
21:46
|
трудновасто...попробуй у Калверта (это автор книг по Delphi) насколько я помню у него поднималась такая проблема,если найдешь-хорошо,а если нет то сиукнись ко мне в асю,но предупреждаю это будет весьма не бесплатно.
|
|||
|
2
Arta
23.02.06
✎
21:49
|
Всегда хочется халявы :)
Хотя можно попробовать декомпайл - правка сорсов чтобы в файл валила - и опять компайл... Такое уже делал, но не шибко серьезных приложений... |
|||
|
3
ШтушаКутуша
23.02.06
✎
21:53
|
я ради прикола работал из под Дельфей с Java,но это было года 3-4 тому назад
|
|||
|
4
ШтушаКутуша
23.02.06
✎
21:55
|
+3 то есть такая возможнось есть,но если работать из под 1С,то наверняка придеца писать ВК
|
|||
|
5
romix
модератор
23.02.06
✎
22:21
|
Может в 1С нужны уже отсканированные файлы, которые можно получать, например, через ОбработкаОжидания(), опрашивая папку с файлами?
|
|||
|
6
Arta
23.02.06
✎
22:25
|
(5) На крайний случай так и планировал придется сделать. Но хотелось то по правдашному, по взрослому... :)
(4) От дополнительных ВК и хотелось уйти... Если бы яву можно было бы юзать как ком объект, то проблем было бы меньше :( |
|||
|
7
ШтушаКутуша
23.02.06
✎
22:44
|
(6) для того штоб юзать ее как COM,а точнее как OLE (ибо 1С работает только с OLE объектами) необходимо преобразовать ээээ java-объект в COM,такая утилита поставляется в составе jsdk
|
|||
|
8
ШтушаКутуша
23.02.06
✎
22:59
|
или вот JavaSoft разработала (года как уж 3-4 тому назад) соедства для работы с java из под VB,а VB поддерживает только OLE,как и 1С
|
|||
|
9
romix
модератор
23.02.06
✎
23:12
|
Опрашивать наличие файла в папке можно кстати через ВК, а не обработкой ожидания.
|
|||
|
10
Arta
23.02.06
✎
23:39
|
(8) О! Это уже кое что! Спасибо, полез в дебри!
|
|||
|
11
ШтушаКутуша
23.02.06
✎
23:40
|
(10) www.javasoft.com
|
|||
|
12
ШтушаКутуша
23.02.06
✎
23:46
|
Пардон,я ошибся! коннект не с java standart edition,а с j2ee (enterprise edition!)
|
|||
|
13
ШтушаКутуша
23.02.06
✎
23:57
|
если интересно,то могу выслать: "j2eecas-1_0-ea4-win-combridge.exe "
|
|||
|
14
syktyk
24.02.06
✎
00:06
|
Там только внешняя компонента маленькая нужна для вызова Java
|
|||
|
15
syktyk
24.02.06
✎
00:07
|
Это шаблон:
/* * This is a C program that calls Java code. * This could be used as a model for building Java into an * existing application as an extention language, for example. */ #include <stdio.h> #include <jni.h> #ident "$Id: javafromc.c,v 1.7 2000/07/03 23:15:50 ian Exp $" int main(int argc, char *argv[]) { int i; JavaVM *jvm; /* The Java VM we will use */ JNIEnv *myEnv; /* pointer to native environment */ JDK1_1InitArgs jvmArgs; /* JNI initialization arguments */ jclass myClass, stringClass; /* pointer to the class type */ jmethodID myMethod; /* pointer to the main() method */ jarray args; /* becomes an array of Strings */ jthrowable tossed; /* Exception object, if we get one. */ JNI_GetDefaultJavaVMInitArgs(&jvmArgs); /* set up the argument pointer */ /* Could change values now, like: jvmArgs.classpath = ...; */ /* initialize the JVM! */ if (JNI_CreateJavaVM(&jvm, &myEnv, &jvmArgs) < 0) { fprintf(stderr, "CreateJVM failed\n"); exit(1); } /* find the class named in argv[1] */ if ((myClass = (*myEnv)->FindClass(myEnv, argv[1])) == NULL) { fprintf(stderr, "FindClass %s failed\n", argv[1]); exit(1); } /* find the static void main(String[]) method of that class */ myMethod = (*myEnv)->GetStaticMethodID(myEnv, myClass, "main", "([Ljava/lang/String;)V"); /* MyMethod = (*myEnv)->GetMethodID(myEnv, myClass, "test", "(I)I"); */ if (myMethod == NULL) { fprintf(stderr, "GetStaticMethodID failed\n"); exit(1); } /* Since we're calling main, must pass along the command line arguments, * in the form of Java String array? */ if ((stringClass = (*myEnv)->FindClass(myEnv, "java/lang/String")) == NULL){ fprintf(stderr, "get of String class failed!!\n"); exit(1); } /* make an array of Strings, subtracting 1 for progname & 1 for the * java class name */ if ((args = (*myEnv)->NewObjectArray(myEnv, argc-2, stringClass, NULL))==NULL) { fprintf(stderr, "Create array failed!\n"); exit(1); } /* fill the array */ for (i=2; i<argc; i++) (*myEnv)->SetObjectArrayElement(myEnv, args, i-2, (*myEnv)->NewStringUTF(myEnv, argv[i])); /* finally, call the method. */ (*myEnv)->CallStaticVoidMethodA(myEnv, myClass, myMethod, &args); /* And check for exceptions */ if ((tossed = (*myEnv)->ExceptionOccurred(myEnv)) != NULL) { fprintf(stderr, "%s: Exception detected:\n", argv[0]); (*myEnv)->ExceptionDescribe(myEnv); /* writes on stderr */ (*myEnv)->ExceptionClear(myEnv); /* OK, we're done with it. */ } (*jvm)->DestroyJavaVM(jvm); /* no error checking as we're done anyhow */ return 0; } |
|||
|
16
Arta
24.02.06
✎
00:08
|
Давай, мыло в подмыльнике!
|
|||
|
17
Arta
24.02.06
✎
00:52
|
(13),(15) Спасибо, буду разбираться.
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |