JVM Native API плагин - для запуска в 1С плагинов написанных на Java

Публикация № 850716

Разработка - Разработка внешних компонент

ВК Java v8 Dev kafka JVM Native api

Запускаем виртуальную машину Java в 1С. Собрана внешняя компонента которая позволяет запускать виртуальную машину java в среде 1С. Позволяет как передавать параметры в java - так и получать уведомление через externalevent. Предпосылкой создания являлся тот факт, что есть много готового функционала которого не хватает в 1С. Язык сpp - довольно сложен для быстрой разработки, и теперь возможно использовать готовые сборки java классов (так называемые jar-файлы) для использования в 1С.

Собрана только под Windows 32-bit и 64-bit!

Компонента позволяет запускать виртуальную машину Java в 1С, загружать необходимые jar – библиотеки, а так же выполнять методы.

GITHUB репозиторий: JVM-plugin

В примере собранный jar-файл с двумя классами:

  1. первый пример вычисляет факториал и выводит в лог строку;
  2. второй пример вычисляет расстояние Левенштейна для двух строк;
  3. загрузка файла - по имени файла возвращает двоичные данные;
  4. "скриншот" - возвращает скриншот экрана в виде двоичных данных.

Также запускались различные библиотеки, эмуляторы и прочее. Проверялась работа в асинхронном режиме.

Ограничения:

  •  Виртуальная машина запускается один раз и может быть запущена только в одном экземпляре;

  • После завершения работы виртуальная машина не может быть повторно запущенна;

  •  Разрядность виртуальной машины должна соответствовать разрядности 1С;

  •  Добавлять jar-файлы после запуска JVM нельзя;

  •  Обновить java классы после запуска JVM нельзя;

  • Возможны проблемы с повторным запуском javafx - приложений.

Для работы необходима установленная JDK 8

  1. Первый параметр JAVA_HOME путь к JDK (32-bit или 64-bit в зависимости от клиента 1С);
  2. Второй так называемый CLASSPATH - путь к jar библиотекам.
  3. Для корректной работы необходимо установить переменную среды: JAVA_HOME

В архиве приложена конфигурация и собранный(подписанный) jar-файл.

Пример работы с компонентой:

Работа в клиент-серверном варианте в СКД:

Написание плагина для Kafka (Simple Consumer)

 

Kafka producer + consumer - параллельно.

 

Скачать файлы

Наименование Файл Версия Размер
Демо Native api компонента для использования в 1С плагинов написанных на java (Демо режим с ограниченной функциональностью)

.zip 35,68Mb
29.11.19
13
.zip 0.0.7 35,68Mb 13 Скачать
bouncy castle provider

.zip 2,13Mb
22.06.18
8
.zip 2,13Mb 8 Скачать
Native API компонента для использования в 1С плагинов, написанных на Java - без привязки к сертификатам

.zip 119,86Kb
29.11.19
8
.zip 1.0.0 119,86Kb 8 Скачать

Специальные предложения

JVM Native API плагин - для запуска в 1С плагинов написанных на Java

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. blackhole321 1175 20.06.18 21:28 Сейчас в теме
А пример кода 1С:Предприятие (типа пример использования) можно добавить в публикацию?
2. minimajack 63 20.06.18 21:59 Сейчас в теме
(1) Компонента находится в стадии разработки
Если ПодключитьВнешнююКомпоненту(имядлл, "AddInNative",ТипВнешнейКомпоненты.Native ) Тогда
	Сообщить("Подключилась!");
	ОбъектJvm = Новый("AddIn.AddInNative.JVMLauncher");
	ОбъектJvm.javaHome = "d:/Program Files (x86)/Java/jdk1.8.0_172/";
	ОбъектJvm.libraryDir = "d:/";
	ОбъектJvm.AddJar("Runner-0.0.1-SNAPSHOT.jar");
КонецЕсли;
Показать

Далее вызываем метод и передаем имя java-класса который будет исполнять работу.
ОбъектJvm.LaunchInJVM("Compare");
ОбъектJvm.LaunchInJVM("Runner");
3. blackhole321 1175 20.06.18 22:21 Сейчас в теме
4. minimajack 63 20.06.18 22:54 Сейчас в теме
(3) Само апи пока не закончено. То есть передавать параметры можно - но в демо примере такого нет.
Разница между 1С и java слишком большая и скорее всего придется подготовить некоторый набор вариантов вызова:
LaunchInJVM - без параметра
LaunchInJVM_S с одним параметром типа строка
LaunchInJVM_SS с двумя параметрами типа строка
5. OLEG4120 151 21.06.18 09:00 Сейчас в теме
7. minimajack 63 21.06.18 10:48 Сейчас в теме
(5) возможность использования многочисленных java библиотек
6. fishca 1179 21.06.18 09:14 Сейчас в теме
8. minimajack 63 21.06.18 10:50 Сейчас в теме
(6) пока должным образом не проверял - сейчас апи наладить бы
12. minimajack 63 22.06.18 07:51 Сейчас в теме
(6) Потестил чуть больше - взлетает, по крайней мере виртуальную машину удалось завести (на 32-битах). Думаю проблем особых не будет.
Остальной код надо портировать и проверять
9. minimajack 63 21.06.18 14:21 Сейчас в теме
Обновил пример.
Поправил api - на текущий момент возможно вызывать передавая до 2-х параметров. Эти функции синхронные - то есть 1С ожидает завершения выполнения методов.

ОбъектВК.LaunchInJVM(<ИмяКласса>); - без параметров
ОбъектВК.LaunchInJVMP(<ИмяКласса>,<Параметр>); - с 1-м
ОбъектВК.LaunchInJVMPP(<ИмяКласса>,<Параметр1>,<Параметр2>); - с 2-мя

Типы параметров: строки, числа, булево. На основании типов параметров ищется метод в java ну и вызывается собственно.

Кейсы самые разные: что то вычислять (работает JIT-компилятор, поэтому шустро), создавать дополнительные окна (работает swing, awt) с информацией, чаты, да что угодно в общем то.
10. Infactum 283 21.06.18 15:57 Сейчас в теме
(9) Можно просто XML с параметрами передать. Будет один метод.
11. minimajack 63 21.06.18 16:13 Сейчас в теме
(10) иногда все же удобней хотя бы 2...например передать бинарные данные и строку, все же лучше чем конвертировать в xml, а потом распаковывать в java
13. minimajack 63 22.06.18 13:48 Сейчас в теме
Добавлены функции возвращающие байтики:
CallFInJVMB - без параметров
CallFInJVMBP - с одним параметром
CallFInJVMBPP - с двумя параметрами

Для примера:
CallFInJVMB - ОбъектВК.CallFInJVMB("ScreenShot"); получение скриншота экрана
CallFInJVMBP - ОбъектВК.CallFInJVMBP("GetFile", ПутьКФайлу); чтение файла

Вот такое в java - 2 строки и никакой возни с cpp
 
        Path path = Paths.get( file );
        return Files.readAllBytes( path );
    

Скриншот уложился в 5 строк
        Robot robot = new Robot();
        BufferedImage screenShot = robot.createScreenCapture( new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() ) );
        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
        ImageIO.write( screenShot, "JPG", buffer );
        return buffer.toByteArray();
    

p.s. Вот и преимущества java - работает из коробки, никаких плюсов (которые с++) и кроссплатформенно
p.s.s. Архив обновлен
14. minimajack 63 22.06.18 16:56 Сейчас в теме
Как повернуть PDF на 90 градусов
tPdf = ПолучитьИмяВременногоФайла("pdf");
		byteData = ОбъектВК.CallFInJVMBP("PDFRotator", ПутьКПДФ); 
		byteData.Записать(tPdf);
		ЗапуститьПриложение(tPdf);


В файлы добавлен bouncy castle provider - который надо распаковать в JAVA_HOME\jre\lib\ext\
Можно скачать самостоятельно
 bcmail-jdk15on-1.47.jar
bcpkix-jdk15on-1.47.jar
bcprov-jdk15on-1.47.jar


Java код
    PdfReader reader = new PdfReader( fileName );
        int n = reader.getNumberOfPages();
        int rot;
        PdfDictionary pageDict;
        for ( int i = 1; i <= n; i++ )
        {
            rot = reader.getPageRotation( i );
            pageDict = reader.getPageN( i );
            pageDict.put( PdfName.ROTATE, new PdfNumber( rot + 90 ) );
        }
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        PdfStamper stamper = new PdfStamper( reader, baos );
        stamper.close();
        reader.close();
        return baos.toByteArray();
Показать
15. virtex3 18 23.06.18 07:31 Сейчас в теме
а как на счет варианта, чтобы компонента работала на linux сервере где и запущен сервер 1С, чтобы пользователи не заморачивались с жавой?
16. minimajack 63 23.06.18 09:31 Сейчас в теме
(15) Под линукс ещё не портировал - да и на сервере не тестил.
Java это не только утилити возможности...
Визуализация полезна: для производства или склада можно отображать 3d модель по нажатию кнопки, отображать графики показателей(оборудования или ещё чего)...
Тот же пдф-повернуть? Зачем кидать на сервер(с сервера) сотни мегабайт, если локально за секунды получим результат?
В общем случае - не важно...есть инструмент, а как им работать каждый решает сам для себя
17. so-quest 132 27.06.18 07:49 Сейчас в теме
Наглый вопрос - Открытый репозиторий у компоненты есть?
19. minimajack 63 27.06.18 09:18 Сейчас в теме
18. Voffka 27.06.18 08:30 Сейчас в теме
20. minimajack 63 27.06.18 13:00 Сейчас в теме
Обновил примеры:
Можно открывать 3d модели(формат obj), вращать, приближать-удалять
21. minimajack 63 27.06.18 14:24 Сейчас в теме
Для всех стесняющихся - добавлено видео
o.nikolaev; +1 Ответить
22. minimajack 63 01.08.18 09:38 Сейчас в теме
Добавлен возврат строк из вызовов, архив обновлен.
Для примера используется распознавание ШК из картинки и возврат ШК в виде строки.
Строка64 = Base64Строка(Новый ДвоичныеДанные(ПутьКИзображениюШК));
Сообщить(ОбъектВК.CallFInJVMP("CodeScanner", Строка64, ""));

в java
   public static String mainInt(String param) throws IOException, NotFoundException
    {
        ByteBufferInputStream is = new ByteBufferInputStream( ByteBuffer.wrap( Base64.decode( param ) ) );
        BufferedImage bufferedImage = ImageIO.read(is);
        LuminanceSource source = new BufferedImageLuminanceSource(bufferedImage);
        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));

        Result result = new MultiFormatReader().decode(bitmap);
        return result.getText();

    }
Показать
o.nikolaev; +1 Ответить
23. haverlon 10 11.12.18 15:09 Сейчас в теме
Вещь интересная, под Linux бы пользовалась спросом)))
24. minimajack 63 11.12.18 15:54 Сейчас в теме
(23) сомневаюсь...доля windows юзеров значительно больше - а спроса нет
25. Evil Beaver 6776 01.01.19 12:24 Сейчас в теме
Правильно ли я понял, что это аналог .NET Bridge для 1С от Elisy, только под Яву?
26. minimajack 63 01.01.19 19:45 Сейчас в теме
Это не полноценный мост...
Изначально позиционируется как замена внешних компонент на c++.
Концепция с созданием классов как в .NET bridge - но в 1с - мне не нравится.
А так написал полноценный код на java -> потестил -> упаковал и все запускается и в 32 и 64 битном режиме без танцев с бубнами.
27. minimajack 63 11.01.19 14:06 Сейчас в теме
Добавлено видео по работе с СКД в клиент-северном варианте.

Использовалась стандартная консоль СКД (разрешен вызов функций из общих модулей) на управляемых формах:
В вычисляемые поля добавлено ВызватьJavaКлиент("CompareDouble", Числа,&Поиск) - что приводит к вызову java функции с передачей параметров и возвратом результатов.

Получаем вычисляемое поле с расстоянием Левенштейна в консоле СКД

p.s. для 12000 строк, вызов функции происходил 36000 раз за 6,38 сек. на сервере

28. minimajack 63 16.01.19 15:50 Сейчас в теме
В публикацию добавлен пример написания простейшего плагина для чтения из Apache Kafka.
o.nikolaev; +1 Ответить
29. minimajack 63 17.01.19 16:10 Сейчас в теме
Архив обновлен, вместе с получателем добавлен демо-издатель Kafka.
Прежде чем тыкать в Кафку, необходимо запустить зукипер и кафка-сервер, иначе будете ждать подключения...

По нажатию на "Send to Kafka" - будет отправлено 10 000 пронумерованых сообщений на сервере (асинхронно). При ожиданиях между отправкой более 10 секунд издатель отправляет сообщение "Producer closed" и закрывается

По нажатию на "Load from Kafka" - будет получено либо 500 сообщений с начала партиции (если пустое поле данных), либо произойдет ожидание 5 секунд для получения данных.

Оба и издатель и подписчик обмениваются данными через топик "testTopic"
Перформанс:
1С + java - 3696 сообщений/сек
Вызов без 1С на java - 36554 сообщений/сек
Прикрепленные файлы:
o.nikolaev; +1 Ответить
39. o.nikolaev 199 17.11.19 14:42 Сейчас в теме
(29) На видео у вас в обработке еще нет команды Send to Kafka. Но в cf-ке в публикации уже есть. В файловом варианте, чтобы добиться выполнения команды send to немножко исправил текст команды:
&НаКлиенте
Процедура SendToKafka(Команда)
	//SendToKafkaНаСервере();
	Для нумератор=1 По 20000 Цикл
		ОбъектВК.CallFInJVMPP("KafkaExampleProducer",Строка(нумератор),Строка(нумератор), 1);
	КонецЦикла;
КонецПроцедуры
Показать


Подскажите, не по этому (https://dzone.com/articles/running-apache-kafka-on-windows-os) примеру все настраивали? :)
40. o.nikolaev 199 17.11.19 14:45 Сейчас в теме
(29) Все отлично работает. Спасибо!
Прикрепленные файлы:
30. minimajack 63 18.01.19 16:43 Сейчас в теме
Путем нехитрых манипуляций удалось ускорить издателя до 8-10 тысяч сообщений в секунду.
p.s. Архив обновлен
p.p.s. К сожалению количество сообщений пришлось увеличивать до 20 тысяч что бы замерить скорость...так что жать кнопку "Load from Kafka" придется в два раза больше
31. o.nikolaev 199 29.10.19 11:03 Сейчас в теме
Очень круто. А какой-то полноценный стабильный релиз, который в проде можно использовать, есть?
32. minimajack 63 31.10.19 22:30 Сейчас в теме
(31) в проде не использовал, но сомневаюсь что могут быть какие то серьезные проблемы.
Планировал выложить в опенсорс, но надо причесать исходники. А на это надо найти время.
33. o.nikolaev 199 31.10.19 23:03 Сейчас в теме
(32) А может ну его - причесывание - и выложить как есть :) ? Уж очень завораживающая вещь получилась. Просто думаю нашлись бы люди которые занялись и причесыванием и развитием.
34. minimajack 63 01.11.19 22:41 Сейчас в теме
(33) я не первый раз выкладываю...что то энтузиастов не находилось.
По факту мне надо убрать код проверки сертификата для паблика.
35. o.nikolaev 199 16.11.19 21:47 Сейчас в теме
(34) Так. Нет времени объяснять :) Что я могу сделать чтобы вы выложили исходники в public ? :)
36. o.nikolaev 199 16.11.19 23:36 Сейчас в теме
Не получается воспроизвести примеры. Выдается сообщение "JVMLauncher : Cannot find class.". Можете подсказать что не так делаю?
37. o.nikolaev 199 17.11.19 00:03 Сейчас в теме
(36) Отвечаю сам же. Подключил папку subst-ом как диск d:\ и положил в нее Runner-0.0.1-SNAPSHOT.jar
После этого пример заработал :)
38. minimajack 63 17.11.19 09:54 Сейчас в теме
Все верно. jar файлы загружаются из classpass(library dir)
Исходники надо очистить от сертификата. Если все срочно - напишите в личку, соберу индивидуально
41. o.nikolaev 199 17.11.19 14:54 Сейчас в теме
Ну и исходники Runner-0.0.1-SNAPSHOT.jar было бы бесценно скачать за SM вместе с выложенным примером. :) Подхватить-то удается конечно, но жалуется что Source not found :)
Прикрепленные файлы:
42. o.nikolaev 199 17.11.19 15:01 Сейчас в теме
Глупый вопрос - а зачем подписывать jar файлы?
43. minimajack 63 17.11.19 16:46 Сейчас в теме
(42) затем, что демокомпонента проверяет подпись и не дает выполнить неподписанный код.
Практически все исходники есть тут в качестве комментариев. Да и в любой ide можно глянуть...ничего там нет секретного)
44. o.nikolaev 199 17.11.19 20:51 Сейчас в теме
Еще вопрос - а предполагается развитие API? Чтобы все-таки можно было вызывать public методы java согласно их сигнатур? Еще вопрос: если, например в пакете в классе есть метод который возвращает значение типа другого класса, то можно ли помещать такое значение в переменную кода 1С и затем передавать в качестве параметра другому методу java-класса? Понимаю что можно это обойти создав, например void метод-обертку, который будет выполнять эту же операцию в самом java классе, но все-таки. Есть какие-то планы на этот счет?
45. minimajack 63 17.11.19 22:55 Сейчас в теме
Не вижу никакого смысла в вызове...ни скорости ни удобства.
Апи планируется править, но точно не в эту сторону.
Более рационально использовать как дополнение к native api - когда весь код заранее можно протестировать, а в 1с уже полноценно использовать
46. minimajack 63 18.11.19 09:15 Сейчас в теме
Добрался до компа...
Просто создавая объекты java, вызывая методы мы теряем во всем.

По сути вы хотите тот же Elisy.Net Bridge только на java.
плюсы:
- не надо собирать jar файлы
- можно писать код типа на java
минусы:
- в 99% случаев все равно потребуются какие то библиотеки, и одно дело когда мы собираем так называемый UberJar - со всем вместе( а там и включаем свои классы), другое что нам придется прописывать все jar файлы ручками и следить за их версиями...
- не возможно полноценное тестирование перед заливкой в 1С - юнит тесты и прочее проще организовать в java, а там и гит и все остальное из коробки.
- сами себе режем производительность: interop вызовы не бесплатны, чем реже прыгать java -> 1C -> java и т.п. тем выше скорость решения
- теряем в функциональности java - многие конструкции станут недоступны: try-with-resources, multicatch, case и т.п. это как вернутся в каменный век :)
48. o.nikolaev 199 18.11.19 22:18 Сейчас в теме
(46) :) Да, ступил. Это я уже потом и сам сообразил. Не столь развернуто правда :)
47. minimajack 63 18.11.19 10:20 Сейчас в теме
https://gist.github.com/MinimaJack/8573b375a1f5121a06e5b03c53c6f6aa
KafkaExampleProducer.java
предпосылки:
1. демо пример
2. получить максимум производительности за минимально затраченное время на разработку

Когда происходит вызов 1С, никакой отправки на самом деле не происходит, вместо этого:
при каждом вызове проверяется java-поток на наличие, и если его нет происходит запуск
при каждом вызове в очередь сообщений кладется сообщение

Java-поток берет на себя обязательства по отправке сообщений, опустошает очередь отсылая сообщения, при отсутствии 10 сек сообщений отключается

p.s. код написан на коленке, скорее всего с ошибками, не безопасен, но работает очень шустро. По идее подобный код можно использовать для логирования событий, когда незначительную часть сообщений можно потерять.
p.p.s На деле довольно таки стабильно отсылал сообщения. В прод не рекомендовал бы...но в свое время не выложил текст.
49. o.nikolaev 199 18.11.19 22:20 Сейчас в теме
(47) У меня ситуация такая что есть уже готовый профессиональный и отлаженный блок на Java для взаимодействия с Kafka и встала задача дотянуться до него из 1С-ки. Будем пробовать окучить сие с помощью компоненты.
50. minimajack 63 29.11.19 14:50 Сейчас в теме
Исходники доступны всем желающим

https://github.com/MinimaJack/JVM-plugin
dvsidelnikov; Labotamy; +2 Ответить
51. minimajack 63 03.12.19 16:30 Сейчас в теме
Существующий пример Kafka-получателя имел существенный недостаток.
При каждом получении данных происходило подключение и отключение к кафке, что вызывало дополнительные задержки связанные как с сетевым взаимодействием так и с ребалансировкой группы получателей.
Решение такое же простое как и с отправителем -> запускаем поток который будет закрывать получателя после продолжительного интервала.
Записал видео где два 1С клиента успешно общаются...
https://www.youtube.com/watch?v=jMl66aurQeI

Скорость конечно не супер, но 80001 сообщение со скоростью 2600 сообщений/сек доставлено(в видио есть вывод статистики по отправителю).

Проверил в асинхронном режиме...вполне себе удобно.
		оповещение = Новый ОписаниеОповещения("ЗавершитьПолучениеВсехДанных", ЭтотОбъект, "", "ЗавершитьПолучениеДанныхОшибка", ЭтотОбъект);
		ОбъектВК.НачатьВызовCallFInJVMPP(оповещение, "kafka.Consumer", 5, ПустаяСтрока(KafkaData), "");

Да, и теперь классы можно адекватно раскладывать по пакетам...kafka.Consumer, kafka.Producer, kafka.ProducerMetrics
o.nikolaev; +1 Ответить
52. o.nikolaev 199 06.12.19 06:12 Сейчас в теме
(51) А Kafka разве сама (сам) не отслеживает активность consumer-ов? Т.е. там если не хочешь влететь в ребалансировку надо непрерывно опрашивать. Ну дык на то она и "потоковая работа с данными" как я понимаю.
53. minimajack 63 06.12.19 09:42 Сейчас в теме
(52) JVM - живет столько сколько живет процесс rphost

Kafka выкинет только если heartbeat - перестанет поступать...а что ему не поступать если Consumer так и останется запущенным и будет отправлять heartbeat.

например:
у нас 2 rphost-а(2 сервера или 2 процесса):
на rphost#1 запустилось регламентное задание, запустился consumer#1, стал лидером - получил сообщения и ждет еще вызова из 1С...но в 1С регламентное задание завершилось. Неважно по какой причине...получены все сообщения или только определенный batch(1000 сообщений и хватит). JVM - продолжает работать, consumer#1 все так же сидит в лидерах и ждет от 1С приказов.

на rphost#2 запускается регламентное задание, запустился consumer#2 ( другой процесс, другая JVM) и ждет пока станет лидером...и тут вопрос в kafke - когда и вообще сделает ли она ребалансировку consumer-ов так, что бы consumer#2 стал лидером и начал получать сообщения для регламентного задания на rphost#2.


Решения два:
1. со стороны 1C - закрывать consumer при завершении регламентного задания.
минусы:
если регламентное задание отрабатывает маленькими пачками и часто, будут переподключения к кафке и создания новых consumer-ов
плюсы
железно подключаемся одним consumer-ом
2. со стороны java - закрывать consumer в другом потоке по истечении какого то интервала со времени последнего вызова.
минусы:
надо подбирать интервал согласно скорости обработки, если он будет меньше скорости обработки - consumer-ы переподключатся.
Например 1С обрабатывает пачку за 10 секунд - можно поставить интервал в java 15 секунд(с последнего вызова). Если 1С затупит - старый закроется , создастся новый Consumer - совершенно без дополнительных телодвижений.
плюсы
если регламентное задание запускается чаще интервала, consumer будет переиспользоваться.
54. kickout 13 10.12.19 09:04 Сейчас в теме
Скачал либы, начал тестить, и есть несколько моментов. (64 разрядка)
Небольшой итог по тому в чем удалось разобраться и чего тут не описано.
1) в классе в яве который подключаем должен быть публичный статик метод(функция) mainInt()
2) не удалось запустить не подписанный jar файл
3)при попытке передать параметры говорит что "много фактических параметров"
4) подписать jar файл пока не удалось

Что пробовал делать я
1) Создал хелоу ворлд свой на яве, вывел в отдельный класс, пишет что класс не найден.
2) с прилоденным архивом пока тоже не получилось пораьотать, выходит ошибка но уже говорит "mainInt" т.е. класс находит, наверно дело в подписи jar файла

Что делаю не так и какие еще есть нюансы использования dll?
Качал последний архив, самый свежий.
55. minimajack 63 10.12.19 10:51 Сейчас в теме
LaunchInJVM* - вызов процедур, первый параметр имя класса

LaunchInJVM - без параметров                   => void mainInt()                                =>  VK.LaunchInJVM   ( ИМЯ_КЛАССА)
LaunchInJVMP - процедура с одним параметром    => void mainInt(int param)                       =>  VK.LaunchInJVMP  ( ИМЯ_КЛАССА, Параметр1)
LaunchInJVMPP - процедура с 2-мя параметрами   => void mainInt(int param, int param2)           =>  VK.LaunchInJVMPP ( ИМЯ_КЛАССА, Параметр1, Параметр2)


CallFInJVM* - вызов функций, первый параметр имя класса, от типа последнего параметра зависит возвращаемое значение:
VK.CallFInJVM("JavaClass", 1) =>
public static int mainInt()    {
    }

VK.CallFInJVMP("JavaClass", 1, "") =>
public static String mainInt(int param)    {
    }

VK.CallFInJVMPP("JavaClass", 1,0.5, "") =>
public static String mainInt(int param, float param2)    {
    }

CallFInJVM    - функция без параметров         => int mainInt()                                 =>  VK.CallFInJVM      ( ИМЯ_КЛАССА, 1)
CallFInJVMP   - функция с одним параметров     => int mainInt(int param)                        =>  VK.CallFInJVMP     ( ИМЯ_КЛАССА, Параметр1, 1)
CallFInJVMPP  - функция с 2-мя параметрами     => int mainInt(int param,int param2)             =>  VK.CallFInJVMPP    ( ИМЯ_КЛАССА, Параметр1, Параметр2, 1)
CallFInJVMPPP - функция с 3-мя параметрами     => int mainInt(int param,int param2,int param3)  =>  VK.CallFInJVMPPP   ( ИМЯ_КЛАССА, Параметр1, Параметр2, Параметр3, 1)


ОбъектВК.CallFInJVMPP("CompareDouble",Строка1,Строка2,0.01)

	ОбъектВК = JVM_ПовтИсп.ВернутьКомпонентJava();
	ОбъектВК.libraryDir = "блабла"; // путь к Jar-ам по умолчанию d:/
	ОбъектВК.AddJar("Runner-0.0.1-SNAPSHOT.jar"); // используемый jar 


Код 1С:
ОбъектВК.LaunchInJVMP("factorial.Get", Число); 

Код Java:

public class Get
{

    private native void log( String info );

    public static void mainInt(int number)
    {

        Get r = new Get();
        r.log( new String( "Привет из джава! Object hash is " + r.hashCode() ) );

        BigInteger result = null;
        for ( int i = 0; i < 1; i++ )
        {
            result = BigInteger.valueOf( 1 );

            for ( long factor = 2; factor <= number; factor++ )
            {
                result = result.multiply( BigInteger.valueOf( factor ) );
            }
        }

        r.log(result.toString());
    }

}
Показать
Прикрепленные файлы:
native.zip
jvmcf.cf
Runner-0.0.1-SNAPSHOT.jar
56. kickout 13 10.12.19 11:10 Сейчас в теме
(55)
LaunchInJVMP

Во... чуть стало понятнее, как вызывать с параметрами и без, но у меня теперь вот такая штука выходит
Так я подключаюсь.
&НаКлиенте
Процедура test(Команда)
	имядлл = "C:\testNativeJVM\JVMLauncher64.dll";
	Если ПодключитьВнешнююКомпоненту(имядлл, "AddInNative",ТипВнешнейКомпоненты.Native ) Тогда
		Сообщить("Подключилась!");
		ОбъектJvm = Новый("AddIn.AddInNative.JVMLauncher");
		ОбъектJvm.javaHome = "C:\Program Files\Java\jdk1.8.0_162\";
		ОбъектJvm.libraryDir = "C:\testNativeJVM\";
		ОбъектJvm.AddJar("1cjvm.jar");
		ОбъектJvm.LaunchInJVMP("Testc",456);
	КонецЕсли
КонецПроцедуры
Показать

57. kickout 13 10.12.19 11:24 Сейчас в теме
(56)
Всё получилось, была путаница с методами, теперь вроде всё понял.
Будем дальше тестить и что то изобретать))))
Спасибо, за пояснения.
Было бы классно если бы в публикацию добавили про вызов процедур и функций явы через 1с, а то путаница идет.
И последний вопрос, как много можно передавать параметров?
Поддерживаются только примитивные типы? (про массив и структуры пока можно мечтать или даже мечтание не поможет?))))
58. minimajack 63 10.12.19 11:58 Сейчас в теме
(57)
В функцию можно до 4-х параметров, в процедуру можно до 2-х...
Возможно увеличить если будет необходимость
Ни массивы, ни структуры - сама 1С не даст отправить...точно работают строки, числа (int ,float, double)
Возможен только возврат массива байт в Бинарные данные:
CallFInJVMB  - byte[] mainInt()  
CallFInJVMBP - byte[] mainInt(param)  


Все остальное только через сериализацию ЗначениеВСтрокуВнутр...
59. kickout 13 10.12.19 12:14 Сейчас в теме
(58)
Дополню одной идеей, не знаю насколько это профитно,но...
Как мне кажется удобнее будет переделать вызов класса и метода примерно вот так (Runner.getAll, , )
т.е. пишется класс, а потом через точку метод который необходимо вызвать, чтобы не привязываться исключительно к mainInt
ну или как то по другому реализовать, но суть в том чтобы можно было явно указать метод который необходимо выполнить, ну и через запятую параметры для метода.
вдруг в классе будет 2 и более метода которые можно выполнить, а то получается одна точка входа, а тут уже появляется выбор...
да и городить тогда классы под каждый метод не надо будет.
60. minimajack 63 10.12.19 13:08 Сейчас в теме
(59) идея нормальная...
Возможно реализовать альтернативным апи: ClassFunctionCall, ClassFunctionCallP,ClassFunctionCallPP
По сути надо стандартизировать апи, а то сейчас есть разброс в именовании...

Проще отправлять прямиком предложения в репо: https://github.com/MinimaJack/JVM-plugin/issues
61. minimajack 63 11.12.19 16:54 Сейчас в теме
(59) Добавлено
Вызовы эквивалентны
		ОбъектВК.CallFInJVM("time.utils.Current", '00010101'));
		ОбъектВК.ClassFunctionCall("time.utils.Current.mainInt", '00010101'));


time.utils - package
Current - class
mainInt - имя метода

Тип Даты работает и в параметрах и в возвращаемом результате, с учетом адекватности на вхождение в unixtime интервал.
Прикрепленные файлы:
native.zip
62. kickout 13 12.12.19 10:02 Сейчас в теме
(61)
Огонь,а есть аналогичное для процедуры?
63. minimajack 63 27.01.20 10:46 Сейчас в теме
(62) Добавил
ОбъектВК.LaunchInJVMPP("graphics.ViewObjModel",~,~);
ОбъектВК.ClassProcedureCallPP("graphics.ViewObjModel.mainInt",~,~);

Добавлена поддержка запуска на 11+ java
64. Simplyare 14.04.20 23:51 Сейчас в теме
Не работают функции "Расстояние Левинштейна" и "Повернуть PDF".
При попытке повернуть pdf вываливается ошибка:

{Обработка.ТестированиеJVM.Форма.УправляемаяФорма.Форма(98)}: Ошибка при вызове метода контекста (CallFInJVMBP)
byteData = ОбъектВК.CallFInJVMBP("PDFRotator", ПутьКПДФ);
по причине:
Ошибка внешней компоненты

С чем может быть связано?
Другие функции работают корректно.
65. minimajack 63 16.04.20 06:42 Сейчас в теме
PDFRotator - для него надо обязательно добавить bouncy castle provider. В 14 сообщении описание.
bcmail-jdk15on-1.47.jar
bcpkix-jdk15on-1.47.jar
bcprov-jdk15on-1.47.jar
66. Vix 27 25.04.20 17:06 Сейчас в теме
Интересная идея, плюсую однозначно. Есть желание вот написать плагин который будет фотографировать и изображение сохранять в файл, интересно получится или нет такое сделать через это решение?
67. minimajack 63 28.04.20 01:11 Сейчас в теме
Это же только для десктопа. Возможно использовать вебкамеру, но сам не использовал
https://github.com/sarxos/webcam-capture
Оставьте свое сообщение

См. также

Внешняя компонента для работы по Web-socket протоколу Промо

Разработка внешних компонент WEB v8 Абонемент ($m)

Кто когда-нибудь сталкивался с обменом данными по Web-Socket (wss) протоколу из 1С, тому известно, что в платформе отсутствуют данные механизмы (не путать с HTTP запросами и WebServices). Предлагается использовать внешнюю компоненту, написанную по технологии NativeAPI, для подключения и обмена с серверами из 1С-Предприятия, работающими по протоколу Web-Socket.

5 стартмани

30.03.2018    24207    33    Ditron    68    

Отрубаем зависшие на сервере процессы

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Вы любите COM объекты? Я их просто обожаю! Практически все, чего не может 1С, можно доделать ими. Но есть у них небольшой косячок: иногда они зависают и висят, пока не отрубишь их через диспетчер задач или до перезагрузки, жрут память и в конце концов перестают запускаться. Что делать? Рубить!

1 стартмани

28.07.2020    840    0    nikita0832    3    

Диагностика контекста выполнения (внешняя компонента)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

1 стартмани

24.07.2020    2601    2    YPermitin    13    

Универсальная обертка для использования NATIVE компонент на платформе 1С 7.7, 8.0 и 8.1

Разработка внешних компонент v8 Абонемент ($m)

Используете 1С 7.7, 8.0 или 8.1 и вас раздражает, что под вашу 1С уже не выпускаются современные компоненты. А хотелось бы?

1 стартмани

07.07.2020    1148    1    karpik666    0    

TextRadar - нечеткий поиск в тексте Промо

Разработка внешних компонент Поиск данных v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.09.2018    15891    18    TSSV    18    

Нано HTTP сервер - внешняя компонента для мобильного приложения 1C, на Android

Разработка внешних компонент Мобильная разработка v8 v8::Mobile 1cv8.cf Абонемент ($m)

Нано HTTP сервер на терминале сбора данных "ATOL Smart.Lite android 7.0". Работает только с GET и POST запросами. Аутентификация BASE64. Не поддерживает HTTPS и не передает файлы. В прикрепленном архиве исходники на компоненту (С++ и java для Android Studio 3.6.2), ЦФ - мобильного приложения и тестовая обработка.

1 стартмани

22.06.2020    1196    4    SanyMaga    0    

Получение фото с веб-камеры

Разработка внешних компонент v8 Абонемент ($m)

Получение фото с веб-камеры без ActiveX. Внешняя компонента по технологии Native API.

1 стартмани

25.03.2020    3185    25    berezdetsky    24    

Пауза без загрузки процессора. Внешняя компонента Native API на C++

Разработка внешних компонент v8 Абонемент ($m)

Внешняя компонента Native API на C++ для Win32 и Win64 позволяет установить паузу на заданное количество секунд без загрузки процессора.

2 стартмани

21.03.2020    1534    3    DNN13    25    

Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент. Промо

Разработка внешних компонент v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Данная разработка создана для использования сборок .Net в 1С через преобразование объектов и классов в COM-объекты, которые можно использовать в 1С. Достигается это путем создания класса, реализующего методы интерфейса IReflect public class AutoWrap: IReflect.

1 стартмани

28.11.2013    80336    232    Serginio    71    

Быстрая печать этикеток (ZPL, EPL, TSPL, EZPL, GEPL, TSPL-EZ)

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Качественная и быстрая печать на внутреннем языке принтеров этикеток.

4 стартмани

02.02.2020    4874    22    Johny_v    5    

Сканирование по TWAIN в 1С (обычные и управляемые формы)

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка показывает пример, как можно в 1С проводить сканирование с помощью компоненты TWAIN.

3 стартмани

03.01.2020    4018    19    Denr83    0    

Вставка картинки из буфера обмена (JavaScript + внешняя компонента)

Разработка внешних компонент v8 Абонемент ($m)

Вставка картинки из буфера обмена с помощью JavaScript в поле HTML в web-клиенте и с помощью внешней компоненты в тонком/толстом клиенте. Механизм протестирован на платформах 8.2 и 8.3 Для запуска опубликованной конфигурации требуется платформа релиза не ниже 8.3.14.

1 стартмани

05.12.2019    3170    2    Andreyyy    8    

Tool1CD Beta в деле Промо

Разработка внешних компонент v8 Абонемент ($m)

Пс, парень! Не хочешь немного сырых байтов?

1 стартмани

09.05.2018    24149    28    baton_pk    26    

Клиент событий в «бесконечном» HTTP-соединении для 1С: Предприятие 8

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Native Компонента в отдельном потоке обрабатывает пакеты событий, в "бесконечном" http соединении и передаёт данные в очередь внешних событий.

10 стартмани

02.12.2019    3103    1    starovton    5    

Внешняя компонента 1С Native x32/x64: отправка UDP сообщения

Разработка внешних компонент v8 Россия Абонемент ($m)

Компонента предназначена только для отправки текстовых UDP сообщений. Работает как на клиенте, так и в серверных вызовах в любой разрядности Windows платформы.

1 стартмани

05.11.2019    3305    7    von_de    0    

Управление окнами и мониторами в 1С

Сервисные утилиты Разработка внешних компонент v8 1cv8.cf 1С:Франчайзи, автоматизация бизнеса Абонемент ($m)

Управление размерами, активностью и положением окон из 1С с возможностью вывода окон на второй монитор и запретом изменения окна.

1 стартмани

28.10.2019    7583    6    Grigoriy251    5    

NativeDraw: Компонента рисования для 1С [V2.6.2] Промо

Разработка внешних компонент Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Рисуйте в формах 1С, также предлагается небольшое количество нерисовальных функций

1 стартмани

13.07.2015    45288    423    ПерваяСистема    147    

Native внешняя компонента для оповещения по UDP или TCP

Разработка внешних компонент v8 Абонемент ($m)

Native внешняя компонента для оповещения по UDP или TCP, которая реализует возможность в 1С передавать сообщения с сервера на клиента. Исходный код компоненты также представлен.

1 стартмани

06.10.2019    7926    13    vdv2701    27    

Внешняя компонента Sundries: несколько полезных системных функций

Разработка внешних компонент v8 Абонемент ($m)

Звук, пауза, буфер обмена, раскладки клавиатуры и т.д.

4 стартмани

30.08.2019    4712    4    sivin-alexey    10    

Native внешняя компонента для передачи по UDP

Разработка внешних компонент v8 УТ10 Россия Абонемент ($m)

Внешняя компонента Native-API для организации передачи с использованием UDP.

1 стартмани

29.07.2019    3520    4    axae    0    

Компоненты распознавания и печати штрих-кодов Промо

Разработка внешних компонент Сканер штрих-кода v7.7 v8 1cv8.cf 1cv7.md Абонемент ($m)

Комплект программного обеспечения для реализации функций оптического распознавания штрих-кодов различных систем при помощи обычной web-камеры, а также их отображения в печатных формах. Программы могут работать в составе конфигураций, созданных на базе платформ «1С-Предприятие» версий 7.7, 8.2, 8.3. Компонент чтения кодов реализован в виде внешней компоненты 1С с COM-интерфейсом. Компонент отображения создан по стандартной технологии ActiveX для Windows, и может быть встроен в любое приложение, поддерживающее встраивание ActiveX элементов управления, например в документ Word или Excel, или форму VBA. P.S. Добавлена новая версия программы распознавания. Новые функции: обработка видео в реальном режиме (а не по таймеру, как раньше), добавлена возможность распознавания штрих-кодов из графических файлов JPEG, PNG, GIF, BMP, а также передавать для распознавания картинки из 1С, теперь можно получить в 1С захваченное с камеры или файла изображение, как с выделением мест, содержащих коды, так и без, а также отдельные фрагменты изображений, содержащие код. Добавлены новые свойства и методы для программирования. Обновлена документация.

10 стартмани

10.07.2015    66898    83    igorberezhnov    95    

Внешняя компонента для работы с драйвером "Атол v.10". 1С:8.3

Разработка внешних компонент Кассовые операции Кассовые операции v8 Абонемент ($m)

Внешняя компонента, для работы с драйвером «Атол v.10», посредством JSON-заданий.

1 стартмани

16.07.2019    7939    20    gortrex    4    

Менеджер буфера обмена. Нативная внешняя компонента win 32/64

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Добавляет возможности получения информации из почтовых вложений или файлов с других рабочих столов (RDP) с помощью операций копирования/вставки. Может «прослушивать»: любые изменения буфера обмена; нажатие клавиш соответствующих вставке (paste); нажатие клавиш копирования (copy); drop операции. Это новая реализация аналогичной компоненты https://infostart.ru/public/379695/, но теперь не C#, а С++ нативно для x32 / x64. (см. http://youtu.be/-PaWWFfbYo4)

1 стартмани

26.06.2019    5488    16    Bww    21    

Обработка вывода на печать QR-кода и штрихкодов в различных форматах (одномерные и двумерные)

Разработка внешних компонент Ценники v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для вывода на печать QR-кода и штрихкодов в различных форматах без установки дополнительных ActiveX компонент. Тестировалась на чистой базе платформы 1С:Предприятие 8.3 (8.3.14.1630), а так же в конфигурациях Бухгалтерия предприятия КОРП, редакция (3.0.69.35) и на Бухгалтерия предприятия (3.0.70.30)

2 стартмани

22.05.2019    8497    32    MGemini    2    

Полезные приемы при работе с Excel из 1С (Версия 3.1) Промо

Практика программирования Разработка внешних компонент Загрузка и выгрузка в Excel v8 1cv8.cf Абонемент ($m)

Программисту 1С часто приходится работать с таблицами Excel из 1С. Я постарался собрать небольшой FAQ и набор функций для работы с файлами Excel. Надеюсь, кому-то будет полезна данная статья.

1 стартмани

22.09.2015    184213    432    Zerocl    65    

DLL для подключения к Asterisk (32/64 клиенты)

Разработка внешних компонент Телефония, SIP v8 1cv8.cf Абонемент ($m)

Подключение к Астериску и получение событий "Newchannel","BridgeEnter","Hangup" через ОбработкаВнешнегоСобытия.

1 стартмани

19.03.2019    6713    11    xxxAndricxxx    14    

DLL для обмена между 1С (и не только) через UDP порты (32/64 клиенты)

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Библиотеки для создания функционала для прослушивания портов из 1С и отправки сообщений на удаленный udp порт.

1 стартмани

28.02.2019    5958    8    xxxAndricxxx    2    

Эмулятор ККМ по стандарту ФФД 1.1

Разработка внешних компонент Кассовые операции ККМ Кассовые операции v8 Розница УТ11 Россия Абонемент ($m)

Эмулятор драйвера ККМ по стандарту ФФД 1.1 предназначен для использования всех возможностей программы, при отсутствии физической кассы. Подойдет как программистам при разработке интерфейса РМК, например, так и пользователям для тестирования возможностей программы.

1 стартмани

30.12.2018    18693    124    Matveymc    21    

Шаблон внешней компоненты на C# Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Шаблон внешней компоненты для 1С:Предприятие на C#.

5 стартмани

20.06.2012    152379    238    Kuzja_R    99    

Внешняя компонента для считывателя карт ACS 122/1281 (БПО)

Разработка внешних компонент Ридер магнитных карт v8 1cv8.cf Абонемент ($m)

Внешняя компонента для считывателя бесконтактных карт ACS 122/12 для подсистемы подключаемого оборудования.

1 стартмани

11.12.2018    5713    29    eugenevk    29    

WebSocket Клиент / Сервер. Внешний компонент

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Реализация протокола WebSocket. Клиентская часть для взаимодействия с внешними сервисами. Серверная часть для организации собственного сервера, принимающего клиентские соединения в многопоточном режиме. Возможно взаимодействие RabbitMQ Slack Asterisk и другие

1 стартмани

16.11.2018    13240    69    nomadon    51    

Внешняя компонента для выполнения регулярных выражений

Разработка внешних компонент v8 Абонемент ($m)

Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8. Написана на C++. Используется движок boost::regex (v 1.69, v 1.68 - для Android). Версия синтаксиса Perl Compatible Regular Expressions.

1 стартмани

12.11.2018    11220    28    KAV2    62    

Снимок экрана для 1С Промо

Универсальные обработки Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Довольно часто люди сталкиваются с необходимостью сделать снимок экрана. Если вы или ваши сотрудники основную часть времени проводят в 1С и у вас есть необходимость прикреплять графические файлы, то эта компонента для вас.

1 стартмани

08.02.2016    26738    33    linkforget    11    

Native компонента для 8.3, реализующая метод sleep()

Разработка внешних компонент v8 Россия Абонемент ($m)

Внешняя Native 64-битная компонента для 1C 8.3, которая реализует метод sleep() - паузу выполнения кода. Пауза для большой устойчивости сделана платформозависимой и требует WinAPI. Ид компоненты - AddIn.AddInNativeSleep.NativeSleep.

1 стартмани

16.10.2018    6744    3    ripreal1    9    

001. Криптография и цифровая подпись RSA-sha256 на платформе 1С

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Внешняя компонента, исходники, обработка для 1С.

5 стартмани

04.09.2018    12484    25    Nikola23    60    

Программный вызов сенсорной клавиатуры

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Программный вызов сенсорной клавиатуры в ОС Windows, для сенсорных мониторов, которые не определяются системой как hid-совместимый сенсорный экран. Тестировалось на платформе 8.3.9.2033, конфигурация Розница 1.0.16.8.

1 стартмани

04.08.2018    7703    12    dewersia    3    

Native API компонента для использования установленного в системе интерпретатора Python Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Компонента позволяет подключать к платформе 1С python-модули, оформленные в стиле внешней компоненты. Кроме этого, она позволяет запускать небольшие фрагменты python-кода прямо из модулей 1С. На данный момент поддерживаются платформы 8.2 — 8.3 x86 Windows.

1 стартмани

14.05.2013    37384    70    Принт    31    

Класс-обработка “Работа с картами Яндекс”

Разработка внешних компонент WEB v8 Абонемент ($m)

Как показать точку или маршрут на карте Яндекс. Как получить координаты по строке адреса (геокодирование).

1 стартмани

01.08.2018    22381    189    RSConsulting    15    

Распознавание лиц (off-line). Демонстрационная база.

Разработка внешних компонент v8 Абонемент ($m)

Распознавание лиц входит в нашу жизнь стремительными темпами, бизнес стремится за событиями. В публикации находится описание и пример использования нейросетей для распознавания лиц.

1 стартмани

17.07.2018    15039    72    nomadon    45    

QR-code полная версия (без шрифта и внешней компоненты для 8.2, 8.3 и любого типа клиента)

Разработка внешних компонент Сканер штрих-кода v8 1cv8.cf Абонемент ($m)

Предназначена для создания QR-code с указанием процента восстановления потерянных данных. Строка кодирования может содержать все печатаемые символы, в том числе и кириллические. Для работы не требуется внешняя компонента или шрифт.

2 стартмани

10.07.2018    10632    15    bobank    6    

Распознаем штрих-коды QR, EAN-13, Code 128 с помошью 1С и веб камеры Промо

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Внешняя компонента, поможет распознать штрих-код, используя обычную веб камеру. Умеет работать с UPC-A, UPC-E, EAN-8, EAN-13, Code 39, Code 128, QR Code, Interleaved 2 of 5, Codabar, RSS-14, Data Matrix, PDF 417, Aztec, MaxiCode.

1 стартмани

31.10.2012    75604    183    shakmaev    84    

Внешняя компонента для ping'а

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Внешняя компонента для выполнения ping'а из 1С:Предприятия 8.

1 стартмани

04.07.2018    9889    5    frkbvfnjh    24    

Вызов методов 1С из внешней компоненты, выполненной по технологии COM на C++

Разработка внешних компонент v8 Абонемент ($m)

Пример работы с объектами и методами 1С из внешней компоненты, разработанной по технологии COM на С++.

1 стартмани

04.06.2018    7849    4    le_    0    

Внешняя компонента Native для создания штрих кода (GS1 DataBar Expanded, GS1 DataBar Expanded Stacked и другие)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

В связи с внедрением ГИС Меркурий потребовалось внешняя компонента, которая создает штрихкод и отдает 1С. ВК создана на основе библиотеки zint www.sourceforge.net/projects/zint.

1 стартмани

27.04.2018    16653    201    artmaks1988    93    

Удаленное управление через Skype Промо

Разработка внешних компонент Администрирование данных 1С v8 1cv8.cf Абонемент ($m)

Удаленное управление 1С через Skype. Со стороны клиента для работы нужен только Skype. Со стороны сервера любой компьютер с 1С.

1 стартмани

09.02.2014    42114    13    moolex    29    

Работа с любыми сканерами документов в 1С c помощью внешней компоненты от vintasoft.com

Разработка внешних компонент v8 v8::УФ 1cv8.cf Абонемент ($m)

Универсальная обработка для сканирования изображений на любых сканерах (поточных, планшетных) средствами ActiveX от компании Vintasoft.

1 стартмани

29.03.2018    7909    3    Dach    0    

Печать на сервере 1с. DLL для 1С, способная печатать картинки и pdf файлы в серверном контексте (например, при работе веб-сервиса)

Разработка внешних компонент v8 Россия Абонемент ($m)

Не знаю, пригодится кому или нет, писалось для себя, т.к  возникла необходимость печатать на принтере этикеток sscc напрямую с ТСД  через web - сервис. Как известно, веб сервис в 1С работает только в серверном контексте и, к сожалению, разработчики платформы пока не позаботились о возможности вызывать метод  при таких условиях. 

1 стартмани

13.03.2018    9102    24    evgeny43    8    

Разработка игр на языке 1С с использованием Active-X компоненты (собственная разработка)

Разработка внешних компонент v7.7 v8 Россия Абонемент ($m)

Написанная Active-X компонента встраивается на форму обработки 1С (тестировалось на 1С 8.0, 8.1, 8.2, 8.3 не управляемые формы, 1С 7.7.). Компонента предназначена для моделирования игрового поля (вывод, движение спрайтов - фреймов, обработка коллизий, управление спрайтами-фреймами и т.д.) при разработки логики игры на встроенном языке 1С. Приложен пример обработки в которой реализована игра "Бита".

5 стартмани

04.01.2018    13820    2    protexprotex    34    

Внешняя компонента - Запись и воспроизведение .wav файлов. Обработка-иллюстратор. Промо

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Обработка иллюстрирует использование внешней компоненты MMLibrary для записи и воспроизведения звуковых wav файлов. Компонента разработана по технологии Native.

1 стартмани

01.03.2014    17631    20    vozhd    7    

Active-X компонента для получения видео-данных с Web-камеры, IP-камеры для 1С 8.3, 1С 8.2, 1С 8.1, для рисования на форме

Разработка внешних компонент v8 1cv8.cf Россия Абонемент ($m)

Active-X компонента встраивается непосредственно на форму 1С (тестировалось на 1С 8.3, 1С 8.2, 1С 8.1 - неуправляемые формы), реализованы методы подключения к Web-камеры (интерфейс VFW), к IP-камере по http-запросам, отображение на форме 1С потокового видео, снятие скрина и сохранение в файл на диск. Приложена обработка реализующая подключение и работы с ocx - компонентой. Тестировалось на win 7

4 стартмани

13.12.2017    12747    25    protexprotex    50