|
Расширение возможностей 1С за счет других языков программирования. Java | ☑ | ||
---|---|---|---|---|
0
Uberschall
28.10.19
✎
12:01
|
Всем привет. Попалась мне задача: нужно организовать интерактивное взаимодействие между двумя клиентами 1с двух разных баз (базы расположены на разных серверах). Моя идея- сделать веб/хттп сервер на каждом из взаимодействующих клиентов с помощью com-компоненты. И вот вопрос по поводу написание com-компоненты на Java. На C++/C# примеров много, в т.ч. и на этом ресурсе, а по Java так дельного ничего и не смог найти. Может есть у кого-нибудь опыт написания компонент на java для 1с? Чтобы понять куда копать. Не смотря на то, что на C# эту задачу, мне кажется, было бы проще решить, java выбрал еще из-за возможности написания мобильных приложений, которые тоже могли бы взаимодействовать с 1С.
|
|||
1
quest
28.10.19
✎
12:02
|
JNI - интерфейс для работы с java из С++
|
|||
2
Uberschall
28.10.19
✎
12:03
|
ну это совсем как-то через ж... т.е. помимо знания java (которое тоже надо подтянуть), надо будет вспомнить/открыть заново C++
|
|||
3
Garykom
гуру
28.10.19
✎
12:06
|
(0) 1. Есть на ИС
2. Выкинь нафуй эту идею ибо не надо 3.1. Подними апач/iis в одной из базе 3.2. Подними сторонний сервис и две (и более) баз пусть через него обменияваются |
|||
4
NorthWind
28.10.19
✎
12:06
|
(0) мне кажется, неправильно выбрали. С/С++ либо .Net.
|
|||
5
Garikk
28.10.19
✎
12:07
|
com компоненты в 2019 году...при этом на яве....нда
|
|||
6
quest
28.10.19
✎
12:08
|
(0) не слушай ты их. Грызи этот кактус. Он прикольный :)
|
|||
7
Uberschall
28.10.19
✎
12:10
|
(4) да, я согласен что с C#/C++ было бы проще, но на java мне кажется больше сфер (за счет мобильной разработки)
(5) варианты? (3) можно ссылку на ИС? веб-сервер я могу поднять, но тогда будет межсерверное взаимодействие, а мне надо чтобы данные сразу передавались между клиентами |
|||
8
Garikk
28.10.19
✎
12:18
|
(7) что варианты? вебсервисы уже тыщу лет как завезли в платформу
|
|||
9
Garikk
28.10.19
✎
12:19
|
также ваш вариант однозначно ставит крест на использовании в линуксовых базах
|
|||
10
Uberschall
28.10.19
✎
12:20
|
(8) у веб-сервиса своей сеанс. он может обмениваться информацией только с сервером 1с, но никак не с клиентом. т.е. грубо говоря на форме никак не сделать свой веб-сервис.
|
|||
11
Garikk
28.10.19
✎
12:21
|
(10) зачем на _форме_ веб-сервис?
|
|||
12
Garikk
28.10.19
✎
12:21
|
надо делать архитектурно-правильно, а не придумывать какуюто дичь
|
|||
13
Garykom
гуру
28.10.19
✎
12:23
|
(12) Архитектурно правильно это на каждую задачу нанимать специалиста уже умеющего выполнять такие задачи.
А не падавана и пусть сам разбирается как пилить, тренируется на клиентах. |
|||
14
Garikk
28.10.19
✎
12:25
|
(13) ну это другой вопрос
но тут учитывая что товарищ хочет заюзать ком и примерно понимает что делает, это явно олдстайл клюшечник живущий лет 15 назад и попавший в будущее... тут или надо направить в сторону изучения нового или в сторону кладбища |
|||
15
Asmody
28.10.19
✎
12:25
|
Даже если очень хочется пороть дичь, нужно делать это правильно. Для 1С будет правильно сделать native api ВК
|
|||
16
Garykom
гуру
28.10.19
✎
12:26
|
(7) >можно ссылку на ИС?
Статья с ИС куда то сделала ноги, там такое бывает |
|||
17
Uberschall
28.10.19
✎
12:27
|
(12) ну так поэтому я вкратце и описал задачу-интерактивное взаимодействие (с минимальной задержкой) между двумя клиентскими сеансами (в контексте #Если Клиент) разных 1с минуя их сервера.
(15) действительно, возможно, тут я ошибаюсь и нужно не com, a native. |
|||
18
quest
28.10.19
✎
12:29
|
(17) ковыряй инфостарт - там как раз недавно быkа компjнента для взаимодействия через tcp/udp
|
|||
19
Garykom
гуру
28.10.19
✎
12:29
|
(17) ВК для 1С (Native) проще всего делать на Delphi/Lazarus.
Вот обычные COM можно и C#/.Net. Делать это на C++ задолбаешься. Короче забей и используй веб-сервисы. |
|||
20
Garykom
гуру
28.10.19
✎
12:30
|
Или готовую ВК используй, вроде видел ВК - http сервер на C++
|
|||
21
Uberschall
28.10.19
✎
12:32
|
я пока оставил как запасной вариант C#- на ИС был очень хороший простой пример написания компоненты. Но пока еще собираю информацию по Java.
|
|||
22
Garikk
28.10.19
✎
12:35
|
вобщем смысла нет на яве делать нетиповые вещи, несмотря на "распространённость явы" - в ней очень много чего не хватает и ещё больше 'старый язык и есть библиотеки для всего всего' --- 80% такого заброшено лет 10 назад и не поддерживается
|
|||
23
Garikk
28.10.19
✎
12:37
|
*я вот например пытаюсь через яву с bluetooth работать...это пипец какойто всё для этого умерло от 10 до 3х лет назад
а вы com хотите |
|||
24
Uberschall
28.10.19
✎
12:39
|
(22) мне казалось с явы будет проще перейти в тот же kotlin
|
|||
25
Garikk
28.10.19
✎
12:46
|
(24) тут нет особой разницы, если нет нормальных либ для явы, их не будет и для котлина
|
|||
26
hockeyist
28.10.19
✎
12:52
|
(0) Берешь код на C и переписываешь на Java. Задача для школьника 3-го класса.
|
|||
27
bolero
28.10.19
✎
12:58
|
(0) JNI для такой задачи - оверкилл, он предназначен для взаимодействия с оборудованием, а не с некрасивыми программами
ты себя берешь и на ровном месте ограничиваешь местной операционкой и набором библиотек COM отбрасывай по той же причине - ограничиваешь себя у меня в похожей ситуации внешняя по отношению к 1с система ходит в базы 1С по OData и для записи, и для чтения, а для получения больших или мудреных объемов данных многие операции переделаны на прямой SQL |
|||
28
palsergeich
28.10.19
✎
12:59
|
Гугли Розовый Кролик
|
|||
29
palsergeich
28.10.19
✎
13:00
|
Чорт я имел ввиду не то что Гугл выдает, а https://github.com/BITERP/PinkRabbitMQ
|
|||
30
palsergeich
28.10.19
✎
13:01
|
Шина + нативная ВК для 1с
|
|||
31
Garykom
гуру
28.10.19
✎
13:03
|
(29) (30) Для двух баз избыточное и стороннее проприетарное решение, нафуй.
|
|||
32
Uberschall
28.10.19
✎
13:05
|
(31) про рэббита уже думал. но по этой же причине отклонил
|
|||
33
palsergeich
28.10.19
✎
13:05
|
(31) Из условия задачи читается что должны оповещатьсяиклиенты 2 х баз, а это не равно общение 2х баз
|
|||
34
palsergeich
28.10.19
✎
13:06
|
(32) На ИС была компонента с исходниками - tcp сервер который дёргает через внешнее событие клиента
|
|||
35
palsergeich
28.10.19
✎
13:07
|
Сквозной пример как раз чатик между базами
|
|||
36
Uberschall
28.10.19
✎
13:07
|
(27) "у меня в похожей ситуации внешняя по отношению к 1с система ходит в базы 1С по OData и для записи, и для чтения, а для получения больших или мудреных объемов данных многие операции переделаны на прямой SQL" это взаимодействие с сервером. Odata не дает доступа к клиентскому сеансу
(34) вот это очень близко |
|||
37
Garykom
гуру
28.10.19
✎
13:09
|
(36) Блин подними апач с простейшим скриптом на чем угодно и обе базы по http смогут обмениваться
|
|||
38
palsergeich
28.10.19
✎
13:10
|
(37) да, но это сервер<=>сервер, если надо клиент клиент то не очень
|
|||
39
Uberschall
28.10.19
✎
13:11
|
(37) не правильно это будет! веб/http сервер не имеет доступа к клиентскому сеансу. выше я писал что по условию необходимо интерактивное взаимодействие клиентских сеансов минуя сервера
|
|||
40
Garykom
гуру
28.10.19
✎
13:13
|
(38) Это как раз клиент-клиент через сервер
клиент (1С) <=> сервер (апач или что угодно) <=> клиент (1С) Моя вот такую хрень на Go наваял для обмена файликами между МП 1С и базой 1С:
|
|||
41
Garykom
гуру
28.10.19
✎
13:15
|
(39) Эээ ты хочешь чтобы один клиентский сеанс отправлял оповещения в другой клиентский сеанс и тот их получал/обрабатывал в ОбработкаВнешнегоСобытия ?
|
|||
42
Uberschall
28.10.19
✎
13:16
|
как именно сделать клиент-серверное взаимодействие на другом языке тут не самый главный вопрос. много где это разбирается
первый вопрос- это именно взаимодействие 1С с Java. да хотя бы простешее hello world или вернуть сумму двух слагаемых переданных из 1с в компоненту. (41) да |
|||
43
Garykom
гуру
28.10.19
✎
13:17
|
(42) Поройся тут ВК http сервер никто не видел?
|
|||
44
Uberschall
28.10.19
✎
13:18
|
я видел темы Serginol. у него много чего интересного, но на C#
|
|||
45
palsergeich
28.10.19
✎
13:21
|
Я на жабе нативных компонент не видел
|
|||
46
palsergeich
28.10.19
✎
13:22
|
Хотя гуглинг выдал https://forum.infostart.ru/forum28/topic194485/
|
|||
47
Garykom
гуру
28.10.19
✎
13:27
|
java
http://catalog.mista.ru/public/850716/ tcp/ip http://catalog.mista.ru/public/561080/ http://catalog.mista.ru/public/19355/ http://catalog.mista.ru/public/165023/ ВК на С++ которая HTTP-сервер не могу найти, помню была |
|||
48
Сияющий в темноте
28.10.19
✎
23:08
|
в принципе,java,как и .Net,это специальные машины для выполнения байт-кода,и напрямую в них из-вне не так просто зайти.
тем более с клиента 1с,который мало чего умеет. да в перечислениях вариантов внешних компонент есть упоминание о java,но кроме этого упоминания нет ничего. не забываем,что связь между двумя клиентами может быть и вообще невозможной,если на обеих клиентских машинах включен firewall,то с них можно только устанавливать соединение наружу,а не принимать входящее. поэтому,без промежуточного сервера не обойтись,а раз он есть,оо поле html-документа и httpxmlrequest в этом поле. и никаких компонент и программирования-все просто и быстро,да и кроссплатформенно. |
|||
49
Пузан
29.10.19
✎
05:33
|
(13) Откуда возьмется специалист уже умеющий выполнять задачи, если перед этим он не тренировался на клиентах будучи падаваном? :)
|
|||
50
MyNick
29.10.19
✎
08:15
|
Божамой....ява, сишарп, котлин, ком...
При том что в 1С все доступно из коробки. Такое "взаимодействие двух баз" на примере Hello world делается за несколько минут... |
|||
51
MyNick
29.10.19
✎
08:15
|
повелители костылей и велосипедов блин
|
|||
52
MyNick
29.10.19
✎
08:17
|
Заголовок особенный... Расширение возможностей 1С за счет других языков...
Кажется надо сначала хотя бы обзорно на своей трубе посмотреть насчет самих возможностей 1С, не? |
|||
53
MyNick
29.10.19
✎
08:18
|
(10) а ты что на форме со своим веб сервисом собрался делать? Отправлять данные, которые живут на сервере или чо? Или нужно трекинг движения мыши отправлять в другую базу, чет не понял я.
|
|||
54
MyNick
29.10.19
✎
08:22
|
(48) он вроде собрался передавать данные. Зачем ему хттпхмлреквест на клиенте при этом? Что он им будет отправлять. Данные формы?
|
|||
55
Сияющий в темноте
29.10.19
✎
08:49
|
(54) xmlhttprequest асинхронный,в отличие от стандартных методов 1с.
а отправлять можно текстовые строки,т.к.ничего другого ни 1с ни javascript не умеют. |
|||
56
MyNick
29.10.19
✎
08:51
|
(55) дык пусть отправляет сервере, а форма асинхронно дожидается результата.
|
|||
57
MyNick
29.10.19
✎
08:56
|
вон на худой конец есть всякие кафки и рэббиты, нет надо свой велик погородить )))
|
|||
58
ДенисЧ
29.10.19
✎
08:59
|
(55) xmlhttprequest депрекатед ужо.
|
|||
59
Uberschall
29.10.19
✎
09:14
|
(49) какие падаваны, специалисты? о чем Вы? Увидели слово клиент и понесло куда-то вообще в другую сторону...
(50) ну расскажите как поднять веб/хттп сервер и миновать серверное взаимодействие. Такое ощущение, что суть задачи хорошо поняли только несколько человек, кто отметился в задаче. |
|||
60
Garykom
гуру
29.10.19
✎
09:24
|
(59) У тебя в любом случае один из клиентов будет сервером, или нужен сторонний сервер
|
|||
61
SSSSS_AAAAA
29.10.19
✎
09:33
|
(59) В общем-то, то, что ты тут описываешь и называешь при этом клиент-сервером без сервера имеет другое название - peer2peer.
|
|||
62
Uberschall
29.10.19
✎
09:49
|
(61) согласен.
(60)с точки зрения сеанса 1с клиент остается клиентом, с точки зрения tcp-взаимодействия, внешняя компонента поднимает сервер, чтобы он принимал сообщения, а не только отправлял. |
|||
63
trad
29.10.19
✎
09:57
|
(60) как твой ресёрч по поводу нативВК на голэнг?
|
|||
64
Garykom
гуру
29.10.19
✎
10:07
|
(63) До готовности не допилил, отложил пока.
У меня не очень красивый вариант с двумя dll вышел, одна на C++ (ВК для 1С) и вторая на Golang (просто C-совместимая dll с экспортными функциями). |
|||
65
trad
29.10.19
✎
10:18
|
та что "на C++ (ВК для 1С)" -прокладка?
универсальная или под частный интерфейс? |
|||
66
Garykom
гуру
29.10.19
✎
10:21
|
(65) Под частный, я тестово проверил что пашет.
Как универсально это надо думать. |
|||
67
Garykom
гуру
29.10.19
✎
10:23
|
(66)+ Технически вроде как можно и без прокладки обойтись, точнее встроить ее в код на Go, но это возня с эмулированием C++ объектов на C коде.
|
|||
68
Ник080808
29.10.19
✎
10:27
|
(0) жесть. ветку не читал, но может сразу свою операционку сверстать в которой все это будет взаимодействовать?
а если по задаче. хттп сервис сделай и неделай беременную голову |
|||
69
Ник080808
29.10.19
✎
10:38
|
(59) ты задачу опиши, что это за клиентское взаимодействие такое минуя сервер)
|
|||
70
MyNick
29.10.19
✎
12:21
|
(69) болталка для тетенек из бухгалтерии без сохранения данных где-либо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |