|
шаблон внешней компоненты C# | ☑ | ||
---|---|---|---|---|
0
Sobir18
05.11.20
✎
10:25
|
делаю простой пример принимает число и возврашает 100+число.
[Guid("8C034F6A-1D3F-4DB8-BC99-B73873D8C297")] [ClassInterface(ClassInterfaceType.AutoDual)] [ComVisible(true)] [ProgId("AddIn.TestCalc")] public class Calculator { public int Sum(int a, int b) { return a + b; } } регистрирую c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe ".\TestCompCalc.dll" /tlb в конфигураторе: ПодключитьВнешнююКомпоненту("AddIn.TestCalc"); ExtComponent = Новый COMОбъект("AddIn.TestCalc"); Сообщить(ExtComponent.FName()); и выходит вот это -2147024894(0x80070002): The system cannot find the file specified. перепробовал разные шаблоны и т.д. может у кого поможет? |
|||
1
УдавВПопугаях
05.11.20
✎
10:27
|
в нэте много примеров
|
|||
2
Sobir18
05.11.20
✎
10:28
|
перепробовал все. уже в гугле страницы закончились
|
|||
3
УдавВПопугаях
05.11.20
✎
10:29
|
ну и регистрировать через регасм, по-моему муторно, на клиенте может не быть фреймворка, я делал через библиотеку и инсталлер
|
|||
4
Sobir18
05.11.20
✎
10:31
|
можно поподробнее. чукча начинающий
|
|||
5
УдавВПопугаях
05.11.20
✎
10:33
|
||||
6
arsik
гуру
05.11.20
✎
10:33
|
Кто то еще делает COM компоненты? Это ж моветон.
|
|||
7
Дык ё
05.11.20
✎
10:33
|
(0) а нафига компонента, если все равно Новый COMОбъект?
|
|||
8
УдавВПопугаях
05.11.20
✎
10:34
|
(6) ну может по-другому не получается
|
|||
9
Sobir18
05.11.20
✎
10:35
|
читал это
http://catalog.mista.ru/public/151246/ и это http://www.vr-online.ru/content/installer-sredstvami-visual-studio-1067 да. делал и так и этак |
|||
10
УдавВПопугаях
05.11.20
✎
10:36
|
да и в большинстве случаев да, по-другому тупо не получается, вот когда 1С добавит к себе возможности работы с сетью, портами, оборудованием, тогда и будет моветон
|
|||
11
Sobir18
05.11.20
✎
10:36
|
(8) мне для оборудовния и нужно
|
|||
12
УдавВПопугаях
05.11.20
✎
10:40
|
в (0) на какой строке ошибка появляется?
|
|||
13
arsik
гуру
05.11.20
✎
10:41
|
(10) Я про другое. Зачем COM? Почему не native?
|
|||
14
УдавВПопугаях
05.11.20
✎
10:42
|
подключить компоненту не нужно
ExtComponent = Новый COMОбъект("AddIn.TestCalc"); Сообщить(ExtComponent.FName()); что то в классе не видно FName(), sum есть |
|||
15
УдавВПопугаях
05.11.20
✎
10:42
|
(13) шарп умеет?
|
|||
16
УдавВПопугаях
05.11.20
✎
10:47
|
(13) можно пример, пруф?
|
|||
17
arsik
гуру
05.11.20
✎
10:56
|
Тебе лучше к @Serginio обратится
|
|||
18
arsik
гуру
05.11.20
✎
10:56
|
||||
19
УдавВПопугаях
05.11.20
✎
11:04
|
я не правильно спросил. есть ли пример создания Native ВК для c#? Изначально на ИТС написано для ++, шарп возможно и сможет, но это целая история, которой надо основательно заниматься. Serginiolа я знаю, не лично, заочно, когда начинаешь искать по теме топика информацию, то полюбому попадаешь на его публикации, он много чего сделал и разработал, но это уже копание вглубь, для понимания сложную, для практического применения не всегда нужную, в большинстве случаев достаточно вызвать какую то фукнцию обращения к оборудованию, получить и обработать результат. а динамическое формирование классов NET среды из 1С - да, интересно, может где то и полезно, но в основном это лишнее
|
|||
20
Sobir18
05.11.20
✎
11:05
|
(19) + согласен
|
|||
21
Sobir18
05.11.20
✎
11:11
|
(14) Готов расцеловать(в хорошем смысле). сколько я угробил нервов до этого.
столько писал и обращался к народу, ты первый кто реально помог и не смотрел с высока. )))) |
|||
22
УдавВПопугаях
05.11.20
✎
11:36
|
(21) бывал я там тоже :))
|
|||
23
УдавВПопугаях
05.11.20
✎
11:39
|
но надо заметить, что на этом ресурсе помогают, сначала поржут, а потом помогают)
|
|||
24
Sobir18
05.11.20
✎
15:26
|
ещё один вопрос. в 1с ВнешнееСобытие будет срабатывать только если ПодключитьВнешнююКомпоненту ?
(14) таким способом все методы работают без каких либо проблем, но ВнешнееСобытие 1с не срабатывает. |
|||
25
oleg_km
05.11.20
✎
15:35
|
(24) Ну что за каша? ВнешняяКомпонента, ВнешнееСобытие - это одна технология, COMОбъект - другая. У COMОбъектов есть свои события, но насколько я понимаю из можно повесить только на форму
|
|||
26
УдавВПопугаях
05.11.20
✎
15:38
|
чтобы работало событие компоненту надо делать по ТехнологииРазработкиВнешнихКомпонент для 1С, кажется так называется, стоит подумать - а надо оно, событие это, может просто кнопку сделать и вызывать что надо и когда надо. и если нужно событие, то почему бы не использовать уже существующую компоненту ScanOpos например или от Ромикса http://www.x-romix.narod.ru/
|
|||
27
Sobir18
05.11.20
✎
15:58
|
(26) технологию соблюдаю как написано тут
https://its.1c.ru/db/metod8dev#content:2691:hdoc:внешние_события |
|||
28
Sobir18
05.11.20
✎
16:02
|
(25) почему каша? извиняюсь если не соблюдаю терминологию
как можно подписаться в 1с на событие COMОбъекта |
|||
29
Sobir18
06.11.20
✎
14:55
|
может кто взглятунь на мой проект. 1с не получает запрос https://github.com/SobirASD/1cCopmonentCs
в C# public void TestEvent() { for (int i = 0; i < 5; i++) { AsyncEvent.ExternalEvent("111", "2222", "3333"); } } /// <summary>Вызов событий 1С</summary> protected IAsyncEvent AsyncEvent; public void Init([MarshalAs(UnmanagedType.IDispatch)] object connection) { Connect1C = connection; StatusLine = (IStatusLine)connection; AsyncEvent = (IAsyncEvent)connection; ErrorLog = (IErrorLog)connection; } 1c при выполнении ExtComponent.TestEvent(); пишет Object reference not set to an instance of an object. |
|||
30
acht
06.11.20
✎
15:09
|
(29) > кто взглятунь на мой
Там вообще что-то на эльфйском: https://a.radikal.ru/a29/2011/8d/4b8070943521.png |
|||
31
Sobir18
06.11.20
✎
15:12
|
(30) видимо шрифт. ничего серьзного)))
|
|||
32
Дык ё
06.11.20
✎
15:15
|
(29) Init не вызывается, если ты создаешь объект как comобъект, а не как объект компоненты
|
|||
33
acht
06.11.20
✎
15:17
|
(32) Поздно. Мальчик уже создал новую тему ВнешнееСобытие (ExternalEvent) компоненты и поскакал дальше.
|
|||
34
Sobir18
06.11.20
✎
15:27
|
(33) мальчик в панике. у него крыша едет 5 день подрять за компом. на улицу выходил раза 2 за водой и едой))))
как можно закрыть тему? (32) а как исправить? |
|||
35
H A D G E H O G s
06.11.20
✎
15:30
|
Для начала - взять нормальный ЯП.
|
|||
36
Sobir18
06.11.20
✎
15:45
|
(35) сам не восторге от 1с. но пока такая работа
|
|||
37
УдавВПопугаях
06.11.20
✎
15:48
|
мне вот интересно, как стыкуется это
>>>> ещё один вопрос. в 1с ВнешнееСобытие будет срабатывать только если ПодключитьВнешнююКомпоненту ? (14) таким способом все методы работают без каких либо проблем, но ВнешнееСобытие 1с не срабатывает. >>>> с тем что ты пример для ++ переделываешь на шарп |
|||
38
acht
06.11.20
✎
15:49
|
(36) А причем тут 1С?
|
|||
39
H A D G E H O G s
06.11.20
✎
15:49
|
(36) Я про C#
|
|||
40
УдавВПопугаях
06.11.20
✎
16:00
|
(29) чему равно AsyncEvent?
|
|||
41
Sobir18
06.11.20
✎
17:18
|
(40) не понял
|
|||
42
ДедМорроз
07.11.20
✎
17:11
|
У Com-объекта можно события получать ограниченно,если они описаны и можно через Attach повесить обработчик,например,в сети есть примеры с Word,но там нет буфера событий,и если 1с занята,то происходит фигня,и чаще всего падение и 1с и того,кто передает события.
По методу внешней компоненты событие помещается в буфер и будет обработано,как 1с сможет. Можно подобным образом себе нажатие клавиши в буфер кидать и на форме ловить. |
|||
43
Serginio1
08.11.20
✎
12:05
|
Хочешь разобраться с ВК событиями итд смотри
Быстрое создание Внешних Компонент на C#. Примеры использования Глобального Контекста, IAsyncEvent, IExtWndsSupport, WinForms и WPF http://catalog.mista.ru/1c/articles/457898/ Исходники качай отсюда https://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |