![]() |
|
Отличие Native и COM внешних компонент | ☑ | ||
---|---|---|---|---|
0
ДНН
25.05.19
✎
23:10
|
Добрый вечер.
Коллеги, объясните нубу отличие между Native и COM внешними компонентами. Пока я понял так: Native - должен содержать перечень обязательных функций, описанных 1С COM - обычный COM объект. Я правильно понимаю, что COM внешние компоненты нужно регистрировать, а Native нет? Может кто ссылкой поделится? Спасибо |
|||
1
Garykom
гуру
25.05.19
✎
23:19
|
Может тебе еще сайта гугла с яндексом подсказать?
Или хотя бы кнопочку "Я" вверху и ровно справа от названия темы что ты написал? |
|||
2
ДНН
25.05.19
✎
23:20
|
(1) мне бы на примерах, я уже гуглил и яндексил - пока понял только что нативное - это написанное под конкретное приложение. Ну ком понятно. А для внешних компонент в чем отличия?
|
|||
3
ДНН
25.05.19
✎
23:21
|
я же говорю я нуб, кроме 1с ниче не знаю
|
|||
4
Garykom
гуру
25.05.19
✎
23:21
|
Ааа та ты читать не умеешь? Или просто слишком много непонятных слов?
Потому что такую чушь "пока понял" )) Ты и 1С не знаешь к сожалению |
|||
5
Garykom
гуру
25.05.19
✎
23:22
|
Начни с основ https://its.1c.ru/db/metod8dev#content:3221:hdoc
|
|||
6
Garykom
гуру
25.05.19
✎
23:29
|
Ну и https://ru.wikipedia.org/wiki/Component_Object_Model
Затем https://habr.com/ru/post/191014/ Книга знаний: Написание внешних компонент для 1С на VB.NET и C# Книга знаний: Написание внешних компонент для 1С (Delphi) И в самом конце https://github.com/allustin/awesome-1c http://catalog.mista.ru/public/115486/ http://catalog.mista.ru/public/184119/ |
|||
7
Garykom
гуру
25.05.19
✎
23:30
|
Если же ничего не понял, то краткая выжимка
http://samag.ru/archive/article/2991 http://samag.ru/archive/article/3027 |
|||
8
H A D G E H O G s
26.05.19
✎
00:20
|
(0) В статьях написан шлак, но, в принципе, это очевидно, так как понятно, кто принес этот щлак на форум.
2 вещи важны: 1) COM компоненты позволяют работать с объектами 1С внутри компоненты. 2) Native компоненты позволяют работать не в Винде, но это и нахрен не нужно. Поэтому, выбор здорового и разумного человека - COM. Да, и всякие байки, вроде "COM не работает на сервере" "COM требует записи в реестр" можно рассказывать населению где-нибудь в северной глуши. |
|||
9
H A D G E H O G s
26.05.19
✎
00:21
|
Ах, да.
Единственное, где нужен Native - это мобильный клиент на всяких Android. |
|||
10
Garykom
гуру
26.05.19
✎
01:13
|
(9) Принципиально против серверов и рабочих машин на линуксе?
|
|||
11
Конструктор1С
26.05.19
✎
04:40
|
(9) я б сказал Native нужен как минимум там, где нет COM
|
|||
12
vde69
26.05.19
✎
08:36
|
может и не правильно с точки зрения крючкотворства, но некое понимание различий дает такое (технически не правильное, но правильное по сути) восприятие сабжа:
COM - это отдельный объект системы который работает вне зависимости от 1с (типа отдельной службы) и 1с умеет подключатся к этой службе и взаимодействовать с ней. Native - это DLL которую умеет загружать 1с в свое адресное пространство |
|||
13
NorthWind
26.05.19
✎
08:59
|
(12) на самом деле BK COM - это in-process COM-сервер, так что по факту и COM-компонента, и Native-компонента загружаются в адресное пространство процесса. COM-сервер в виде отдельного процесса - это когда мы, например, вызываем Excel.Application. Отличие только в том, что Native не использует виндовых механизмов COM и поэтому является кросс-платформенной.
|
|||
14
ДНН
26.05.19
✎
09:27
|
то есть com компонента будет работать и в других системах? И для разработки такой компоненты достаточно написать com-интерфейс?
|
|||
15
ДНН
26.05.19
✎
09:27
|
com-интерфейс или как это правильно называется
|
|||
16
NorthWind
26.05.19
✎
09:45
|
COM-компонента не будет работать в других системах. Для нее необходима Windows.
Насколько я понимаю, Native интерфейс был разработан именно потому, что 1С начала помимо винды смотреть на другие платформы, в частности, на Linux и на мобильные ОС. |
|||
17
ДНН
26.05.19
✎
09:50
|
(16) другие системы - всмысле не 1С. То есть я написал такую dll и теперь могу через com использовать ее где угодно.
|
|||
18
H A D G E H O G s
26.05.19
✎
10:33
|
(17) Теоретически. Но лучше так не делать, потому что это будет "ужа через ежа".
|
|||
19
H A D G E H O G s
26.05.19
✎
10:36
|
На самом деле, там с десяток разных вариантов есть, когда разговор заходит не о 1с
|
|||
20
NorthWind
26.05.19
✎
10:39
|
(17) если вы будете писать по соглашениям для 1С, то вряд ли. Если нужна совместимость с другими языками, то я бы посмотрел в сторону написания обычной com-компоненты. Из 1С вполне цепляется, хотя не будет русских имён классов и методов, нельзя лазить в методы платформы и нужно понимать что некоторые типы данных при передаче 1С не позволяет.
|
|||
21
NorthWind
26.05.19
✎
10:45
|
Нужно понимать, что есть классические COM-компоненты, которые можно вызывать из любого языка, и есть ВК для 1С, которые хоть и используют технологию COM, но имеют некоторые отличия. Хотя бы из-за русскоязычного синтаксиса, которого нигде кроме 1С нет. И из-за вызовов платформы.
|
|||
22
ДенисЧ
26.05.19
✎
10:55
|
(21) К чёрту перья! Покажи мне в интерфейсе ВК 1с (через TLB-viewer) хоть одну русскоязычную методу.
|
|||
23
NorthWind
26.05.19
✎
11:39
|
(22) так ежу понятно, что их там не будет. Это делается не штатными средствами Windows.
|
|||
24
H A D G E H O G s
26.05.19
✎
12:45
|
(21) Ох уж эти сказочки, ох уж эти сказошники
http://prntscr.com/ntgogi |
|||
25
H A D G E H O G s
26.05.19
✎
13:01
|
Ну или так
http://prntscr.com/ntgsyo |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |