|
Очень нужен шаблон внешней компоненты для 1С 8 (не 7.7) на Visual Basic-е | ☑ | ||
---|---|---|---|---|
0
Cyrix
04.05.19
✎
22:43
|
Здравствуйте!
Кто знает, как написать внешнюю компоненту для 1С 8 не на Visual C++ а на Visual Basic 6 ? На диске ИТС какой-то бред для 8.0, который не работает. Мне необходимо ПодключитьВнешнююКомпоненту("TestVK.dll","Test",ТипВнешнейКомпоненты.Native) затем ВК = Новый ("AddIn.TestVK"); ВК.ShowAbout() - и тут должно показаться окно VB6 (желательно модально) с одной единственной кнопкой "ОК", которая закрывает это окно и возвращает управление в 1С Вот кааак это сделать?? ПодключитьВнешнююКомпоненту("TestVK.dll","Test",ТипВнешнейКомпоненты.Native) подключается нормально, а вот дальше при ВК = Новый ("AddIn.TestVK") - ошибка! Тип не определён (AddIn.TestVK) Я пытался подключить как Компонент = Новый COMОбъект("test.Class1"); На VB6 писал в Class1: Public Sub test() MsgBox ("ok") End Sub вроде бы как подключился Компонент = Новый COMОбъект("test.Class1") без ошибок, но при попытке выполнить в 1С Компонент.test(); получил Н-И-Ч-Е-Г-О! Ни сообщения "ок", ни ошибки, вообще ничего! просто Компонент.test() молча выполнилось и всё! я готов даже рассмотреть вариант на Visual Basic .NET, если есть такое решение помогите разобраться, я совсем запутался! |
|||
1
Asmody
04.05.19
✎
23:09
|
||||
2
Garykom
гуру
04.05.19
✎
23:14
|
(1) Он хочет на VB6 из "Microsoft Visual Studio 6.0", не VB.NET
|
|||
3
Garykom
гуру
04.05.19
✎
23:17
|
(0) Изучать http://www.codenet.ru/progr/vbasic/Create-DLL/
NativeAPI ВК на VB6 написать не выйдет, только COM |
|||
4
Cyrix
04.05.19
✎
23:23
|
А COM позволит мне открыть окно Visual Basic-а?
|
|||
5
Garykom
гуру
04.05.19
✎
23:23
|
ТипВнешнейКомпоненты.COM используй если ВК на VB6.
И да ПодключитьВнешнююКомпоненту("ОбщийМакет.МойМакет", "МойМакетAddIn", ТипВнешнейКомпоненты.Native); МояКомпонента = Новый("AddIn.МойМакетAddIn.AddInNativeExtension"); Текст МойМакетAddIn - произвольный. Единственное условие - он должен совпадать в приведенных выше вызовах. Строка AddInNativeExtension - уже указана в шаблоне компоненты (RegisterExtensionAs), ее не надо менять. Переменную МояКомпонента рекомендуется описать в модуле управляемого и обычного приложения как Перем МояКомпонента Экспорт. https://its.1c.ru/db/metod8dev/content/5887/hdoc В твоем случае было бы ПодключитьВнешнююКомпоненту("TestVK.dll","Test",ТипВнешнейКомпоненты.Native); ВК = Новый("AddIn.Test.TestVK") |
|||
6
Garykom
гуру
04.05.19
✎
23:24
|
(4) Что значит "открыть окно Visual Basic-а" ?
|
|||
7
Garykom
гуру
04.05.19
✎
23:27
|
(5) Они изобрели переименование ВК при подключении, на случай если разные создатели ВК зафигачили одно "RegisterExtensionAs", чтобы можно было такие одинаковые одновременно юзать.
|
|||
8
Cyrix
04.05.19
✎
23:34
|
(6) - в Visual Basic я создаю форму form1 с кнопкой "ок" - могу я вызвать эту форму из 1С?
|
|||
9
Garykom
гуру
04.05.19
✎
23:35
|
(8) Да, но будет куча глюков не умеючи.
И учти в новых конфах 1С отказ от модальности )) |
|||
10
Cyrix
04.05.19
✎
23:45
|
Беда... делаю по методике http://www.codenet.ru/progr/vbasic/Create-DLL/
не подключается ни как COM ни как Native :о( |
|||
11
ViSo76
04.05.19
✎
23:48
|
Я то думал VB6 успешно подох, но нет... Не забудь что vb6 без библиотек не работает, так как он компилируется в p-код, а не в машинные инструкции и если ты захочешь запустить на другом компьютере, то библиотеки потребуются...
|
|||
12
ViSo76
04.05.19
✎
23:50
|
(10) как ком нужно делать комсервер ( exe или dll ). А так же regsvr32 регистрировать
|
|||
13
Cyrix
04.05.19
✎
23:52
|
(12) сделал, зарегистрировал, проверил в ссылках - всё есть
|
|||
14
ViSo76
04.05.19
✎
23:53
|
(13) Эксел видит? Попробуй из vba вызвать
|
|||
15
Garykom
гуру
04.05.19
✎
23:56
|
(10) А тебе ее и не надо подключать как ВК.
Просто regsvr32 и ВК = Новый("AddIn.TestVK"), причем соблюдая разрядность 1С надо x86 (32 битная). |
|||
16
Garykom
гуру
04.05.19
✎
23:57
|
(15)+ Если хочешь COM ВК по стандарту 1С, то придется делать не просто ActiveX (COM-object) а еще кучу всего внутря
https://its.1c.ru/db/metod8dev#content:3221:hdoc:_com_comp |
|||
17
ViSo76
05.05.19
✎
00:01
|
(15) да там можно через ком вызывать, а не как внешнюю компоненту.
(0) зачем тебе именно внешнюю компоненту нужно? |
|||
18
Cyrix
05.05.19
✎
00:05
|
(17) внешнюю не нужно, можно и COM но как открыть форму "Form1" созданную в ActiveX DLL на Visual Basic 6? Неужели придётся делать этот кошмар https://its.1c.ru/db/metod8dev#content:3221:hdoc:_com_comp ?
|
|||
19
ViSo76
05.05.19
✎
00:06
|
(18) в начпле в екселе убедись что работает, а потом через тупо новый СОМОбьект попробуешь в 1с
|
|||
20
ViSo76
05.05.19
✎
00:08
|
Подключи через референс твой ком. Если в списке нет, то беда... Если есть подключи и вызови метод. Если будет работать, тогда в 1с делай
|
|||
21
Cyrix
05.05.19
✎
00:13
|
(19) (20) - работает
|
|||
22
ViSo76
05.05.19
✎
00:15
|
(21) в 1с как?
|
|||
23
Cyrix
05.05.19
✎
00:25
|
(22) в 1С почему-то подвисает этот COMОбъект - запмрает мою DLL-ку и я не могу её перезаписать, пока не выключишь 1С и то только минуты через 2-3 отпускает! Не пойму в чём дело?
|
|||
24
Cyrix
05.05.19
✎
00:31
|
при вызове модальной формы - 1С виснет насмерть! :о( хотя vba работает
|
|||
25
Garykom
гуру
05.05.19
✎
00:32
|
(24) Залость то какая )) Какая хоть конфа то?
|
|||
26
Garykom
гуру
05.05.19
✎
00:35
|
Создание окон в среде "1С:Предприятия 8"
Внешние компоненты могут создавать свои окна для отображения различной информации, используя интерфейс IExtWndsSupport. Компонента может создавать два типа окон: модальные диалоги, немодальные диалоги. Модальные диалоги Модальные диалоги создаются самой компонентой, но при их создании необходимо в качестве родительского окна указать окно, возвращаемое методом GetAppMainFrame для того, чтобы диалог не воспринимался операционной системой как отдельная задача с кнопкой на полосе задач. Работа системы "1С:Предприятие" приостанавливается до завершения работы с диалогом. Немодальные диалоги Немодальные диалоги также создаются самой компонентой, но при их создании необходимо в качестве родительского окна указать окно, возвращаемое методом GetAppMDIFrame для того, чтобы диалог не воспринимался операционной системой как отдельная задача с кнопкой на полосе задач. Диалог не останавливает работу 1С:Предприятия и по сути аналогичен формам 1С:Предприятия. Однако следует учесть, что созданный диалог не входит в список открытых окон и не появляется на панели окон, поэтому использование таких диалогов не рекомендуется (вместо них можно использовать формы самого 1С:Предприятия). В "1С:Предприятии 8" возможность создания окон сохранена в сокращенном виде для совместимости с существующими компонентами. Для отображения нестандартной информации в окнах "1С:Предприятия 8" рекомендуется использовать формы с элементами управления ActiveX или же Активные документы. Ниже приведены описания методов интерфейса IExtWndsSupport. Возможность работы с окнами отсутствует в Веб-клиенте. |
|||
27
Cyrix
05.05.19
✎
00:38
|
(25) БП 3.0, окно Form1 появилось в диспетчере задач и если его снять, то 1С оживает, но почему этот Form1 невидим?
(26) а вот здесь, как говориться - приплыли |
|||
28
Garykom
гуру
05.05.19
✎
00:47
|
(27) БП3 давным давно УФ и отказ от модальности.
Делай обычное окно, не модальное. |
|||
29
Cyrix
05.05.19
✎
00:52
|
(28) если ставлю не модально, то:
Ошибка инициализации модуля: ВнешняяОбработка.ДвижениеПоСкладамВнешняя.МодульОбъекта по причине: {ВнешняяОбработка.ДвижениеПоСкладамВнешняя.МодульОбъекта(23)}: Ошибка при вызове метода контекста (ShowAbout) Компонент.ShowAbout(); по причине: Произошла исключительная ситуация (TestDLL): Automation error |
|||
30
Cyrix
05.05.19
✎
00:57
|
Non-modal forms cannot be displayed in this host application from an ActiveX DLL, ActiveX Control, or Property Page.
|
|||
31
Garykom
гуру
05.05.19
✎
00:58
|
(29) Ну да все правильно, падает и возвращает назад в 1С ошибку что упало.
|
|||
32
Cyrix
05.05.19
✎
00:59
|
(30) !!!
|
|||
34
H A D G E H O G s
05.05.19
✎
01:01
|
MsgBox("test", 4096);
|
|||
35
Garykom
гуру
05.05.19
✎
01:37
|
Короче выкинь эту каку VB6 и ставь уже Lazarus или Visual Studio 2019
|
|||
36
Cyrix
05.05.19
✎
01:58
|
у меня Visual Studio 2010, так не могу нигде найти пример внешней компоненты 1С8 на Visual Basic.NET
|
|||
37
Cyrix
05.05.19
✎
02:09
|
https://its.1c.ru/db/files/1CITS/EXE/VNCOMPS/VNCOMPS.zip - не собирается, ошибки доступа к ключу реестра... ерунда какая-то
где взять РАБООООЧИЙ пример для VB.NET? |
|||
38
H A D G E H O G s
05.05.19
✎
02:13
|
(37) Не пишут ВК на vb.net, юзайте Дельфи
|
|||
39
Garykom
гуру
05.05.19
✎
02:22
|
(37) Книга знаний: Написание внешних компонент для 1С на VB.NET и C# дали в самом начале в (1)
Прочитать все и сделать regasm.exe ИмяКомпоненты.dll /codebase Компоненты только COM понятно а не Native будут. |
|||
40
Garykom
гуру
05.05.19
✎
02:22
|
И да регать ВК (в т.ч. первый запуск из 1С) от имени админа ))
|
|||
41
Cyrix
05.05.19
✎
08:36
|
(39) сейчас специально снесу VS2010 и поставлю VS2005 ради примера, который в ссылке
|
|||
42
Garykom
гуру
05.05.19
✎
08:44
|
(41) Пример который в ссылке прекрасно открывается и компилируется на любой версии VS после 2005.
https://i.paste.pics/d99639bbbacaf94b49a007f33d0a42f8.png Вот это https://i.paste.pics/e33d2339f2a871057712316f4cfc5612.png лечится запуском VS от имени админа. Или убрать автоматическую регистрацию через regasm, снять галочку "Регистрация для COM-взаимодействия" https://i.paste.pics/81f289d4c9d9a3a13e7dfab9c7e481fa.png И будет "сборка успешно" на проекте VS2005 открытом с конвертацией в VS2017 |
|||
43
Garykom
гуру
05.05.19
✎
08:44
|
Имхается кому то яйки мешают танцевать ))
|
|||
44
Cyrix
05.05.19
✎
23:43
|
(43) зато они есть
|
|||
45
Cyrix
08.05.19
✎
10:56
|
VS запущен от администратора и при сборке COM Interop registration failed. Ошибка при обращении к реестру OLE.
|
|||
46
Garykom
гуру
08.05.19
✎
11:29
|
(45) Значит запрещен доступ к реестру даже для "администратора"
|
|||
47
Cyrix
08.05.19
✎
11:58
|
(46) как проверить/разрешить? права пользователей?
|
|||
48
Cyrix
08.05.19
✎
12:08
|
Дал все права ко всем веткам реестра, администратору, пользователю, административной группе... и всё равно ошибка доступа к реестру
|
|||
49
Garykom
гуру
08.05.19
✎
12:11
|
Сними галку чтобы не регал сборку и попробуй зарегать ее вручную через regasm, что напишет
regasm.exe ИмяКомпоненты.dll /codebase |
|||
50
Garykom
гуру
08.05.19
✎
12:12
|
Могут быть разные глюки типа не тот regasm или еще что с версиями .Net
|
|||
51
Garykom
гуру
08.05.19
✎
12:13
|
В крайнем случае новый проект пусто по http://catalog.mista.ru/public/151246/ и туда нужный код добавить ручками.
Бывают ситуации когда проще винду переустановить или на другом компе чем разбираться почему глючит. |
|||
52
Cyrix
08.05.19
✎
12:27
|
Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены. C:\V7ExtTemlate\bin>regasm v7extsample.dll /codebase Microsoft .NET Framework Assembly Registration Utility 4.6.1055.0 для Microsoft .NET Framework 4.6.1055.0 c Корпорация Майкрософт (Microsoft Corporation). Все права защищены. RegAsm : warning RA0000 : Регистрация неподписанной сборки с использованием пара метра /codebase может вызвать конфликт данной сборки с другими приложениями, кот орые могут быть установлены на том же компьютере. Параметр /codebase предназначе н только для подписанных сборок. Присвойте сборке строгое имя и повторите регист рацию. Типы зарегистрированы успешно C:\V7ExtTemlate\bin> |
|||
53
Garykom
гуру
08.05.19
✎
12:32
|
(52) Нет слов. Вы про разницу между версиями .Net когда нибудь слышали?
|
|||
54
Garykom
гуру
08.05.19
✎
12:33
|
(53)+ Это примерно как обработку 1С77 открывать в 1С8 и удивляться ух ты оно открылось но что то глючит ))
|
|||
55
Cyrix
08.05.19
✎
12:36
|
компонента V7ExtTemlate из примера только для 7.7?
|
|||
56
Garykom
гуру
08.05.19
✎
12:41
|
(55) В 2005 году скорее всего под .NET Framework 2.0 пример написан.
Более новые VS позволяют работать и со старыми версиями и там практически полная совместимость по возрастающей но не всегда. Использовать сборку скомпилированную под старую версию .Net (при условии установки нужной CLR) можно и на 1С 7.7 и на 1С8 и на чем то ином совсем. |
|||
57
Cyrix
08.05.19
✎
15:31
|
у кого есть архив HowToComObjectFor1C.rar из статьи http://catalog.mista.ru/public/151246/ ?
|
|||
58
Cyrix
09.05.19
✎
11:27
|
видимо ни у кого :о(
|
|||
59
Cyrix
09.05.19
✎
12:28
|
Ошибка 1 Cannot register type library "C:\V7ExtTemlate\bin\V7ExtSample.tlb". Ошибка при обращении к реестру OLE. (Исключение из HRESULT: 0x8002801C (TYPE_E_REGISTRYACCESS)) V7ExtSample
Запущено от администратора, которому можно ВСЁ |
|||
60
Cyrix
09.05.19
✎
12:34
|
вопрос (59) снят - распрекрасный брандмауэр windows
|
|||
61
Cyrix
10.05.19
✎
01:25
|
Компоненту подключил через COMОбъект, реализовал интерфейсы IInitDone, ILanguageExtender
а вот как сделать так, чтобы модальное окно не зависало - не могу понять. Видимо как то ещё нужно IExtWndsSupport использовать, но как - тоже не пойму |
|||
62
Cyrix
10.05.19
✎
09:15
|
Не хочет больше никто со мной общаться :о(
|
|||
63
DJ Anthon
10.05.19
✎
10:37
|
боюсь, что в этой области не так много специалистов
|
|||
64
Cyrix
10.05.19
✎
11:00
|
Может кто нибудь знает чем и как заменяется метод CreateAddInWindow ?
в 7.7 он работает на ура и всё создаёт, но вот в 8.3 совершенно CreateAddInWindow игнорируется |
|||
65
Cyrix
10.05.19
✎
13:58
|
Написал ВК и окно появилось! Ура! Но только в 1С 8.0 и 32-х разрядной
делаю тоже самое на 8.3 x64 и получаю ошибку: Тип не определен (AddIn.test.uraaa) подключаю так: ПодключитьВнешнююКомпоненту("AddIn.uraaa","test",ТипВнешнейКомпоненты.Native); ВК = Новый ("AddIn.test.uraaa"); в чём может быть дело? В разрядности 1С? а что - библиотеки ВК для 32-х разрядных 1С-ок не подключаются к 64-х разрядным 1С-кам? |
|||
66
Garykom
гуру
10.05.19
✎
14:05
|
Да не подключаются, пиши x86_64 ВК для 1С 64
|
|||
67
Garykom
гуру
10.05.19
✎
14:11
|
(66)+ Ну или настраивай в винде https://techtalk.gfi.com/32bit-object-64bit-environment/
|
|||
68
MM
10.05.19
✎
14:15
|
(64) Создание окон в среде 1С:Предприятия 8
В 1С:Предприятии 8 эта возможность сохранена в сокращенном виде для совместимости с существующими компонентами. Для отображения нестандартной информации в окнах 1С:Предприятия 8 рекомендуется использовать формы с элементами управления ActiveX или же Активные документы. Ниже приведены описания методов интерфейса IExtWndsSupport. https://its.1c.ru/db/metod8dev/content/1902/hdoc/ В новой версии документации старше (1С 8.0) по ВК CreateAddInWindow, вообще, не упоминается. (65) DLL х32 никогда не загружаются в процессы x64, и наоборот. (66) Преимущество СОМ объектов написанных под .NET состоит в том, что их можно зарегистрировать и как х32, и как х64 объекты. |
|||
69
Garykom
гуру
10.05.19
✎
14:17
|
(68) >Преимущество СОМ объектов написанных под .NET состоит в том, что их можно зарегистрировать и как х32, и как х64 объекты.
Я уже нихрена не понимаю что и на чем ТС ваяет, может уже на дельфи перешел из VB6 )) |
|||
70
Cyrix
10.05.19
✎
15:24
|
Ребят, мне скоро уже дурку можно будет вызывать с санитарами...
Чем конструктивно отличается этот ВК = Новый COMОбъект("AddIn.testDLL") от ВК = Новый (AddIn.test.testDLL) ? У этого COM-объекта нет интерфейсов IInitDone и ILanguageExtender или что ? Или они там тоже есть, но по другому реализованы? Как мне понять какая у меня получилась DLL на VB6 если я реализовал там эти IInitDone и ILanguageExtender и не только - COM-овская или Native ? Как COM она не регистрируется - в службах компонентов при попытке зарегистрировать пишет что нет ни одного метода и никаких интерфейсов. уже нервный тик... глаз дёргается :о( |
|||
71
Garykom
гуру
10.05.19
✎
15:29
|
(70) Когда ты вызываешь "AddIn.testDLL" то обращаешься в COM объекту в системе windows.
Когда вызываешь "AddIn.test.testDLL" то предварительно переобозвал (алиас по умному) ВК в ПодключитьВнешнююКомпоненту и теперь можешь создавать(обращаться) объекты через test |
|||
72
Garykom
гуру
10.05.19
✎
15:31
|
см (5) уже писал же
|
|||
73
Cyrix
10.05.19
✎
15:33
|
судя по (5) у меня никакой не Native
|
|||
74
Garykom
гуру
10.05.19
✎
15:39
|
(73) Похрен http://catalog.mista.ru/public/317865/
|
|||
75
Cyrix
10.05.19
✎
16:22
|
ВК = Новый COMОбъект ("AddIn.testDLL");
Ошибка при вызове конструктора (COMОбъект): -2147221005(0x800401F3): Недопустимая строка с указанием класса |
|||
76
Garykom
гуру
10.05.19
✎
16:24
|
(75) А в системе то зарегал свою "AddIn.testDLL" ? regsvr32 или regasm смотря что у тебя
|
|||
77
Garykom
гуру
10.05.19
✎
16:25
|
(76)+ Причем учитывая разрядность системы и ВК
|
|||
78
Cyrix
10.05.19
✎
16:29
|
зарегал regsvr32.exe учитывая разрядность
|
|||
79
Cyrix
10.05.19
✎
16:30
|
что такое Новый COMОбъект("V83.COMConnector.1") ???
|
|||
80
Cyrix
10.05.19
✎
16:41
|
это соединитель COM-компонеты с 1С, но какая компонента соединяется то? V83.COMConnector ? а кто она такая эта V83.COMConnector? Мне нужна моя - AddIn.testDLL !
|
|||
81
Cyrix
10.05.19
✎
16:54
|
||||
82
Cyrix
10.05.19
✎
16:55
|
||||
83
Cyrix
10.05.19
✎
16:55
|
долбаный радиКАЛ!!!!
https://a.radikal.ru/a08/1905/74/81d2ae576643.jpg |
|||
84
Cyrix
10.05.19
✎
16:56
|
Почему в нижнем поле пусто???
|
|||
85
Cyrix
11.05.19
✎
03:25
|
Потому, что основной код нужно писать в Class Modules, а не где попало
|
|||
86
Cyrix
11.05.19
✎
10:16
|
COMConnector не видит методов объекта, хотя они там есть :о(
|
|||
87
Cyrix
11.05.19
✎
10:18
|
COMConnector вообще ничего не видит! Зачем он вообще нужен? Для связи из 1С в идентичную 1С?
|
|||
88
Garykom
гуру
11.05.19
✎
10:24
|
Ну можно и в другую 1С, если правильную коннектору (нужной версии) или олю применять.
|
|||
89
Cyrix
11.05.19
✎
19:41
|
Олю я не люблю.
Добился я таки от Visual Basic 6.0 полноценной внешней компоненты, 1С её приняла и полюбила. Могу теперь выводить формы VB6, правда только модальные, ну и ладно! Меня это вполне устраивает! Затык был в том, что я пытался загрузить 32-х разрядную DLL на x64 1C. Как только установил x86 1C-ку - сразу же всё зарегистрировалось, все классы и методы увиделись и ничего не подвисает. Теперь буду разбираться дальше. Мне надо передавать в 1С из VB6 готовый результат запроса по справочнику "Номенклатура", но как это сделать пока не знаю. |
|||
90
ViSo76
12.05.19
✎
07:18
|
(89) Может из 1с в VB6?
|
|||
91
Cyrix
12.05.19
✎
09:14
|
из 1С в мою компоненту надо передать параметры запроса, а в компоненте надо опять обратиться в 1С, тайно получить результат запроса и передать его назад в 1С
|
|||
92
Cyrix
12.05.19
✎
11:57
|
Как работает метод ILanguageExtender_CallAsFunc ?
почему он ничего не возвращает в 1С? |
|||
93
Cyrix
13.05.19
✎
12:06
|
Возвращает, только в виде текста
|
|||
94
Cyrix
15.05.19
✎
11:34
|
Все, кто думает, что написать внешнюю компоненту для 1С (32 разряда) на VB6 невозможно - знайте! Вы ошибаетесь!!
|
|||
95
H A D G E H O G s
15.05.19
✎
11:43
|
(94) Ты - молоток!
|
|||
96
Garykom
гуру
15.05.19
✎
11:48
|
(94) А теперь попробуй ее на Windows 10 запустить на платформе 1С x86_64 ибо в x86 уже памяти не хватает обычно.
|
|||
97
Serginio1
23.05.19
✎
14:09
|
||||
98
Cyrix
27.05.19
✎
17:22
|
(96) Бог с этими 64-х битами... как запустить ВК на серверной части 1С! Запускается только на клиенте! Вот это беда, так беда!
|
|||
99
H A D G E H O G s
27.05.19
✎
17:24
|
(98) Нормально запускается.
|
|||
100
Cyrix
27.05.19
✎
17:26
|
(99) пишет, что метод не найден, а &НаКлиенте всё работает
|
|||
101
H A D G E H O G s
27.05.19
✎
17:27
|
скриншот будет?
|
|||
102
Garykom
гуру
27.05.19
✎
17:43
|
(100) На сервере:
1. может быть x64 хотя на клиенте x32 2. а нету там форм |
|||
103
Cyrix
27.05.19
✎
17:44
|
вот так работает
&НаКлиенте Процедура Команда1(Команда) // Команда1НаСервере(); Попытка ПодключитьВнешнююКомпоненту("c:\addin.dll","test",ТипВнешнейКомпоненты.COM); ВК = Новый ("AddIn.test.vk"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; сообщить(ВК.Sum(10,13)); КонецПроцедуры А вот так не работает &НаСервере Процедура ПриОткрытииНаСервере() Попытка ПодключитьВнешнююКомпоненту("c:\addin.dll","test",ТипВнешнейКомпоненты.COM); ВК = Новый ("AddIn.test.vk"); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; сообщить(ВК.Sum(10,13)); КонецПроцедуры Пишет, что мол метод Sum не найден |
|||
104
H A D G E H O G s
27.05.19
✎
17:49
|
(103) не может быть старая версия dll-ки? База - файловая или клиент - серверная?
|
|||
105
Garykom
гуру
27.05.19
✎
17:55
|
(104) Все проще, кто то СП не купил:
"Описание варианта метода: Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows. Эти компоненты совместимы с компонентами 1С:Предприятия 7.7. Внимание! Вариант метода не работает на сервере и во внешнем соединении." |
|||
106
Garykom
гуру
27.05.19
✎
17:57
|
(105)+ Или я путаю вариант?
|
|||
107
H A D G E H O G s
27.05.19
✎
18:01
|
(106) Да, Егор.
|
|||
108
Сияющий в темноте
27.05.19
✎
18:45
|
На сервере можно обычные Com-обьекты гонять,и можно даже открыть окно,но его никто не увидит,так как окна из служб открываются в неотображаемой сессии.
внешняя компонента нужна,когда хочется использовать ее методы типа ВнешнееСобытие и т.п. в остальных случаях Com-обьект справляется без проблем,и из него прекрасно можно открыть модальное окно,просто,1с не узнает,что происходит,пока из вызова функции ком-обьекта поток не вернется в 1с. |
|||
109
Garykom
гуру
27.05.19
✎
19:51
|
(107) Да, в отпуск пора
|
|||
110
Cyrix
27.05.19
✎
19:53
|
(105) это надо понимать как - на серверной части работать не будет? Только на клиенте?
(108) а это надо понимать, как - (105) - всё фигня и работать всё-таки будет на сервере?? |
|||
111
Cyrix
27.05.19
✎
19:56
|
Sub ILanguageExtender_CallAsFunc(ByVal iMethodNum As Long, retVal As Variant, ParamVal() As Variant)
Select Case iMethodNum Case methSum ' Form1.Show vbModal retVal = Str(ParamVal(0) + ParamVal(1)) End Select End Sub чему тут не работать на сервере? Сервер не может передать пару параметров и получить готовый результат в виде суммы двух параметров? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |