Имя: Пароль:
1C
1С v8
ПодключитьВнешнююКомпоненту COM в тонком клиенте &НаСервере
,
0 Hussein
 
19.09.12
11:24
Собственно, не грузится. В толстом клиенте COM грузится, Native компонента грузится везде, &НаКлиенте COM грузится, &НаСервере в тонком -никак.
Код
Если ПодключитьВнешнююКомпоненту("d:\Projects\Addin82_2\Addin.dll","AddinTest",ТипВнешнейКомпоненты.COM) Тогда  //всегда ложь
//бла-бла-бла
КонецЕсли;
1 qeos
 
19.09.12
11:36
путь доступен?
2 Hussein
 
19.09.12
11:48
Есс-но. &НаКлиенте грузится но проблем. Не устраивает, что в тонком клиенте &На Клиенте недоступен объект Запрос.
3 hhhh
 
19.09.12
11:48
(0) а точно на сервере есть эта папка? d:\Projects\Addin82_2\Addin.dll
4 qeos
 
19.09.12
11:51
запутал
5 Hussein
 
19.09.12
11:55
На одной машине все, файловый вариант 8.2.16.352 платформа
Я же говорю - форма, на ней 2 кнопки , по одной &НаКлиенте, по второй &НаСервере
6 Hussein
 
19.09.12
12:54
Тесты показали :
Слухи о совместимости компонент разных версий сильно преувеличены.
Брал диск ИТС.
Все проекты компилировал БЕЗ изменений
VNCOMP\V8\DELPHI5\SAMPLE - приводит к краху системы. Собиралось на Delphi7 и XE2
VNCOMP82\example\COM - ГРУЗИТСЯ!!! Собирал под VC2010
Остальные компоненты 7.7 просто не грузятся(проверял всякие от 7.7), может ,что и пропустил.
Разумеется, все проверялось &НаСервере тонкий клиент.
7 zladenuw
 
19.09.12
12:58
(2) так верни то что тебе надо с сервера. или в чем проблема ?
8 Hussein
 
19.09.12
13:45
Куда вернуть?
Покажи пример, плизззз.
9 zladenuw
 
19.09.12
13:50
куда куда. на клиент. подсказка. функция с возвратом нужного.
10 Hussein
 
19.09.12
13:53
Ну да, ну да.
Чтобы запедалить в ВК что-нить, мне хватит и NativeAPI.
А вот создать в ВК объект 1С (например, Запрос) уже не получится.
Можно, конечно ограничить пользователя - ЗАПУСК ТОЛЬКО В ТОЛСТОМ!!!
НО как-то это не кошерно.... )))
11 Птах
 
19.09.12
13:57
Нах тебе ВК? (9) Имеет в виду, что тебе надо напейсать серверную функцию, которая будет выполнять нужный тебе запрос по переданным параметрам и возвращать результат.

Ну или делай и СОМ-соединение на сервере.
12 zladenuw
 
19.09.12
13:59
(11) зачем. пусть ком живет на клиенте. если ему так надо. и то проблема в нем. что если его долго не использовать оно теряется.... где то была статья как подержать ком на тонком с помощью временного хранилища
13 Serginio1
 
19.09.12
13:59
Сервер 64 разрядный?
14 Птах
 
19.09.12
14:02
(11) Сорь, невнимательно читал тему. Суть однако не меняется - зачем выдумывать велосипед и выполнять запросы 1с в ВК?
15 Fram
 
19.09.12
14:06
(13) смотри (5). ключевое слово "файловый"
16 Hussein
 
19.09.12
14:09
Самый продуктивный диалог:
- Как сделать то-то?
- А нах оно тебе надо?

Шутка

А если серьезно, еще раз говорю - надо ИМЕННО &НаСервере(Это ДИРЕКТИВА!!!) и ИМЕННО в Тонком Клиенте. Поверьте, я знаю , как выполнить процедуру(функцию) на сервере и вернуть результат. Но надо ИМЕННО так.
(11) COM соединение на сервере создаст ишо один процесс, а нам ето не нать.
А если имеете в виду Внешнюю компоненту COM, так я про это и спрашиваю. Только надо чтобы она как минимум работала в Толстом и Тонком (Веб не берем пока ;-)))
17 Hussein
 
19.09.12
14:12
(12) Не надо запросы. Надо например, что-нибудь типа Справочника ))). Только не элемента, а Справочника как сущности 1С. Как-то так.... Ну или еще какой объект, а не ДанныеФормыСтруктура....
18 zladenuw
 
19.09.12
14:15
(17) а в чем проблема с данныеформыструктура преобразовать на сервере в то что тебе надо. и в директиве на сервере. доступны запросы и Справочник.Мой.
19 Hussein
 
19.09.12
14:20
(17)
НЕ УСТАНУ ПОВТОРЯТЬ. Я именно этого и хочу. Но На сервере не грузится ВК! См.(0)
Я Не про данные формы толкую, а про то ,что доступ к объектам 1С в УФ возможен ТОЛЬКО на Сервере.

И еще.
Все-таки тест на Visual Studio загрузился...
Значит, можно!!!
Жаль что проекты на Delphi...
Сижу сравниваю проекты на С и Delphi...(((
20 zladenuw
 
19.09.12
14:25
а загрузить не пробовал ? ЗагрузитьВнешнююКомпоненту(<ИмяФайла>)
21 qeos
 
19.09.12
14:33
(10) Чтобы запедалить в ВК что-нить, мне хватит и NativeAPI.
А вот создать в ВК объект 1С (например, Запрос) уже не получится.


все верно объекта Запрос нету на токном клиенте &НаКлиенте
22 qeos
 
19.09.12
14:35
и эта.. заведи бложек про xe2 и 1с
23 qeos
 
19.09.12
14:36
+ пробовал на тонком клиенте, но может поможет это http://qeos.ru/?page=COM_napisannyi_na_DelphiXE2_dlya_1C&nav=1
24 Hussein
 
19.09.12
15:03
(23) Большое спасибо!
Я пришел к тому же, но через (..) через сравнение TypeLib от VC2010 и от XE2.
Про бложек подумаю, в принципе есть что сказать(например по WideString - повозиться пришлось).
25 qeos
 
19.09.12
15:04
(24) а xe2 по умолчанию winde, не?
26 Hussein
 
19.09.12
15:19
(25) Да, но компоненты были старые - раз, библиотека WinSock возвращает и принимает только ANSIString - два, ну и еще по мелочи - размер указателя на Char и прочее.
Я посмотрел ссылку. Это COM и такая штука у меня работает- SIP телефон на ActiveX в 1С.
Проблема возникает при обработке событий - тонкий не нюхает Events от COM. Если есть другая инфа - плиз в студию. А мне надо AppDispatch получить. Вот.
27 Hussein
 
20.09.12
08:11
Проблема не решена, но замазана. )))
Переписал компоненту на VC2010. Работает.
Тема по написанию полноценных COM компонент на Delphi остается открытой.
28 Serginio1
 
20.09.12
12:37
Если через КОМ то я уже лет девять использую
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=115&lid=2019
Исходник ВК которая загружает Объект Автоматизации поддерживающий ITypeInfo и выполняет все его свойства и методы через IlanguageExtender.
29 Rebelx
 
20.09.12
12:41
(0) а про синтаксис-помощник уже было?

Описание варианта метода:

Компонента должна быть выполнена по технологии COM и зарегистрирована в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
30 Rebelx
 
20.09.12
12:46
(29) т.е. есть какие-то трудности с COM на сервере. хотя и должно теоретически работать при указании пути к библиотеке.
Но в свете 8.3 как-то не кошерно использовать COM
31 Serginio1
 
20.09.12
13:00
(30) Почему? В свете развития Net COM использовать еще проще чем Native API. Либо придется делать компоненты которые и будут вызывать этот же СОМ из Native API.
Тем более, что библиотеки на Net прекрасно работают как род 32 так и по 64 разрядные ОС.
Тот кто хочет мучаться с не видовс ОС это уже их проблемы. Почему другие должны мучаться?
32 Hussein
 
20.09.12
15:23
(29) Выдернуто из контекста справки.
Речь идет о подключении в Варианте ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>) .
А я его и не использую.
33 Hussein
 
20.09.12
15:31
(30)
Клиент и сервер  находятся на одной машине.
Трудностей НЕТ. Все зарегистрировано.
Может быть, за исключением того, что при загрузке 1С ищет регистрацию сначала в ветке реестра HKCU\Software\CLSID (проверено Procmon), но все равно прописывает собственную регистрацию в реестре. Кто не верит , в CLSID найдите регистрацию своей компоненты, там значение по умолчанию "V8 Addon 2.0" и оно перезаписывается каждый раз.
Также (не знаю зачем) 1С прописывает в реестре регистрацию интерфейса IPropertyPage с указанием ProgID на загружаемую ВК.
Кстати, ветка HKCU\Software\CLSID в Windows XP, ЕМНИП, указывает на HKCR (могу ошибаться), а в WIn7 (у меня) там какая-то шняга лежит.
34 Hussein
 
20.09.12
15:33
(28)
Я тоже использовал в 7.
Речь идет про:
1. 8.2
2. УФ
3. &НаСервере
35 Hussein
 
20.09.12
15:35
Кстати, проверил - Процедура Выполнить(Строка) NOT Supported by authomation object. (((
Пичалька....
36 Serginio1
 
20.09.12
17:47
Я ее использовал и в 8 ке правда на клиенте.
А зачем тебе ВК на сервере? В основном то нужно ради эвентов. А они на сервере не нужны.
А аппдиспатч тоже не особо нужен, т.к. можно подключиться через COMConnector.
37 Hussein
 
20.09.12
17:57
(36) В настоящее время активно занимаюсь SIP телефонией в связке с 1С. Так вот, в терминальной сессии SIP телефон не работает(точнее , работает , но только один). Есть идея исправить положение, но нужно перехватывать события на сервере. В общем, пока все мутно и неясно.
Соответственно и COMConnector тут ни при чем.
38 Serginio1
 
20.09.12
18:05
А как ты на сервере то события перехватывать будешь?
ОбработкаВнешнегоСобытия (ExternEventProcessing)

Возникает при посылке внешним приложением сообщения, сформированного в специальном формате. Внешнее событие сначала обрабатывается всеми открытыми формами, имеющими процедуру-обработчик этого события, а затем может быть обработано в процедуре-обработчике модуля управляемого приложения.
И почему нужно на сервере это делать? Почему COMConnector не проходит?