Имя: Пароль:
1C
1С v8
Очень нужен шаблон внешней компоненты для 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
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

чему тут не работать на сервере? Сервер не может передать пару параметров и получить готовый результат в виде суммы двух параметров?
Ошибка? Это не ошибка, это системная функция.