|
Написание нативной компоненты для 1с. Java || C++ | ☑ | ||
---|---|---|---|---|
0
Ma3eIIa
17.02.16
✎
11:30
|
Нужно написать кроссплатформеную компоненту.
Возможно ли это на Явке. или брать с++ и вперед ? Какие могут быть сложности. грабли. Спасибо. |
|||
1
Asmody
17.02.16
✎
11:31
|
(0) На плюсах можно. На ИТС есть примеры.
|
|||
2
Ma3eIIa
17.02.16
✎
11:33
|
(1) да я нашел примеры. видел что ++ и делфя. а вот ява :) просто на досуге изучаю ее. если нереально то буду смотреть ++.
Читал что нужно отдельно писать для разных ОС и битности. то есть для каждой оболочки будет своя компонента. так что ли ? |
|||
3
Garykom
гуру
17.02.16
✎
11:36
|
ВК на java не выйдет просто, проще сервис
Кроме С++ еще можно lazarus, это если всяческие jre|clr не хочется тащить |
|||
4
Garykom
гуру
17.02.16
✎
11:37
|
||||
5
ObjectRelation Model
17.02.16
✎
11:37
|
(2) интересно, а ты хотел единый двоичный код под винь и под линь?
|
|||
6
Ma3eIIa
17.02.16
✎
11:40
|
(5) Ява машина это делает сама. по этому и задал вопрос
|
|||
7
Garykom
гуру
17.02.16
✎
11:41
|
(6) не хочется разочаровывать... но "ява машина" бывает и x86 и x86_64
|
|||
8
ObjectRelation Model
17.02.16
✎
11:41
|
(6) ява машина его делает каждый раз из байт-кода
|
|||
9
Карупян
17.02.16
✎
11:42
|
(7) Это не отменят того факта, что она сама
|
|||
10
Ma3eIIa
17.02.16
✎
11:42
|
(8) Да но код написан без учета на какой ос и битности будет запушен код.
|
|||
11
Карупян
17.02.16
✎
11:43
|
на яве нельзя писать длл. вот и весь собственно ответ
|
|||
12
Garykom
гуру
17.02.16
✎
11:43
|
(10) угу сначала написан код "без учета"... а потом удивляются а что это у нас при работе с файлами траблы или еще с чем...
|
|||
13
ObjectRelation Model
17.02.16
✎
11:43
|
(10) так и на сях можно, но двоичный результат собирать надо для каждой платформы отдельно
|
|||
14
Garykom
гуру
17.02.16
✎
11:44
|
(13) на https://ru.wikipedia.org/wiki/Haxe сразу тогда
|
|||
15
ObjectRelation Model
17.02.16
✎
11:47
|
(14) Нахе..?
|
|||
16
Ma3eIIa
17.02.16
✎
11:50
|
Я лучше на ++.
ДА и клиент будет платить за каждую реализацию. мне то от этого + |
|||
17
Garykom
гуру
17.02.16
✎
11:50
|
(15) угу и выбирать java или c++ не нуна уже
|
|||
18
Serginio1
17.02.16
✎
11:51
|
(13) Наверняка в Java есть что типа GetFunctionPointerForDelegate
https://msdn.microsoft.com/ru-ru/library/367eeye0.aspx |
|||
19
lubitelxml
17.02.16
✎
11:52
|
(14) прикольная вещь, на досуге обязательно попробую
|
|||
20
Garykom
гуру
17.02.16
✎
11:52
|
(18) там https://ru.wikipedia.org/wiki/Java_Native_Interface есть
|
|||
21
Garykom
гуру
17.02.16
✎
11:54
|
(19) там сложности есть и ограничения, это для алгоритмов просто хорошо подходит
а если к примеру работа с ТО то траблы |
|||
22
Ma3eIIa
17.02.16
✎
11:57
|
это да. но я пользуюсь еклипсом. и мне проще подключить модуль ++
|
|||
23
Garykom
гуру
17.02.16
✎
11:59
|
(22) тогда что знаешь на том и пиши
и да веб-сервис это часто наилучший результат |
|||
24
Serginio1
17.02.16
✎
12:03
|
(23) В общем смысле ВК создавался для получения событий и передачи глобального контекста итд
Вэб,HTTP сервис это просто замена COM ов. |
|||
25
Ma3eIIa
17.02.16
✎
12:03
|
(23) не спорю. но клиент захотел компоненту. он оплачивает музыку :)
|
|||
26
Serginio1
17.02.16
✎
12:05
|
Или имеет смысл написать ВК для использования пайпов с сериализацией в JSON
|
|||
27
Serginio1
17.02.16
✎
12:07
|
Я кстати делал для отправки сообщений через Вацап по пайпам, а события передавал через Вэб сервис.
|
|||
28
Ma3eIIa
17.02.16
✎
12:13
|
(26) Может потом
|
|||
29
Garykom
гуру
17.02.16
✎
12:24
|
(26) и как эти пайпы из 1С то заюзать?
|
|||
30
Serginio1
17.02.16
✎
12:35
|
(29) Через ВК. Аналогично как и по Tcp/IP/ Просто можно создать универсальные методы где передаются имя метода, а параметры упаковываются в JSON и сериализуются в строку. Ну и ответ ввиде JSON который можно собрать и разобрать на 1С
|
|||
31
Ma3eIIa
17.02.16
✎
12:42
|
все это нужно для вот этого Захват видео и звука с 1с. кто то делал такое ?
|
|||
32
Garykom
гуру
17.02.16
✎
12:42
|
(30) если все равно ВК то проще внутри этой ВК все и ваять
суть веб-сервиса что средствами 1С без ВК обмен идет с "нечто взамен ВК" |
|||
33
Garykom
гуру
17.02.16
✎
12:44
|
(31) да но чтука которая "огого" под linux не го
|
|||
34
Garykom
гуру
17.02.16
✎
12:46
|
самое простое взять портабле vlc и наваять нечто для юзания его
http://umvirt.ru/node/110 |
|||
35
Serginio1
17.02.16
✎
12:46
|
(32) Ну сервис на пайпах можно писать на том же .Net Core
|
|||
36
Garykom
гуру
17.02.16
✎
12:47
|
||||
37
Ma3eIIa
17.02.16
✎
12:48
|
Я же писал. что хотят свое. по этому такие танцы с бубном
|
|||
38
Garykom
гуру
17.02.16
✎
12:49
|
а еще можно http://bigbluebutton.org/
оно в исходниках https://github.com/bigbluebutton/bigbluebutton |
|||
39
Serginio1
17.02.16
✎
12:49
|
32+ например https://libraries.io/nuget/CoreFx.System.IO.Pipes
|
|||
40
Garykom
гуру
17.02.16
✎
12:49
|
(37) блин так спрячь vlc внутрь "ВК"
|
|||
41
Музон Хиггса
17.02.16
✎
12:52
|
(0) Берёшь https://zeroc.com/products/ice, быстренько ваяешь клиентскую часть как ВК на C++, а сервер пишешь на чем хочешь.
|
|||
42
Garykom
гуру
17.02.16
✎
12:52
|
(39) нафига нужны пайпы, если все равно в 1С пайпов нету?
вот будет в 1С нечто вроде для общения с чем то другим то да можно будет заюзать можно конечно еще заюзать "внешние источники данных" и вместо данных вызывать код с возвратом результата http://v8.1c.ru/overview/Term_000000795.htm т.е. нечто вроде своего драйвера odbc и источника наваять |
|||
43
Serginio1
17.02.16
✎
12:54
|
(42) А тем, что Вэб или HTTP сервис значительно дороже пайпов.
|
|||
44
Garykom
гуру
17.02.16
✎
12:56
|
(42)+ в смысле все параметры из 1С в ВК сериализуем в текст и в виде текста sql запросы выкидываем
в ответ стандартная таблица приходит, которую можно уже обработать (43) блин... 1С <нечто тормозное> ВК <пайпы шустрые> Еще что то для обработки вот какой смысл тут от пайпов, если в 1С все равно бутылочное горлышко? |
|||
45
Serginio1
17.02.16
✎
13:00
|
(44) Смысл пайпов это замена COM для линуксов. А вызовов методов может быть множество где скорость вызова уже играет решающую роль.
|
|||
46
Garykom
гуру
17.02.16
✎
13:08
|
(45) пайпы это те же файлы в памяти
может тогда проще сделать нечто виртуального ram диска через который и идет обмен с 1С ? |
|||
47
Garykom
гуру
17.02.16
✎
13:11
|
(46)+ NativeAPI ВК создает ram диск, возвращает его путь
далее кодом 1С туда данные и вызов команды ВК как выполнится кодом 1С читаем данные с RAM диска и даем команду ВК на отключение |
|||
48
Serginio1
17.02.16
✎
13:56
|
(46) Не совсем. Пайпы это сокеты, хотя к ним и можно обращаться как к файлам https://ru.wikipedia.org/wiki/Именованный_канал
http://stackoverflow.com/questions/6977561/pipe-vs-temporary-file |
|||
49
Garykom
гуру
17.02.16
✎
14:13
|
(47)+ http://www.delphisources.ru/forum/showthread.php?t=26647
еще для linux найти и можно очень шустро данные туда/сюда перегонять в больших объемах |
|||
50
H A D G E H O G s
17.02.16
✎
14:14
|
(48) Пайпы - это пайпы.
|
|||
51
Serginio1
17.02.16
✎
14:15
|
||||
52
Serginio1
17.02.16
✎
14:15
|
50 Согласен
|
|||
53
Garykom
гуру
17.02.16
✎
14:16
|
И где в 1С пайпы? А вот с "файлами на диске" умеет работать.
|
|||
54
H A D G E H O G s
17.02.16
✎
14:17
|
Пайпы - это смесь ежа с ужом, это смесь сокета и оперативной памяти, это самый быстрый и универсальный протокол обмена данными.
|
|||
55
Garykom
гуру
17.02.16
✎
14:18
|
(54) Угу но кроме сервера 1С с сервером sql оно где то "в 1С" есть?
|
|||
56
H A D G E H O G s
17.02.16
✎
14:19
|
(55) 1С не пользует пайпы, как не удивительно. От слова "вообще".
|
|||
57
Serginio1
17.02.16
✎
14:19
|
(53) Еще раз несложно написать Native ВК для обмена через пайпы Ввиде имяМетода,ПараметрыМетода. А сервис на пайпах писать на чем угодно. Главное параметры передавать ввиде JSON которые может готовить 1С
|
|||
58
H A D G E H O G s
17.02.16
✎
14:21
|
Секрет быстродействия пайпа в том, что он не хранит в себе данные. От слова "вообще". Пайп - это "стандарт обмена и блокировок" между 2-мя процессами. Скорость обмена упирается в скорость подготовки данных одним процессом и приемкой данных другим процессом.
|
|||
59
H A D G E H O G s
17.02.16
✎
14:22
|
(58) Речь идет о локальном ПК. Когда пробрасывается пайп до удаленного ПК - тут у нас все прелести tcp пакетов (копирование данных и разбивка по пакетам).
|
|||
60
H A D G E H O G s
17.02.16
✎
14:23
|
(57) Сложно. Пайпы - достаточно сложная штука из за того, что самому блокировки прописывать надо.
|
|||
61
Ma3eIIa
17.02.16
✎
14:27
|
(40) так не. так хоть опыт будет с ВК нормальный. да и за это еще денюжку получу. что можно сделать проще. я знаю. но хочю разобраться в этом. и отстоять цену вопроса за эту ВК. хотя можно и соврать. но тут будет совесть Чиста :)
|
|||
62
Garykom
гуру
17.02.16
✎
14:28
|
(56) "поддержка Shared Memory - появилась на движке начиная с 8.2.17 (ВНИМАНИЕ в конфигурации - не должен быть включен режим совместимости с предыдущими версиями движка), на предыдущих движках будет использоватся Naimed Pipes - тоже показывающий неплохие результаты))"
http://catalog.mista.ru/public/147259/ 1С использует пайпы |
|||
63
Garykom
гуру
17.02.16
✎
14:32
|
(57) а из 1С в эту ВК как данные передать быстро?
|
|||
64
H A D G E H O G s
17.02.16
✎
14:37
|
||||
65
Serginio1
17.02.16
✎
14:43
|
(63) Пишешь метод с 2 строковыми параметрам.
Первый это Название Метода Второй параметры в виде JSON Название пайпа передаешь при создании объекта. На стороне сервиса пайпа анализируешь переданные данные и вызываешь соответствующие методы |
|||
66
Garykom
гуру
17.02.16
✎
14:44
|
(64) если tcp/ip протокол стоит первым в настройках сервера 1С то с чего будут пайпы то юзаться?
и там такая реализация в 1С что на сокетах tcp/ip быстрее часто ЗЫ и я же не отправляю дальше "интерфейс ЕГАИС" впаривать... еще 1С 7.7 с MS SQL умела по именованным каналам работать |
|||
67
Serginio1
17.02.16
✎
14:44
|
(60) Это вам сложно. На WCF пишется все легко.
|
|||
68
Serginio1
17.02.16
✎
14:46
|
67+ другие способы не сильно трудные
https://msdn.microsoft.com/ru-ru/library/bb546085(v=vs.110).aspx |
|||
69
Serginio1
17.02.16
✎
14:48
|
(65) Или все заваричиваешь в JSON и передаешь как строку
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |