|   |   | 
| 
 | Расширение возможностей 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) болталка для тетенек из бухгалтерии без сохранения данных где-либо     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |