Написание нативной компоненты для 1с. Java || C++ #765522


#0 by Ma3eIIa
Нужно написать кроссплатформеную компоненту. Возможно ли это на Явке. или брать с++ и вперед ? Какие могут быть сложности. грабли. Спасибо.
#1 by Asmody
На плюсах можно. На ИТС есть примеры.
#2 by Ma3eIIa
да я нашел примеры. видел что ++ и делфя. а вот ява :) просто на досуге изучаю ее. если нереально то буду смотреть ++. Читал что нужно отдельно писать для разных ОС и битности. то есть для каждой оболочки будет своя компонента. так что ли ?
#3 by Garykom
ВК на java не выйдет просто, проще сервис Кроме С++ еще можно lazarus, это если всяческие jre|clr не хочется тащить
#4 by Garykom
+
#5 by ObjectRelationModel
интересно, а ты хотел единый двоичный код под винь и под линь?
#6 by Ma3eIIa
Ява машина это делает сама. по этому и задал вопрос
#7 by Garykom
не хочется разочаровывать... но "ява машина" бывает и x86 и  x86_64
#8 by ObjectRelationModel
ява машина его делает каждый раз из байт-кода
#9 by Карупян
Это не отменят того факта, что она сама
#10 by Ma3eIIa
Да но код написан без учета на какой ос и битности будет запушен код.
#11 by Карупян
на яве нельзя писать длл. вот и весь собственно ответ
#12 by Garykom
угу сначала написан код "без учета"... а потом удивляются а что это у нас при работе с файлами траблы или еще с чем...
#13 by ObjectRelationModel
так и на сях можно, но двоичный результат собирать надо для каждой платформы отдельно
#14 by Garykom
на сразу тогда
#15 by ObjectRelationModel
Нахе..?
#16 by Ma3eIIa
Я лучше на ++. ДА и клиент будет платить за каждую реализацию. мне то от этого +
#17 by Garykom
угу и выбирать java или c++ не нуна уже
#18 by Serginio1
Наверняка в Java есть что типа GetFunctionPointerForDelegate
#19 by lubitelxml
прикольная вещь, на досуге обязательно попробую
#20 by Garykom
там есть
#21 by Garykom
там сложности есть и ограничения, это для алгоритмов просто хорошо подходит а если к примеру работа с ТО то траблы
#22 by Ma3eIIa
это да. но я пользуюсь еклипсом. и мне проще подключить модуль ++
#23 by Garykom
тогда что знаешь на том и пиши и да веб-сервис это часто наилучший результат
#24 by Serginio1
В общем смысле ВК создавался для получения событий и передачи глобального контекста итд Вэб,HTTP  сервис это просто замена COM ов.
#25 by Ma3eIIa
не спорю. но клиент захотел компоненту. он оплачивает музыку :)
#26 by Serginio1
Или имеет смысл написать ВК для использования пайпов с сериализацией в JSON
#27 by Serginio1
Я кстати делал для отправки сообщений через Вацап по пайпам, а события передавал через Вэб сервис.
#28 by Ma3eIIa
Может потом
#29 by Garykom
и как эти пайпы из 1С то заюзать?
#30 by Serginio1
Через ВК. Аналогично как и по Tcp/IP/ Просто можно создать универсальные методы где передаются имя метода, а параметры упаковываются в JSON и сериализуются в строку. Ну и ответ ввиде JSON который можно собрать и разобрать на 1С
#31 by Ma3eIIa
все это нужно для вот этого
#32 by Garykom
если все равно ВК то проще внутри этой ВК все и ваять суть веб-сервиса что средствами 1С без ВК обмен идет с "нечто взамен ВК"
#33 by Garykom
да но чтука которая "огого" под linux не го
#34 by Garykom
самое простое взять портабле vlc и наваять нечто для юзания его
#35 by Serginio1
Ну сервис на пайпах  можно писать на том же .Net Core
#36 by Garykom
+
#37 by Ma3eIIa
Я же писал. что хотят свое. по этому такие танцы с бубном
#38 by Garykom
а еще можно оно в исходниках
#39 by Serginio1
32+ например
#40 by Garykom
блин так спрячь vlc внутрь "ВК"
#41 by Музон Хиггса
Берёшь , быстренько ваяешь клиентскую часть как ВК на C++, а сервер пишешь на чем хочешь.
#42 by Garykom
нафига нужны пайпы, если все равно в 1С пайпов нету? вот будет в 1С нечто вроде для общения с чем то другим то да можно будет заюзать можно конечно еще заюзать "внешние источники данных" и вместо данных вызывать код с возвратом результата т.е. нечто вроде своего драйвера odbc и источника наваять
#43 by Serginio1
А тем, что Вэб или HTTP сервис значительно дороже пайпов.
#44 by Garykom
+ в смысле все параметры из 1С в ВК сериализуем в текст и в виде текста sql запросы выкидываем в ответ стандартная таблица приходит, которую можно уже обработать блин... 1С <нечто тормозное> ВК <пайпы шустрые> Еще что то для обработки вот какой смысл тут от пайпов, если в 1С все равно бутылочное горлышко?
#45 by Serginio1
Смысл пайпов это замена COM для линуксов. А вызовов методов может быть множество где скорость вызова  уже играет решающую роль.
#46 by Garykom
пайпы это те же файлы в памяти может тогда проще сделать нечто виртуального ram диска через который и идет обмен с 1С ?
#47 by Garykom
+ NativeAPI ВК создает ram диск, возвращает его путь далее кодом 1С туда данные и вызов команды ВК как выполнится кодом 1С читаем данные с RAM диска и даем команду ВК на отключение
#48 by Serginio1
Не совсем. Пайпы это сокеты, хотя к ним и можно обращаться как к файлам
#49 by Garykom
+ еще для linux найти и можно очень шустро данные туда/сюда перегонять в больших объемах
#50 by H A D G E H O G s
Пайпы - это пайпы.
#51 by Serginio1
48+
#52 by Serginio1
50 Согласен
#53 by Garykom
И где в 1С пайпы? А вот с "файлами на диске" умеет работать.
#54 by H A D G E H O G s
Пайпы - это смесь ежа с ужом, это смесь сокета и оперативной памяти, это самый быстрый и универсальный протокол обмена данными.
#55 by Garykom
Угу но кроме сервера 1С с сервером sql оно где то "в 1С" есть?
#56 by H A D G E H O G s
1С не пользует пайпы, как не удивительно. От слова "вообще".
#57 by Serginio1
Еще раз несложно написать Native ВК для обмена через пайпы Ввиде имяМетода,ПараметрыМетода. А сервис на пайпах писать на чем угодно. Главное параметры передавать ввиде JSON которые может готовить 1С
#58 by H A D G E H O G s
Секрет быстродействия пайпа в том, что он не хранит в себе данные. От слова "вообще". Пайп - это "стандарт обмена и блокировок" между 2-мя процессами. Скорость обмена упирается в скорость подготовки данных одним процессом и приемкой данных другим процессом.
#59 by H A D G E H O G s
Речь идет о локальном ПК. Когда пробрасывается пайп до удаленного ПК - тут у нас все прелести tcp пакетов (копирование данных и разбивка по пакетам).
#60 by H A D G E H O G s
Сложно. Пайпы - достаточно сложная штука из за того, что самому блокировки прописывать надо.
#61 by Ma3eIIa
так не. так хоть опыт будет с ВК нормальный. да и за это еще денюжку получу. что можно сделать проще. я знаю. но хочю разобраться в этом. и отстоять цену вопроса за эту ВК. хотя можно и соврать. но тут будет совесть Чиста :)
#62 by Garykom
"поддержка Shared Memory - появилась на движке начиная с 8.2.17 (ВНИМАНИЕ в конфигурации - не должен быть включен режим совместимости с предыдущими версиями движка), на предыдущих движках будет использоватся Naimed Pipes - тоже показывающий неплохие результаты))" 1С использует пайпы
#63 by Garykom
а из 1С в эту ВК как данные передать быстро?
#64 by H A D G E H O G s
проверял?
#65 by Serginio1
Пишешь метод с 2 строковыми параметрам. Первый это Название Метода Второй параметры в виде JSON Название пайпа передаешь при создании объекта. На стороне сервиса пайпа анализируешь переданные данные и вызываешь соответствующие методы
#66 by Garykom
если tcp/ip протокол стоит первым в настройках сервера 1С то с чего будут пайпы то юзаться? и там такая реализация в 1С что на сокетах tcp/ip быстрее часто ЗЫ и я же не отправляю дальше "интерфейс ЕГАИС" впаривать... еще 1С 7.7 с MS SQL умела по именованным каналам работать
#67 by Serginio1
Это вам сложно. На WCF пишется все легко.
#68 by Serginio1
67+ другие способы не сильно трудные
#69 by Serginio1
Или все заваричиваешь в JSON и передаешь как строку
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С