Имя: Пароль:
1C
1С v8
Коллеги, что-то запарился я с подключением своей ВК к УФ
,
0 Гений 1С
 
гуру
13.09.15
04:25
Работает только вот такой метод:

        Расположение = "m:\fixin\1s8MyTools\Anviz биометрия\+\Проект VB COM ANVIZUBIO\AddInAnvizUBIO.dll";
        ЗагрузитьВнешнююКомпоненту(Расположение);
        AnvizUBIO_Компонента = Новый ("AddIn.AddInAnvizUBIO");

Но он не используется в Рознице 2.0 на УФ.

Там используется НачатьПодключениеВнешнейКомпоненты.

Если я вызываю этот метод для DLL-ки, то получаю в обработчике оповоещения, что компонента создана, но объект компоненты создать не могу, получаю ошибку - неизвестный тип "AddIn.AddInAnvizUBIO":


    ДополнительныеПараметры = Новый Структура();
    ОписаниеОповещения = Новый ОписаниеОповещения("ПослеПодключенияВнешнейКомпоненты", ЭтаФорма,ДополнительныеПараметры);
    НачатьПодключениеВнешнейКомпоненты(ОписаниеОповещения, "m:\fixin\1s8MyTools\Anviz биометрия\+\Проект VB COM ANVIZUBIO\AddInAnvizUBIO.dll", "AddInAnvizUBIO");


Если же подсовываю ей не DLL-ку, а ZIP-файл, то Подключено = ложь, т.е. ZIP файл не подключает.

Что не так с манифестом?

<?xml version="1.0" encoding="UTF-8" ?>
<bundle xmlns="http://v8.1c.ru/8.2/addin/bundle">;
<component os="Windows" path="AddInAnvizUBIO.dll" type="native" arch="i386" />
<component os="Windows" path="AddInAnvizUBIO.dll" type="native" arch="x86_64" />
</bundle>

Работаю в толстом клиенте, казалось бы, все должно пахать.


Вопросов собственно 2:

1. Почему когда вызываю метод НачатьПодключениеВнешнейКомпоненты для DLL, компонента подключается, но объект не создается.

2. Почему не подключается компонента в Zip-архиве?
1 H A D G E H O G s
 
13.09.15
12:49
Пусть это будет тебе гуру-тест, забавный ты наш. Думай. Приеду через две недели - выложу решение. А может и нет.
2 kcdnb
 
13.09.15
13:36
1с не для тебя
3 Serginio1
 
13.09.15
13:52
Может тебе проще сделась СОМ объект с событиями и подключаться к ним через ДобавитьОбработчик ?
4 Serginio1
 
13.09.15
13:53
Посмотри http://catalog.mista.ru/public/238584/ там есть реализация и событий и ВК для получения глобального контекста
5 qwerty
 
13.09.15
15:54
А как это ты одну dll скомпилил и для x32 и x64?
6 Гений 1С
 
гуру
13.09.15
20:24
(3) через COM почему-то не создается объект, хотя regsrv32 нормально прошло
7 Гений 1С
 
гуру
13.09.15
20:24
(4) ВК у меня написана.
(5) 32-разрядная может работать и в 64-разрядной среде
8 Гений 1С
 
гуру
13.09.15
20:25
Через COM почему-то не канает:

ПодключитьВнешнююКомпоненту("AddIn.AddInAnvizUBIO");
        AnvizUBIO_Компонента = Новый ("AddIn.AddInAnvizUBIO")

Валится на первом операторе, хотя через regsvr32 зарегистрирована успешно.
9 Гений 1С
 
гуру
13.09.15
20:26
ну я пока тупо использую для подключения тот метод, который работает, но хотелось бы разобраться что 1С имело ввиду, потому что в тонком клиенте только ZIP можно подключать.
10 Serginio1
 
13.09.15
21:10
(7) 32 разрядная не может если это не Net товская, там просто компиляция идет при подключении в 64 разрядную.
Это же DLL.
(6) А разве у тебя не Native Api,
(7) Native Api это вообще обрубок и недоразумение для поддержки линукса.
В 8 ке есть подключение к Событиям и можно использовать намного больше типов а главное IDispatch.
11 Serginio1
 
13.09.15
21:11
(10) А комовскую вроде нельзя подключить в тонком?
12 Serginio1
 
13.09.15
21:25
13 Serginio1
 
13.09.15
21:27
14 Гений 1С
 
гуру
13.09.15
21:57
(12) Как это понимать:
"Надо запускать сеанс под толстым клиентом. Если запускать тонкого клиента или web-клиента, предварительно надо установить компоненту." Что значит установить?
15 Гений 1С
 
гуру
13.09.15
21:59
(13) по этой ссылке он только просек,что надо в архив пихать, не догнал что нужен манифест и инфо.хмл. У меня все это прочухано, но ничего не работает, вот в чем бида.
16 Serginio1
 
13.09.15
22:01
УстановитьВнешнююКомпоненту
17 Serginio1
 
13.09.15
22:03
(14) Так у тебя нативная или комовская?
18 Гений 1С
 
гуру
13.09.15
22:03
(17) у меня нативная.
(16) гм, надо попробовать. Потому что я использовал НачатьУстановку, без УстановитьВнешнююКомпоненту. Но органами чуствую, что не прокатит.
19 Гений 1С
 
гуру
13.09.15
22:04
(17) я вообще-то в терминологии не силен, но если DLL-ка проходит через Regsrv32, значит её можно юзать как COM?
20 Serginio1
 
13.09.15
22:15
(19) Это не терминологии а технологии. Native API сделано для совместимости с линуксом на VMT и соответственно IUnknown и IDispatch там нет. И соответственно подключение к ним различное.
НачатьУстановку это немодальная УстановитьВнешнююКомпоненту.
21 Гений 1С
 
гуру
13.09.15
22:22
(20) ну раз НачатьУстановку не прокатывает, то и УстановитьВнешнююКомпоненту не прокатит
22 Fedor-1971
 
14.09.15
08:45
(0) Возможно я ошибаюсь, но
в строке "AddIn.AddInAnvizUBIO": AddIn - это 7 описание для интерфейса внешних объектов.
Если подключил внешнюю компоненту, то просто создавай её объекты через Новый().
23 ДенисЧ
 
14.09.15
08:45
1с и ВК - это не твоё. Смирись.
Лучше мобилками барыжь
24 Гений 1С
 
гуру
14.09.15
14:39
(22) не взлетает
25 Гений 1С
 
гуру
14.09.15
14:40
(23) как не мое, я уже одну ВК коммерческую написал. ;-) для ANVIZ дверного замка.
26 Serginio1
 
14.09.15
15:16
(25) Ты по какой технологии ВК делаешь?
http://its.1c.ru/db/metodtorg#content:3221:hdoc

Судя по \Проект VB COM  ты делаешь на VB

Создание компонент с использованием технологии COM
Технология внешних компонент с использованием COM может также применяться в "1С:Предприятии" более ранних версий (версии 7.7, 8.0 и 8.1).

При загрузке внешней компоненты функцией ЗагрузитьВнешнююКомпоненту() или ПодключитьВнешнююКомпоненту() (для компоненты, созданной по технологии COM) "1С:Предприятие 8" определяет ProgID COM-объекта компоненты следующим образом:

ProgID имеет вид Vendor.Component;
в качестве первой части (Vendor) используется строка AddIn;
в качестве второй части (Component) используется строка с ID100 из таблицы строк компоненты. Строка может иметь вид Name1|Name2|...|NameN, и в этом случае будут созданы все объекты с ProgID вида AddIn.NameX. Если такая строка отсутствует, то используется имя файла внешней компоненты без расширения.
Также при использовании функции ПодключитьВнешнююКомпоненту() ProgID COM-объекта компоненты передается в качестве параметра функции и может представляться строкой вида ProgID1| ProgID2|...|ProgIDX.

Я так понимаю, что УстановитьВнешнююКомпоненту  для COM не работают
27 Гений 1С
 
гуру
14.09.15
15:34
(26) да, у меня эта древняя технология.
28 Serginio1
 
14.09.15
15:46
(0) Хотя у людей получилось
v8: Подключение весов в веб клиенте
29 Serginio1
 
14.09.15
15:50
То есть замени на type="com"
30 Гений 1С
 
гуру
14.09.15
15:52
(29) гм, спасибо, попробую.
31 Serginio1
 
14.09.15
16:00
и убери arch="x86_64
32 Serginio1
 
14.09.15
16:04
и для развития попробуй через события и ДобавитьОбработчик
33 Гений 1С
 
гуру
14.09.15
16:09
(32) я так и делаю, через начатьподключение.
34 Stim
 
14.09.15
16:10
все не читал.
фиксен, кто этот несчастный работодатель, на которого ты теперь работаешь?
35 Гений 1С
 
гуру
14.09.15
16:13
(34) в данном случае ANVIZ (из контекста же понятно)
36 Serginio1
 
14.09.15
16:36
(33) Ты не понял. Если бы посмотрел как сделано в 4 то понял бы. Смысл в том, что можно сделать ActiveX с событиями и подключаться к ним через ДобавитьОбработчик
например

msword = Новый COMОбъект("Word.Application");ДобавитьОбработчик msword.DocumentChange, ПриИзмененииДокумента;

На ВБ это элементарно. На .Net еще легче
37 Serginio1
 
14.09.15
16:37
msword = Новый COMОбъект("Word.Application");

ДобавитьОбработчик msword.DocumentChange, ПриИзмененииДокумента;
38 Serginio1
 
14.09.15
16:40
Сообщи как у тебя получилось с type="com"
39 Гений 1С
 
гуру
14.09.15
17:01
(38) сообщу. все равно ковырять придется. Клиент пока использует розницу с Толстым Клиентом, но планирует использовать со временем Тонкого Клиента. Так что вопрос решить придется, пока можно разрабатывать Native и под толстого. Ок. Спасибо за инфу.
2 + 2 = 3.9999999999999999999999999999999...