Имя: Пароль:
1C
1С v8
Различие COM-подключений
0 Csar
 
08.08.13
10:28
Всем привет!
Кто знает в чем различие двух подключений через COM? Коды предоставлены ниже. Я поискал на Мисте, пошарил в инете, но не нашел реального ответа. Почему то иногда с одним подключением все работает, со вторым нет. И наоборот случается. Тут на Мисте в книге знаний была страница, посвященная COMу, нотам ни слова по Application

Код "V82.COMConnector":
V8 = Новый COMОбъект("V82.COMConnector");
COMОбъект = V8.Connect(СтрокаПодключения);
ОбработкаВыгрузки = COMОбъект.НазваниеОбщегоМодуля.ФункцияВОбщемМодуле(Парам1, Парам2);
или
V8 = Новый COMОбъект("V82.COMConnector");
COMОбъект = V8.Connect(СтрокаПодключения);
Обработка = COMОбъект.Обработки.НазваниеОбработки.Создать();
Обработка.ФункцияОбработки(Парам1, Парам2);


Код "V82.Application":
V8 = Новый COMОбъект("V82.Application");
V8.Connect(СтрокаПодключения);
Обработка = V8.Обработки.НазваниеОбработки.Создать();
Обработка.ФункцияОбработки(Парам1, Парам2);
1 Галахад
 
гуру
08.08.13
10:29
Аппликейшен - полноценное приложение, КомКонектор урезанное, но более быстрое.
2 Csar
 
08.08.13
10:33
(1) Спасибо, а есть ли ссылочки какие ценные, что бы иметь более полное представление о том, кто что может и что не может в разрезе 1С?
3 Cube
 
08.08.13
10:36
(2) Зачем тебе ссылки? Пользуйся COMConnector и не парься. Он быстрее Application на порядок (более чем в 10 раз).
4 Csar
 
08.08.13
10:42
(3) тут v8: запуск внутренней обработки через COMОбъект я создавал вчера тему, в которой Коннектор не справился, хоть и задача была весьма простая (для Коннектора, конечно, а не для меня). Там задача так и не решилась с помощью Коннектора.
5 Галахад
 
гуру
08.08.13
10:43
(2) Не знаю.
Грубо, аппликейшен нужен если работаешь с формами и данными,
комконектор если работаешь только с данными
6 Csar
 
08.08.13
10:48
(5) Спасибо.
7 hhhh
 
08.08.13
10:49
(4) видимо вы коннектору подсунули работу с формами, вот он и не справился
8 Csar
 
08.08.13
10:51
(7) Там нет форм вообще. Там обработка, которая ссылается на обработку, создающую УниверсальныйОбменДаннымиXML.
9 hhhh
 
08.08.13
10:53
(8) или там у вас методы и функции вкрались, которые недоступны в режиме внешнего соединения. То есть надо брать синтакс-помощник и сидеть штудировать на этот предмет: чего можно и чего нельзя в режиме внешнего соединения. Приз указан в (3) - увеличение производительности в 10-20 раз.
10 Csar
 
08.08.13
10:54
(9) Спасибо, понял.
11 zladenuw
 
08.08.13
10:55
(10) экспорт стоит у процедуры выгрузки. какая ошибка у тебя ?
12 Infsams654
 
08.08.13
10:56
(9) в таком случае и Application не поможет
13 бомболюк
 
08.08.13
10:58
Application работает в другом адресном пространстве. там фактически запускается екзешник, соответственно велики затраты на вызов функций (т.н. маршаллинг). А COMConnector это inproc сервер, работает в адресном пространстве вызывающего процесса, отдельного процесса для 1С не создается. Затраты на маршаллинг минимальны, но недоступны интерфейсные объекты.
14 hhhh
 
08.08.13
11:03
(12) почему не поможет? Например, Форма - написано, недоступно в режиме внешнего соединения. Однако, Application помог автору.
15 H A D G E H O G s
 
08.08.13
11:04
(5) Даже тогда Аппликэйшн не нужен.
Аппликейшн вообще не нужен.
16 hhhh
 
08.08.13
11:09
(15) нужен для 7.7
17 Csar
 
08.08.13
11:10
(11) стоит. Ошибки нет - подключается успешно, но просто выкидывает из Предприятия.
18 Csar
 
08.08.13
11:10
(12) Application там помог
19 hhhh
 
08.08.13
11:14
там такая еще фича, если в общем модуле есть вызов метода, кторый недоступен во внешнем соединении, то весь общий модуль недоступен во внешнем соединении, хотя вообще вызывалась другая процедура. То есть синтаксический контроль модуля происходит.
20 hhhh
 
08.08.13
11:16
(17) попробуйте в конфигураторе запустить пункт "ПРоверка конфигурации" с галкой "Внешнее соединение", откроете для себя много нового.
21 Csar
 
08.08.13
12:05
(20) Интересно=) Спасибо, попробую!