Вход | Регистрация
 

ПодключитьВнешнююКомпоненту(): на сервере подключается, но не создаётся...

ПодключитьВнешнююКомпоненту(): на сервере подключается, но не создаётся...
Я
   dave2000
 
20.11.15 - 18:35
Платформа 8.3.5.1068, файловая база, управляемые формы.


Компонента, написанная под COM, на клиенте работает нормально, подключалась так:

Если ПодключитьВнешнююКомпоненту("AddIn.MyComponent") Тогда
   Компонента = Новый("AddIn.MyComponent");
КонецЕсли;


Понадобилось перенести её в серверный модуль для регламентного задания. Делаю так:

Если ПодключитьВнешнююКомпоненту("d:\MyComponent.dll", "MyComponent", ТипВнешнейКомпоненты.COM) Тогда
   Попытка
      Компонента = Новый("AddIn.MyComponent");
   Исключение
      СтрОшибка = ОписаниеОшибки();
   КонецПопытки;
КонецЕсли;

Не хочет работать, срабатывает исключение: СтрОшибка="Тип не определен (AddIn.MyComponent)"

Как его заставить работать?
   dave2000
 
1 - 20.11.15 - 18:36
Компонента написана на C#
   mehfk
 
2 - 20.11.15 - 18:37
Описание варианта метода:

Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
   mehfk
 
3 - 20.11.15 - 18:38
Сторно (2)
   Serginio1
 
4 - 20.11.15 - 18:42
(0) Зачем тебе ВК на сервере?
   VikingKosmo
 
5 - 20.11.15 - 18:43
(4) ну например ВК используется в контексте фонового задания
   H A D G E H O G s
 
6 - 20.11.15 - 18:44
Компонента = Новый("AddIn.MyComponent.MyComponent");
   Garykom
 
7 - 20.11.15 - 18:46
(6) только хотел это написать
   Serginio1
 
8 - 20.11.15 - 18:47
(5) Это понятно. ВК это обычно получение глобального контекста и вызов внешних событий через IAsyncEvent
Хватит и простог Com Объекта
   Garykom
 
9 - 20.11.15 - 18:51
(8) на сервере под линукс ))
   Serginio1
 
10 - 20.11.15 - 18:54
(9) Угу
ПодключитьВнешнююКомпоненту("d:\MyComponent.dll", "MyComponent", ТипВнешнейКомпоненты.COM)
   dave2000
 
11 - 20.11.15 - 19:15
(6) Спасибо, создать получилось!

А почему нужно именно "AddIn.MyComponent.MyComponent"? Ведь в самой компоненте указано просто [ProgId("AddIn.iTouch")]
   H A D G E H O G s
 
12 - 20.11.15 - 19:16
(11) Ты префикс задал
ПодключитьВнешнююКомпоненту("d:\MyComponent.dll", "MyComponent", ТипВнешнейКомпоненты.COM) Тогда
2 параметром
   dave2000
 
13 - 20.11.15 - 19:16
ой, т.е. [ProgId("AddIn.MyComponent")]
   dave2000
 
14 - 20.11.15 - 19:18
(12) Т.е. сначала указываем то, что прописано в компоненте (AddIn.ИмяКомпоненты), а потом через точку то имя, которое я задал при ПодключитьВнешнююКомпоненту(,Имя)?
   Смотрящий
 
15 - 20.11.15 - 19:20
Да
   Serginio1
 
16 - 20.11.15 - 19:21
(0) Кстати у меня к тебе такой вопрос. Динамическая компиляция для использования .Net событий в 1С
позволяет вообще отказаться от написания ВК.
Почему ты не хочешь воспользоваться ей
   Смотрящий
 
17 - 20.11.15 - 19:23
(16) Нативный код и псевдонативный код меняющийся от релиза к релизу.
Разницу чуешь ?
   Serginio1
 
18 - 20.11.15 - 19:27
(17) Нет. У него Компонента написана на C#.
В .Net 4.6 вызывается код написанный на .Net 2.0. А конечный машинный код совершенствуется от версии к версии
   Смотрящий
 
19 - 20.11.15 - 19:29
(18) ... вызывается код написанный на .Net 2.0...
Да?! Чем докажешь ?
   Serginio1
 
20 - 20.11.15 - 19:36
(19) Да сколько раз подгружал DLL написанных на старых версиях.
https://msdn.microsoft.com/ru-ru/library/jj152935(v=vs.110).aspx
   Serginio1
 
21 - 20.11.15 - 19:43
   dave2000
 
22 - 20.11.15 - 20:50
(16) За это не слышал, интересно почитать, спасибо за статейки!
   Serginio1
 
23 - 20.11.15 - 21:12


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.