Имя: Пароль:
1C
 
Отличие 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
6 Garykom
 
гуру
25.05.19
23:29
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