|
8.2 Внешняя компонента Native API | ☑ | ||
---|---|---|---|---|
0
ll13
25.03.10
✎
19:41
|
Скомпилировал ВК Native API, исходники которой идут на ИТС.
А как её в 1С юзать ? &НаКЛиенте Процедура ВК(Команда) ПодключитьВнешнююКомпоненту("AddInNative.dll", "Компонента", ТипВнешнейКомпоненты.Native); Компонента = Новый(?????); << А какой объект создавать ? |
|||
1
xReason
25.03.10
✎
19:47
|
Кстати в доки пишут, что Native API должен и в линуксе работать. Интересно это проверить
|
|||
2
ДенисЧ
25.03.10
✎
19:51
|
Телепатирую, что AddIn.Native
Но нужно смотреть в исходники. Где она на ИТС лежит? |
|||
3
ll13
25.03.10
✎
20:00
|
(2) Сам проект лежит \1CIts\EXE\VNCOMP82\example\NativeAPI\
заголовки к нему \1CIts\EXE\VNCOMP82\include\ Ваши телепатические способности не помогли .... |
|||
4
ДенисЧ
25.03.10
✎
20:09
|
Предлагаю попробовать AddInNativeExtension
Других альтернатив я пока не вижу |
|||
5
ll13
25.03.10
✎
20:17
|
(4) Уже пробовал, не помогло.
Методом "научного тыка" перепробовал уже все возможные варианты ... так не к чему и не пришел... |
|||
6
shuhard
25.03.10
✎
20:20
|
||||
7
ll13
25.03.10
✎
20:22
|
(6) Уже читал ... ничего конкретного
|
|||
8
H A D G E H O G s
25.03.10
✎
20:23
|
Кто сможет подключить ВК на Web- клиенте, или на Тонком из БД, или Макета двоичного - мой респект и уважуха.
|
|||
9
Ковычки
25.03.10
✎
20:25
|
(8) а в чем там прикол ?
|
|||
10
H A D G E H O G s
25.03.10
✎
20:30
|
(9) Я просто не смог.
В web-клиенте - только из базы можно подключить. Типа, в реестр и ФС - ни-ни, безопасность! |
|||
11
Ковычки
25.03.10
✎
20:31
|
а в реестр усера ?
|
|||
12
Ковычки
25.03.10
✎
20:32
|
ааа, в веб клиенте - в смысле на стороне клиента использовать что ли или на стороне сервера ?
|
|||
13
ll13
25.03.10
✎
20:33
|
(8) В теории ВК написанные по технологии NATIVE API должны подключаться и к тому и к другому. И на ИТС за март идут исходники для всего этого дела. На практике - DLL NATIVE API из исходников я скомпилировал без проблем.
ПодключитьВнешнююКомпоненту("AddInNative.dll", "Компонента", ТипВнешнейКомпоненты.Native) - выполняется. А вот дальше затык :((( я так и не понял какой объект создавать из компоненты Компонента = Новый(?????) |
|||
14
ll13
25.03.10
✎
20:35
|
(12) В документации написано что можно и так, и так.
|
|||
15
Ковычки
25.03.10
✎
20:35
|
(13) зарегистрируй и найди в реестре по имени библиотеки
|
|||
16
H A D G E H O G s
25.03.10
✎
20:35
|
(12) На клиенте, на сервере - никаких проблем, даже из Макета.
|
|||
17
H A D G E H O G s
25.03.10
✎
20:35
|
(15) Не факт
|
|||
18
Ковычки
25.03.10
✎
20:35
|
(14) щаз... если это веб клиент, то клиент это уже иное
|
|||
19
H A D G E H O G s
25.03.10
✎
20:36
|
Надо так:
Компонента = Новый(AddIn.Компонента.<ИмяКомпоненты>) |
|||
20
Ковычки
25.03.10
✎
20:36
|
(16) это как ты хочешь на браузере пользовать вк ?!
|
|||
21
H A D G E H O G s
25.03.10
✎
20:37
|
(20) Просто, беру и пользую. А что?
|
|||
22
Ковычки
25.03.10
✎
20:38
|
(21) как ?! если это фф или прочие сафари ?
|
|||
23
ll13
25.03.10
✎
20:39
|
(19) Вот тут то и проблема! что я должен указать в <ИмяКомпоненты> ?
|
|||
24
H A D G E H O G s
25.03.10
✎
20:40
|
(22) Нууу, во первых читаю СП.
Там написано, что ПодключитьВнешКомп() доступно на web-клиенте. |
|||
25
Ковычки
25.03.10
✎
20:45
|
(24) ну это все равно сторона сервера
|
|||
26
H A D G E H O G s
25.03.10
✎
20:50
|
(25) Тоесть? Dll - ка не подгружается в адресное пространство firefox.exe, к примеру?
|
|||
27
Ковычки
25.03.10
✎
20:52
|
да, она на сервере лежит
|
|||
28
H A D G E H O G s
25.03.10
✎
21:09
|
(27) Там все на сервере лежит. Где выполняется?
|
|||
29
Ковычки
25.03.10
✎
21:10
|
там же
|
|||
30
H A D G E H O G s
25.03.10
✎
21:30
|
(29) Завтра скачаю УТ-шку демонстрационную, и ProcessExplorer-ом посмотрю, куда подгружается.
|
|||
31
ll13
25.03.10
✎
22:15
|
Подниму тему, мой вопрос так и остался без ответа...
|
|||
32
ll13
26.03.10
✎
10:22
|
Неужели никто не юзал пример native-внешней компоненты с диска ИТС ?!
|
|||
33
H A D G E H O G s
26.03.10
✎
10:25
|
(29) Попробовал.
Итак - ВК на ВебКлиенте ставятся именно именно в ВебКлиент - устанавливается плагин для Explorera или Мозиллы. Если интересно - смотрим демоконфу УТ и ее работу с оборудованием. |
|||
34
H A D G E H O G s
26.03.10
✎
10:30
|
Компонента = Новый(AddIn.Компонента.AddInNative);
|
|||
35
Кирпич
26.03.10
✎
10:41
|
А Native API для семерки ещё не сделали?
|
|||
36
ll13
26.03.10
✎
10:47
|
В режиме
&НаКлиенте Процедура ВК(Команда) Если ПодключитьВнешнююКомпоненту("f:\NATIVE_API\Release\AddInNative.dll", "Компонента", ТипВнешнейКомпоненты.Native) Тогда Попытка Компонента = Новый("AddIn.Компонента.AddInNative"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Иначе Сообщить("Не могу подключиить"); КонецЕсли Получаю: КонецПроцедуры Получаю: {Форма.Форма.Форма(6)}: Тип не определен (AddIn.Компонента.AddInNative) Бред какой-то уже второй день пытаюсь подключить компоненту из примера, 1С даже не удосужилась приложить к ней демо-конфу ... ( В Компонента = Новый("???") перебрал уже все что возможно .... ( не работает не в какую. Пробовал в режиме толстого и тонкого клиентов упр. приложения. |
|||
37
ll13
26.03.10
✎
11:49
|
Всем спасибо за участие)
После суток(!) непрекращающихся попыток разобраться в коде примера native api расположенного на мартовском ИТС, периодически скатываясь на "научный тык" аля "а вдруг повезет...", собственноручно скомпиленая компонента была подключена и заработала ))))) |
|||
38
ll13
26.03.10
✎
20:03
|
(8) Удалось подключить ВК из макета обработки(не внешней) на тонком клиенте. Если интересно, расскажу.
|
|||
39
МихаилМ
26.03.10
✎
20:06
|
(28)
В книгу знаний напишите про получение этого опыта. или здесь |
|||
40
C-Noptik
26.03.10
✎
20:22
|
(38) интересно
|
|||
41
H A D G E H O G s
26.03.10
✎
22:05
|
Интересно
|
|||
42
ll13
26.03.10
✎
22:44
|
Пишу вкратце, потом если руки дойдут статейку напишу про то как я воевал с ВК 8.2
1). Компилируем и собираем RELEASE компоненты NATIVE API c мартовского ИТС (только её, остальную лабуду не компилируем), получаем AddInNative.dll 2). Создаем файл MANIFEST.XML следующего содержания: <?xml version="1.0" encoding="utf-8"?> <bundle xmlns="http://v8.1c.ru/8.2/addin/bundle"> <component os="Windows" path="AddInNative.dll" type="native" arch="i386" /> </bundle> 3). Эти два файла запаковывает в NATIVE.ZIP 4). Создаем обработку ТестВнешнейКомпоненты (Интегрированную, НЕ ВНЕШНЮЮ !!!), в ней макет типа двоичные данные - МакетВК, закачиваем в него наш NATIVE.ZIP 5). На форме 4-е кнопки, их обработчики (простите за корявость кода) &НаКлиенте Перем Компонента; &НаКлиенте Процедура УстановитьВК(Команда) УстановитьВнешнююКомпоненту("Обработка.ТестВнешнейКомпоненты.Макет.МакетВК"); КонецПроцедуры // нужно выполнять ТОЛЬКО ОДИН РАЗ, либо при изменении ВК в макете &НаКлиенте Процедура ПодключитьВК(Команда) Если ПодключитьВнешнююКомпоненту("Обработка.ТестВнешнейКомпоненты.Макет.МакетВК", "Компонента", ТипВнешнейКомпоненты.Native) Тогда Попытка Компонента = Новый("AddIn.Компонента.AddInNativeExtension"); Сообщить("Всё ОК"); Исключение Сообщить("Не могу создать объект из компоненты"); Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; Компонента.Включен = Истина; Иначе Сообщить("ВК не установлена"); КонецЕсли КонецПроцедуры &НаКлиенте Процедура ВнешнееСобытие(Источник, Событие, Данные) Сообщить("Источник = "+ Источник + ", Событие = " + Событие + ", Данные = " + Данные); КонецПроцедуры &НаКлиенте Процедура ВключитьТаймер(Команда) Если НЕ Компонента = Неопределено Тогда Компонента.СтартТаймер(); Иначе Сообщить("Компонента не подключена"); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ВыключитьТаймер(Команда) Если НЕ Компонента = Неопределено Тогда Компонента.СтопТаймер(); Иначе Сообщить("Компонента не подключена"); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии() Если НЕ Компонента = Неопределено Тогда Компонента.СтопТаймер(); Компонента.Включен = Ложь; Компонента = Неопределено; КонецЕсли; КонецПроцедуры Сначала Устанавливаем, затем подключаем, и можно играться с таймером компоненты. Ну вод собственно и всё ... |
|||
43
ll13
26.03.10
✎
22:50
|
(42) + Разумеется компонента будет работать только под тонким и толстым клиентом уравляемого приложения архитектуры i386, для других платформ(и браузеров) надо писать другие варианты компоненты и описывать их в MANIFEST.XML
|
|||
44
ll13
27.03.10
✎
02:03
|
(42)+ Небольшое дополнение:
Метод УстановитьВнешнююКомпоненту("Обработка.ТестВнешнейКомпоненты.Макет.МакетВК"); Извлекает компоненту(ы) из макета из закидывает на клиентскую машину в c:\Documents and Settings\Администратор\Application Data\1C\1Cv82\ExtCompT\ и создает файл registry.xml где они оба постоянно и находяться. Повторно требуется выполнить УстановитьВнешнююКомпоненту() тогда, когда эти файлы удалены/повреждены или необходимо их обновление из макетаВК. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |