Имя: Пароль:
IT
 
Собираюсь писать ВК для 1С на C#
Ø (длинная ветка 21.12.2020 20:41)
,
0 Гений 1С
 
гуру
11.12.20
19:44
Пример буду брать из "Технологии внешних ВК" на ИТС.
Вопрос такой - где брать платформу C# (IDE)?

По сути, мне надо обертку над DLL писать.
Раньше ее писал на VB6, но пора переходить на C#, у производителя оборудования пример на C#, кроме того нужна версия компоненты на 32 и 64 разряда.
1 Гений 1С
 
гуру
11.12.20
19:44
Да, и если у меня используется тип Variant и массив Variant я могу использовать Native или только COM?
2 Garykom
 
гуру
11.12.20
20:30
геня ты такой геня
3 Garykom
 
гуру
11.12.20
20:32
на C#/.Net для 1С можно (легко и есть примеры) только COM ВК наваять
Native API ВК для 1С хрен на C# напишешь
4 Престарелый Заяц
 
11.12.20
20:42
Тот случай, когда по названию топика узнал афтора.
5 Гений 1С
 
гуру
11.12.20
20:44
(3) Для взять C#?
6 Гений 1С
 
гуру
11.12.20
20:44
Где т.е.
7 Малыш Джон
 
11.12.20
20:48
на торрентах же

P.S. Ограничения на советы по незаконному скачиванию здесь же только на 1С распростараняются? :)
8 Garykom
 
гуру
11.12.20
20:55
(5) Чаго взять? VS она Community с инета качается, примеры C# ВК 1С тоже
9 Гений 1С
 
гуру
11.12.20
20:55
(8) что такое Community? примеры я возьму с "Технологии ВК"
10 Garykom
 
гуру
11.12.20
20:55
(9) ыыы
11 ДНН
 
11.12.20
20:56
12 Garykom
 
гуру
11.12.20
20:56
13 Garykom
 
гуру
11.12.20
20:58
(11) имхается после этой ссылки ТС пропадет на месяц минимум ))
14 Гений 1С
 
гуру
11.12.20
21:11
(11) там ссылка на VS 2019, а 2020 нету?
15 TormozIT
 
гуру
11.12.20
21:58
Основной смысл в том, чтобы у каждого класса прописать атрибуты
    [ComVisible(true)]
    [ClassInterface(ClassInterfaceType.AutoDual)]
Тогда для него будет создана COM обертка.
Вот моя ВК по этой технологии
http://devtool1c.ucoz.ru/load/prochie/gold_parser_engine_net_iskhodniki/2-1-0-11
16 Serginio1
 
11.12.20
22:01
Тут вопрос зачем тебе ВК?
1С поддерживает события, можно использовать их.
.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия
http://catalog.mista.ru/1c/articles/417830/

В большинстве достаточно Ком объекта.
Если тебе нужно вызвать методы из существующей DLL опять же не надо ничего городить уже есть
Использование сборок .NET в 1С 7. и 8.x. Создание внешних Компонент.
http://catalog.mista.ru/public/238584/

и
Использование классов .Net в 1С для новичков
http://catalog.mista.ru/1c/articles/448668/

Если тебе нужен контекст 1С из .Net то
Быстрое создание Внешних Компонент на C#. Примеры использования Глобального Контекста, IAsyncEvent, IExtWndsSupport, WinForms и WPF
http://catalog.mista.ru/1c/articles/457898/

Ну а если хочешь Native ВК
Net Core. Динамическая компиляция класса обертки для получения событий .Net объекта в 1С
http://catalog.mista.ru/1c/articles/548701/

Ну и ссылки
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

Последняя студия 2019
17 Ненавижу 1С
 
гуру
11.12.20
22:11
До слёз. Помнится ты его обсуждал. Как выяснилось - даже в глаза не видел.

Ждём интересных историй про c#
18 DrZombi
 
гуру
11.12.20
22:39
(0) Скачайте Visual Studio 2019 для Windows "Community"
https://visualstudio.microsoft.com/ru/thank-you-downloading-visual-studio/?sku=Community&rel=16

Потом регистрируешься и оно стает на халяву полноценной и на всегда :)

Там свой Си шарп составе :)
19 DrZombi
 
гуру
11.12.20
22:39
Не заморачивайся, версия 2019 года поддерживает все что писано на 2015 или ранее... в общем типо не ищи старье :)
20 DrZombi
 
гуру
11.12.20
22:40
+ и так же если выйдет 2021 версия, все тоже, берем ее... :)
21 Serginio1
 
11.12.20
22:46
Только нужно учесть, что  последняя 2019 поддерживает .Net 5, .Net Standard 2.1
Моя скомпилирована еще под .Net Framework 4.6.1  и не поддерживает сборки выше.
22 Serginio1
 
11.12.20
22:46
Просто перекомпилируй под нужную версию
23 Кирпич
 
11.12.20
22:49
(0) Заказывай студенту сразу на С++ и не мути форум.
24 Кирпич
 
11.12.20
22:54
+(23) Можно на паскале за пару часов сделать, но это не наш путь. Будем прям на мисте месяц херачить на сишарпе и потом распространять вместе с .NET. Пара сотен мегабайт в наше время это не много.
25 DrZombi
 
гуру
11.12.20
22:57
(24) Поддерживаю. После не забываем делиться дистрибутивами, от меня спасибо :)
26 Serginio1
 
11.12.20
23:03
(24) Ты уже отстал от жизни. Посмотри на докеры под линуксы с операционкой, средой .Net.
Да и хреначить то ничего не надо. Ему нужно готовые Dll использовать в 1С. А "NetObjectToIDispatch45" как раз для этого и сделано.
Ну еще можно свою Dll прикрутить для упрощения использования в 1С.
На паскале то их нет!
Так, что как говорится пилите Шура, пилите!!!
27 Кирпич
 
11.12.20
23:06
(26) докеры то тут при чем
28 Garykom
 
гуру
11.12.20
23:07
(27) тем более докер усё
29 Кирпич
 
11.12.20
23:07
(26) А чо я отстал. Я наоборот в тренде. Я ж предлагаю на .NET пилить
30 Кирпич
 
11.12.20
23:08
(28) а чо с ним?
31 Кирпич
 
11.12.20
23:08
вроде работает
32 Garykom
 
гуру
11.12.20
23:09
(31) так и ole еще работает, что не отменяет усё
33 Кирпич
 
11.12.20
23:11
(32) чота ты загадками говоришь какими то
34 Garykom
 
гуру
11.12.20
23:27
35 Serginio1
 
11.12.20
23:34
(27) Я к тому, что .Net Core значительно экономичнее по ресурсам.
Для примера можно посмотреть на Blazor который грузит в районе 2 МБ. Правда код там Il код интерпретируется, но сам факт!
(34) Ну это просто развитие контейнеров. Суть то докера упрощение развертывания приложения. Во, что это будет упаковываться не суть
36 Кирпич
 
11.12.20
23:39
(35) .NET великолепен! Но он для ВК нихера не подходит. Это факт.
37 Garykom
 
гуру
11.12.20
23:40
(35) сама идея контейнеров выросла из дикого легаси софта, которое никто не собирается переписывать и к которому начали допиливать настроечно-управляющие интерфейсы
надо софт блин стандартизировать а не придумывать обертки в которые его засунуть
38 Serginio1
 
11.12.20
23:41
(36) Почему? В чем факт. Сколько пользуюсь одни только премущества?
39 Serginio1
 
11.12.20
23:42
(37) Угу еще и сделать оду Линукс и виртуализацию.
40 Garykom
 
гуру
11.12.20
23:44
(39) Дык не линуксом единым
Вот глянуть например активити в андроиде, которые по дефолту имеют внешний управлящий их жизненным циклом интерфейс
И по дефолту в песочницах работают, кроме системных

Чем не замена докера?
41 Serginio1
 
11.12.20
23:47
(40) Тем, что не используют андроид для тех же сайтов итд.
А линукс он очень легковесный и его можно собрать под определенные задачи.
42 Serginio1
 
11.12.20
23:48
Сейчас MS как раз большую часть зарабатывают на облаках
43 Garykom
 
гуру
11.12.20
23:48
(41) дык просто нужен специальный "андроид для серверов/сайтов" и все
и софт под него, нужных версий-совместимости, который изначально пишется с поддержкой внешнего управления и песочнизации
44 Serginio1
 
11.12.20
23:50
(43) Вот когда его сделают, может и потянутся люди. А пока там даже проблема с явой.
Ну и свою фуксию на дарте пилят
45 Garykom
 
гуру
11.12.20
23:52
(44) Судя по тому что гугл начал свою хромос сливать/интегрировать с андроид/гуглеплей и линуксом - фуксия пока в пролете
46 Garykom
 
гуру
11.12.20
23:54
(45) Последние тренды это слияние декстопа с мобильными, вопрос что будет с серверами?
Подозреваю тоже сольются и будет "arm сервер на андроид 12" ))
47 Serginio1
 
11.12.20
23:56
(0) Да через COM по барабану какая ось 32 и 64 разряда. если сборка скомпилирована под Any CPU.
(45) Для примера .Net в линуксе работает без посредников или через легковесные PInvoke, а Xamarin приходится делать более сложные мосты к JVM
48 Конструктор1С
 
12.12.20
06:14
(0) если бы ты хотя бы раз писал на шарпе, то не задавал бы таких глупых вопросов
49 DrZombi
 
гуру
12.12.20
11:06
(48) Вот начнет, и у него будут другие вопросы :)
50 Гений 1С
 
гуру
12.12.20
12:24
(48) не писал, потому и спрашиваю. (49) именно
51 Гений 1С
 
гуру
12.12.20
12:25
(47) а как указать сборку под Эни Цпу, и будет ли это поддержано в 1С
52 Serginio1
 
12.12.20
13:43
53 Serginio1
 
12.12.20
13:50
(51) 1C ничего не знает о Com просто система видит из какого процесса идет вызов и запускает нужную среду которая уже и джитит (компилирует) нужную сборку.
Хотя есть нюансы для выполнения кода в отдельно Dll суррогате. Но это другая песня
54 Гений 1С
 
гуру
12.12.20
13:51
(17) я обсуждал не его. врожденное буквоедство тебе мешает это понять.
(16) да, мне нужна обертка над DLL, но в этой ВК названия методов должны совпадать с прошлыми. Чтобы просто заменить и все. Т.е. просто обертка наверное не взлетит.
55 Гений 1С
 
гуру
12.12.20
13:54
Ах да, у поставщика оборудования демка по взаимодействию с оборудованием написана на C#, поэтому и юзаю C#, а не Паскаль. Там уже все линки к DLL прописаны.
56 Serginio1
 
12.12.20
13:55
https://ru.stackoverflow.com/questions/1205995/как-собрать-x32-приложения-в-x64-системе-с

(54) Ну так и используй NetObjectToIDispatch45
Я её кстати делал, когда мне нужно было к Soap сервисами работать, а 1С не поддерживает хидеры и прочуюю лабуду.
Просто создав в студии классы для доступа к этому вэб сервису, все методы 1 в 1 вызывались из 1С через NetObjectToIDispatch45
А там было за сотню методов и классов
57 Гений 1С
 
гуру
12.12.20
13:59
(56) как-то это неклассически использовать такой хитрожопый подход, но я посмотрю. Если учебной курвы хватит, то может и сделаю.
ты можешь на словах объяснить, чем это лучше обычной компиляции и в чем соль подхода?
58 Garykom
 
гуру
12.12.20
14:01
(57) VS не надо ставить, достаточно Конфигуратора ))
59 Гений 1С
 
гуру
12.12.20
14:02
(58) это как?
60 Garykom
 
гуру
12.12.20
14:03
(56) Есть пример как через NetObjectToIDispatch45 использовать внешние dll на С/С++ ?
61 Garykom
 
гуру
12.12.20
14:04
(59) Это примерно как через COM/OLE из одной базы 1С с другой базой 1С работать ))
62 Serginio1
 
12.12.20
14:04
(57) Ты хоть попробуй. Так или иначе тебе все равно .Net и C# изучать придется. А так есть куча примеров.

Это лучше тем, что уже есть COM обертка над объектами.
А так для создания объекта, передача их в параметрах нужно городить ком обертки вручную!
Это конечно не касается примитивных типов
63 Garykom
 
гуру
12.12.20
14:05
(61)+ Только на другом конце не 1С а .Net и все совершенно ниуя не понятно для обычного одинэсника
64 Serginio1
 
12.12.20
14:07
(61) Напрямую нет. Хотя можно зная сигнатуру метода можно динамическу компиляцию подключить
http://catalog.mista.ru/1c/articles/466196/
65 Serginio1
 
12.12.20
14:08
66 Garykom
 
гуру
12.12.20
14:08
(64) (65) для гения это сильно сложно, не освоит
67 ДНН
 
12.12.20
14:14
(64) Где-то читал что есть такая технология как .Net Native, которая из dll с управляемым кодом делает dll с машинным кодом. После этого она работает без .Net.
А нельзя написать ВК на C# по технологии Native API, потом через .Net Native сделать из нее dll с машинным кодом и подсунуть 1с?
68 Garykom
 
гуру
12.12.20
14:17
(67) На практике нет
69 Serginio1
 
12.12.20
14:20
(67) Все равно сборщик мусора есть. Но он небольшой.
Проблема .Net Native в том, что он только под 10 ку и хранится он по особому. Не нашел поддержки COM
70 Serginio1
 
12.12.20
14:22
(67) Можешь написать ВК на C# по технологии Native API
http://catalog.mista.ru/1c/articles/534901/

Проблем нет. Только сейчас новый Апи
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/netcore-hosting
Написание пользовательского хост-приложения NET Core для управления средой выполнения .NET из машинного кода

Пример
https://github.com/dotnet/samples/blob/master/core/hosting/HostWithHostFxr/src/NativeHost/nativehost.cpp
71 acht
 
12.12.20
14:24
(67) Только для UWP приложений и только для Windows 10
72 jbond
 
12.12.20
14:51
Еще одно подтверждение факта, что 1Сники это не программисты.
73 Garykom
 
гуру
12.12.20
14:55
(72) это еще с фронтендерами не сталкивался (которые про nodejs не слыхали)
74 Serginio1
 
12.12.20
14:56
70+ Если не нужна динамическая компиляция и прочее можно обрезать

Обрезка автономных развертываний и исполняемых файлов
https://docs.microsoft.com/ru-ru/dotnet/core/deploying/trim-self-contained
75 Ненавижу 1С
 
гуру
12.12.20
15:11
(72) обидно, что судят обо всех по топик-стартеру
76 Гений 1С
 
гуру
12.12.20
15:21
(75) на обиженных воду возят. расслабься, перекури
77 Гений 1С
 
гуру
12.12.20
15:21
(72) а кто такие программисты, вот интересно твое мнение
78 Кирпич
 
12.12.20
15:43
(77) Кто первый назвался программистом, тот и программист
79 Кирпич
 
12.12.20
15:45
(77) А чо за железяка? Для чего ВК? Ты на инфостарте то поискал? Может там таких ВК куча.
80 Гений 1С
 
гуру
12.12.20
15:47
(79) Дверной замок Anviz. Я - эксклюзивный разработчик. На инфостарте кое-что есть, но наколенное и бренное. Только я пишу на века. ;-)
81 Кирпич
 
12.12.20
15:49
(75) там судья то сам нифига не авторитет в программировании, чтобы так плакать от его мнения.
82 Гений 1С
 
гуру
12.12.20
15:50
(81) У Ненавижна ко мне личное. Как у Сольери к Моцарту. ;-) Люди всегда завидуют тем, кто чего-то добился. А чего добился ненавижн? Выплаченной ипотеки? тьфу...
83 Гений 1С
 
гуру
12.12.20
15:51
(79) там новое SDK в 2020 вышло, нужно полностью методы переписывать. Китайцы тоже не придерживаются обратной совместимости.
84 Garykom
 
гуру
12.12.20
15:55
(83) кинь ссылку на SDK
85 Кирпич
 
12.12.20
15:56
(80) ёптыть. я думал там космический корабль.
86 Кирпич
 
12.12.20
16:07
(80) полный интернет этого Anviz, а у тебя прям эксклюзив. может лет 10 назад был эксклюзив?
87 Гений 1С
 
гуру
12.12.20
16:23
(86) дай примеры и я тебе объясню, что это не то. Уж поверь мне, брозер. Ты наверное смотришь дрова под сканер UBIO, а я про дверной замок. Там свои приколы, в нем хранится журнал проходов и на него хотят сливать отпечатки, снятые через UBIO, все это я умею делать.
88 Гений 1С
 
гуру
12.12.20
16:23
(84) мне поставщик присылал, не знаю, где она в свободном доступе.
89 Serginio1
 
12.12.20
16:24
(80) Кстати для асинхронного выполнения aync await есть выполнитель, если не хочешь синхронно Result или Wait вызывать
http://catalog.mista.ru/1c/articles/466052/
90 Гений 1С
 
гуру
12.12.20
16:31
(89) мне в ВК не нужна обработка событий, там по сути чисто библиотека
91 Garykom
 
гуру
12.12.20
16:35
Короче совет "гению", но вряд ли послушаешь.

Если это можно по функционалу железок то не надо делать никакие ВК для 1С.

Просто ваяешь внешнее приложение которое поднимает http сервер и общается с железкой.
А 1С по http банально запросами общается с этим внешним.

Ну или если нужны вызовы в 1С то http сервис в 1С поднимается и внешнее от железки его дергает.
92 Гений 1С
 
гуру
12.12.20
16:38
(91) вряд ли послушаю, потому что смысл лепить еще одну прокладку? внешнее приложение тоже еще написать надо. Если бы производитель написал его сам, то ок. но он не чешется
93 Garykom
 
гуру
12.12.20
16:39
(92) Дык используя то что есть от производителя и простейший шаблон http сервиса (коих в инете дофига на почти всех языках) это банально.
И нет привязки и разных глюков при написании ВК под 1С
94 Garykom
 
гуру
12.12.20
16:40
(92) Твоя ВК это и есть "прокладка". В 1С отличная работа с http встроена в 8-ке что еще надо то?
95 Garykom
 
гуру
12.12.20
16:45
(91)+ Получаем еще один плюс что железка не обязательно должна быть локально подключена там где 1С, можно железку воткнуть в апельсинку/малинку (или нечто вроде) а с 1С по сети, даже через инет.
96 Serginio1
 
12.12.20
16:45
(90) Ну вообще то весь код на .Net асинхронный async await
Нет смысла висеть пока придет событие по await.
Я к тому, что изучи существующий код. На него потрачены годы!
Ты за время вопроса, что то хоть посмотрел? Попробовал?
97 Кирпич
 
12.12.20
16:49
Чо вы блин распинаетесь. Не будет он ничо писать. Даст 2000р студенту и все дела.
98 Ненавижу 1С
 
гуру
12.12.20
16:51
Вы сейчас насоветуете. Сказал же технология уникальная. А вы ему всю уникальность снимите
99 Garykom
 
гуру
12.12.20
16:51
(97) студент сча не такой глупый пошел чтобы за 2000р вкалывать
когда есть куча других вариантов заработать больше и легче
100 Garykom
 
гуру
12.12.20
16:51
100
101 Кирпич
 
12.12.20
16:53
(99) Да нормально. Пива попить.
102 Гений 1С
 
гуру
12.12.20
16:57
(99) вы таки про закладки и вебки?
103 Гений 1С
 
гуру
12.12.20
16:57
(97) с чего это. На VB6 сам писал.
104 Гений 1С
 
гуру
12.12.20
16:58
(94) понимаешь, это усложнение схемы, которое ляжет на плечи клиента, ему нужно будет еще сервак поднять.
105 Гений 1С
 
гуру
12.12.20
16:59
(95) ну в данном случае дверной замок и так по TCP-IP доступен, если че.
106 Кирпич
 
12.12.20
16:59
(98) Если гений не будет верить, что оно у него уникальное, то как он будет впаривать это клиентам. Неубедительно получится. Глаза будут бегать, румянец и всё такое...
107 Гений 1С
 
гуру
12.12.20
17:00
(106) ты сперва это готовое покажи
108 Garykom
 
гуру
12.12.20
17:02
(105) этот твой дверной замок подрубается к готовой скуд системе а у нее уже есть готовая интеграция с 1С
109 Garykom
 
гуру
12.12.20
17:02
(106) +1
110 Кирпич
 
12.12.20
17:02
(105) Так и нахер тебе тогда .NET, C# и геморрой
дай вон денег Garykom. Он тебе запилит по первому классу.
111 Garykom
 
гуру
12.12.20
17:03
(110) у него стока нет сколько я запрошу
112 Кирпич
 
12.12.20
17:04
+(110) SDK только ему покажи. Там делов на полдня наверное
113 Гений 1С
 
гуру
12.12.20
17:04
(108) зайка, есть маленький нюанс - возможно она и выгрузит данные о проходах. Но вот разработчики СКУД наверняка не подумали о заливке пальцев из 1С в замок. Кризис Айти, видишь ли. Готовые решения они всегда такие.
114 Гений 1С
 
гуру
12.12.20
17:05
(111) ну за такие деньги я и сам напишу. А сколько ты хочешь за обертку над 10 методами, скажем?
115 Гений 1С
 
гуру
12.12.20
17:05
(109) Кукушка хвалит петуха, а дать конкретику - хаха
116 Кирпич
 
12.12.20
17:05
(111) Кредит возьмет. 5000 дадут
117 Гений 1С
 
гуру
12.12.20
17:06
(112) видишь ли, лишний опыт в C# не помешает. Пусть я неделю потрачу, но зато потом и для Anviz Ubio коннектор свой перепишу на C#
118 Кирпич
 
12.12.20
17:07
(117) да ты через неделю забудешь весь этот опыт. зато жизнь укоротишь лет на 5
119 Конструктор1С
 
12.12.20
17:08
(50) как ты со своими дохэллоуворлдными знаниями шарпа собрался ВК писать?
120 Ненавижу 1С
 
гуру
12.12.20
17:09
Не мешайте. Будет много сабжей про Шарп говно и ООП это лажа
121 Гений 1С
 
гуру
12.12.20
17:10
(119) так же как и на VB6 писал - по образцу, любезно представленному 1С
122 Гений 1С
 
гуру
12.12.20
17:10
(120) В ВК ооп не требуется
123 Гений 1С
 
гуру
12.12.20
17:11
(118) да ладно, по VB6 вот недавно открывал и перекомпилировал на VB6, к тому же сейчас я записываю все в Эвернот в чек-листы, все пучком. специально, чтобы не помнить, а знать, где посмотреть.
124 Кирпич
 
12.12.20
17:13
(123) Ну давай. Только обязательно на C# делай. Это очень перспективно, легко и технологично. 1С рекомендует.
125 Гений 1С
 
гуру
12.12.20
17:13
(124) ну я ж писал, что у меня исходники примера на C#, к чему юзать нечто другое?
126 Garykom
 
гуру
12.12.20
17:16
(121) Как бы сказать но нету образца ВК на C# от 1С ))

И для VB тоже больше нетути, очень давно было но даже уже хрен скачаешь легко
127 Гений 1С
 
гуру
12.12.20
17:16
Вот что пишет 1С:

В качестве средств разработки можно применять:

Microsoft Visual C++,
Delphi,
C++ Builder,
Xcode,
Eclipse,
gcc,
CMake.


Примеры создания внешних компонент находятся в каталоге \1CIts\EXE\VNCOMPS

Примеры для работы с "1С:Предприятием 8.3" располагаются в подкаталоге VNCOMP83.

ВЫ МОЖЕТЕ ПРЯМО СЕЙЧАС СКОПИРОВАТЬ ПРИМЕРЫ ВНЕШНИХ КОМПОНЕНТ
НА ЖЕСТКИЙ ДИСК ВАШЕГО КОМПЬЮТЕРА



Гм, скачал, примера на C# непосредственно там нет, только на С++.
Ну да ладно, думаю в C# VC есть пример COM-компоненты. Ну или загуглю
128 Гений 1С
 
гуру
12.12.20
17:16
(126) о, прям прочитал твои мысли.
129 Garykom
 
гуру
12.12.20
17:17
(125) Он над тобой стебется
130 Гений 1С
 
гуру
12.12.20
17:17
(126) если сам не разберусь, запрошу образец на KWORK
131 Гений 1С
 
гуру
12.12.20
17:17
(129) Да на здоровье (психическое)
132 Garykom
 
гуру
12.12.20
17:17
(128) Это я твои будущие страдания предсказал ))
133 Garykom
 
гуру
12.12.20
17:18
(127) то что ты загуглишь будет под совсем другую VS времен так 2003 ))
134 Ненавижу 1С
 
гуру
12.12.20
17:19
(130) рано заднюю включил
135 Гений 1С
 
гуру
12.12.20
17:20
(134) не надо тут о задних, извращенец. Дописывать то все равно я буду. ;-) я не стесняюсь покупать то, чего не умею
136 Гений 1С
 
гуру
12.12.20
17:24
(132) переживу.
137 Гений 1С
 
гуру
12.12.20
17:26
Вот уже один проторил дорогу: http://diesel.elcat.kg/index.php?showtopic=2642287
138 Гений 1С
 
гуру
12.12.20
17:27
Кину до кучи еще одни примеры:

Прочитал статью на Mista Книга знаний: Написание внешних компонент для 1С на VB.NET и C#;, скачал примеры - на VB/NET (http://www.kb.mista.ru/files/NetV7ExtTemplate.rar) и на C# (http://www.kb.mista.ru/files/V7ExtTemplate-1.C.rar). Запустил готовую DLL на 8.0 - работает и ВК на VB/NEt и на C#. С 7.7 работает только ВК на VB/NET. Скомпиллировал коды - те же результаты. Переписал код с VB на C# - то-же самое, работает только с 8.8. Автор статьи не ответил. Может кто-нибудь может дать ответ: Как заставить ВК на C# + NET работать с 7.7? Где собака зарыта?
139 Serginio1
 
12.12.20
17:27
(127) Вот зачем тебе ВК если у тебя нет событий, не нужен доступ к контексту 1С.
Пиши просто КОМ обертку! Не нужна тебе ВК
140 Гений 1С
 
гуру
12.12.20
17:29
(139) так я и хочу COM-Обертку написать вроде как. У меня на VB6 была именно COM-Компонента.
141 Garykom
 
гуру
12.12.20
17:29
(139) нахер ком обертка когда консольное приложение можно ))
142 Гений 1С
 
гуру
12.12.20
17:29
(139) Примеры есть на C#?
(141) я с этого примерно и начинал, но не очень удобна консолька для 1С
143 Garykom
 
гуру
12.12.20
17:30
(142) дык запускается консольное оно попадает в трей и висит там отвечает на запросы http от 1С ))
144 Гений 1С
 
гуру
12.12.20
17:30
Кстати, а Ромикс как поживает?
145 Гений 1С
 
гуру
12.12.20
17:30
(143) из пушки по воробьям. нах
146 Garykom
 
гуру
12.12.20
17:32
(145) а что ты будешь делать если у тебя 1С в облаке фреш или под линуксом или мобильная android/ios ?
147 Serginio1
 
12.12.20
17:33
(138) Возьми отсюда, если хочешь свой велосипед
Быстрое создание Внешних Компонент на C#. Примеры использования Глобального Контекста, IAsyncEvent, IExtWndsSupport, WinForms и WPF
http://catalog.mista.ru/1c/articles/457898/

(141) Ну это уже на вкус и цвет. А так по моему проще через HTTP или Вэб сервис написать и быстрее.
За то время пока эта тема висит. Я вот не пойму бери готовый NetObjetToIDispatch45 и используй.
Заодно .Net изучишь, а затем пиши уже что захочешь
148 Serginio1
 
12.12.20
17:35
(142) Я тебе список примеров дал в (16) бери и используй.
Там и есть и обычная Com комобертка и обертка через IReflect
149 jbond
 
12.12.20
17:39
(73) вы будете смеяться, но нода это неотъемлемая часть современного фронта.

Где вы откопали фронтендеров, которые не могут запустить вебпак, который на ноде?
150 Serginio1
 
12.12.20
17:44
Если ты откроешь файл NetObjectToIDispatch45.cs то там как раз и объявление класаа

[ComVisible(true)]
    [ProgId("NetObjectToIDispatch45")]
    [ClassInterface(ClassInterfaceType.AutoDispatch)]
    [Guid("DFDADA57-B22C-4276-928A-8B91C9891FF1")]
    public class NetObjectToIDispatch45

и методы
public object СоздатьОбъект(object Тип, params object[] argOrig)
итд
если метод не помечен как
[ComVisible(false)] он будет виден из 1с.
Ну и методы должны быть как public. Бери пробуй, изучай, делай по своему.
151 Serginio1
 
12.12.20
17:44
У тебя все есть
152 jbond
 
12.12.20
17:52
(91) ура... Все таки есть программисты среди 1Сников
153 Serginio1
 
12.12.20
18:03
150+ А есть класс

[ClassInterface(ClassInterfaceType.AutoDispatch)]
    [ComVisible(true)]
    [Guid("1521B4B2-F38B-4CAD-BB45-3C6E1F00982F")]
    public class AutoWrap : IReflect

Именно через него можно автоматически обертывать объект если это не примитивный тип, string и прочее смотри метод
154 Serginio1
 
12.12.20
18:03
public static object ОбернутьОбъект(object obj)
155 jbond
 
12.12.20
18:04
ОК, раз тяпничная тема продолжается в субботу, то поднаброшу:

Последняя норамальная IDE для шарпа - это Visual Studio 2010. Дальше студия начала скатываться.

Сейчас в банковском тырпрайзе, если доходит дело до разработки на шарпе, то выбирается якобы давно умерший SharpDevelop.
156 Гений 1С
 
гуру
12.12.20
18:19
(146) ничего. не буду туда внедрять.
157 Гений 1С
 
гуру
12.12.20
18:19
(152) кукушка опять хвалит петуха
158 Garykom
 
гуру
12.12.20
18:22
(156) Не внедряй, ко мне например обратятся или другим кто внедрит ))
159 Кирпич
 
12.12.20
18:32
(154) да да да. Здесь рыбу заворачивали. https://www.youtube.com/watch?v=hOrLrLPsv1k
160 Кирпич
 
12.12.20
18:33
+(159) Инструкция как писать ВК на C#
161 Гений 1С
 
гуру
12.12.20
18:34
(158) у тебя сайт хоть есть, внедренец?
162 Garykom
 
гуру
12.12.20
18:35
(161) Кому то шашечки а кому то ехать, шашечки это не ко мне.
163 Ненавижу 1С
 
гуру
12.12.20
20:21
(161) лучше не иметь вовсе сайта чем такое - httpss://geniy1s.ru/
164 Гений 1С
 
гуру
12.12.20
21:57
(163) не лучше. Вот ты не имеешь сайта и че? Гниешь на фикси
165 zavsom111111
 
12.12.20
22:00
(0) я поставил визуал студию коде - для писанины роботов под биржу бинанс на голанде и питоне так вот она универсальная там и ява там и си шарп
166 Гений 1С
 
гуру
12.12.20
22:12
(165) для себя роботов пишешь или клиентам?
167 zavsom111111
 
12.12.20
23:20
(166) для себя конечно - я давно на бинансе торгую с 2017
168 zavsom111111
 
12.12.20
23:21
169 zavsom111111
 
12.12.20
23:26
год уже в Пензе просиживаю - тесть с тещей старые по 83 года - тесть абсолютно слепой а тещу инсульт в начале лета разбил и никуда от них не уехать - хуже маленьких детей - маленьких взял и повез а с этими еще и с их мнением надо считаться: то не так сиделка им не нравится другую давай а сиделка нынче одна для двоих от 2500 сутки вот и улетает все на них и все их пенсии на таблетки - лекарства для пенсионеров адову тучу денег стоят кароче 110 120 тыч\сяч в месяц улетает на все про все ну в принципе не критично так как у них пенсия 50 тыщ. Ну и я как и ты (0) тоже веду учет домашних денег в своей программе уже аж с 2006 года
170 zavsom111111
 
12.12.20
23:27
хата в Москве пустая стоит даже не знаю что счас с ней стало с 30 сентября не был как сосед залил сверху с 6 этажа всех пролил и 4 подо мной и третий и второй и первому хуже всех досталось а мне за актом даже съездить нельзя - стариков боюсь заразить
171 zavsom111111
 
12.12.20
23:29
нас с марта выгнали на карантин наша крыша схлопотала корону в ОАЭ еще в декабре прошлого года и в такой жуткой форме что когда выздоровел и узнал про корону в Москве выгнал всех из офиса по домам а через неделю у нас все в отеле в калуге перезаражались и понеслось
172 zavsom111111
 
12.12.20
23:31
много народу реально переболело - а друзья даги в мытищах ваще жуть порассказали - им прикрыли аренду на время карантина в мае и они в дагестан ломанулись везя на себе корону кароче там аулами вымирали
173 zavsom111111
 
12.12.20
23:33
у меня счас там все переболели ваще все поголовно - главбухша слегла с 25% поражения легких - ее температура накрыла она сознание потеряла упала и ноги себе переломала кое как очнулась утром теперь вот с переломами лежала на ивл и еще и шейку бедра умудрилась сломать
174 zavsom111111
 
12.12.20
23:35
(0) кстати поинтересуйся у тебя в железке в лесу есть контора АПИСАН - они лекарства для животных выпускают на всю Россию от мух (пчел) до коров и кошек и собак - я им бизнес процессы внедрял на КА2 можа они счас ничьи.
175 zavsom111111
 
12.12.20
23:35
Хорошо платили от ляма только за один документооборот
176 zavsom111111
 
12.12.20
23:38
Кстати че у вас там в Белоруссии? Когда уже этого батьку палками забьете?
177 Злопчинский
 
13.12.20
00:32
178 Конструктор1С
 
13.12.20
08:28
(121) сначала начись код нормально писать. Это в 1с, особенно во фрилансах, кривокодерство считается нормой. В тру-программировании так не принято
179 Конструктор1С
 
13.12.20
08:29
*научись
180 Гений 1С
 
гуру
13.12.20
09:52
(178) шта? что такое тру-программирование, дяденька? и вообще 0 бит.
181 Гений 1С
 
гуру
13.12.20
09:52
(174) спасибо, мне хватает клиентов. ;-) и я их не по географическому принципу выбираю.
182 Гений 1С
 
гуру
14.12.20
21:53
Завтра-послезавтра начинаю писать ВК. Уххх, с БОгом!
183 Кирпич
 
14.12.20
21:57
(182) Смотрел я этот SDK. Там обычная dll и .h файл. Проще всего на Си++ сделать Native ВК по шаблону от 1с.
А C# это дичь
184 Serginio1
 
14.12.20
22:39
(183) Как раз С++ это дичь. Да и не нужна там ВК. Кома достаточно, без всяких приседаний с 32 и 64 разрядами.
(182) Не знаю как насчет БОга, но Бит точно поможет!
185 acht
 
15.12.20
01:05
186 Кирпич
 
15.12.20
12:00
(184) /без всяких приседаний с 32 и 64 разрядами
ох ёптыть какая страшная проблема :)
187 Serginio1
 
15.12.20
17:08
(186) Проблем то нет. Только вот время на такую хрень уходит.
Кроме того я программирую на С++ раз в пятилетку и виж то, что делается на шарпе в полтыка, на плюсах нужно нехтло поприседать.
У меня коллега плюсовик, называет C# детским языком, при переходе с плюсов.
Гению вообще то писать ничего и не надо. Взять NetObjectToIDispatch45 и вызвать эти 10 методов через него.
Но пусть лучше погрузится в очаровательный мир .Net и C# 9!
188 Кирпич
 
15.12.20
17:14
(187)  //Взять NetObjectToIDispatch45 и вызвать эти 10 методов через него.
фиг знает. там куча структур каких то. указателей
189 Кирпич
 
15.12.20
17:17
Хотя можно сначала создать класс с 10 методами, который скроет всю галиматью, и его уже через NetObjectToIDispatch45 показывать
190 H A D G E H O G s
 
15.12.20
17:22
Че там, Сергей, написал уже всё?
191 Serginio1
 
15.12.20
17:56
(109) Смотря, что ему нужно. https://github.com/MxLabs/Anviz/blob/development/Sample/Program.cs
Если просто посылать, то ничего и не надо. Если нужно для удобства события обрабатывать, то можно
События обрабатывать либо через ДобавитьОбработчик или СобытиеДля1С.ExternalEvent
http://catalog.mista.ru/1c/articles/417830/

Но пусть для начала перейдет с бейсика!
192 Garykom
 
гуру
15.12.20
18:13
(191) гы полчаса обернуть пример в http сервис
https://docs.microsoft.com/en-us/dotnet/api/system.net.httplistener?redirectedfrom=MSDN&view=net-5.0
193 Кирпич
 
15.12.20
18:33
(190) Для человека, который "забыл С++" это плёвое дело
194 Serginio1
 
15.12.20
19:04
(192) Ну события мы через gRPC? http как и Web сервис это же моветон!
https://docs.microsoft.com/ru-ru/aspnet/core/tutorials/grpc/grpc-start?view=aspnetcore-5.0&tabs=visual-studio
195 Serginio1
 
15.12.20
19:05
196 H A D G E H O G s
 
15.12.20
20:23
(191) обьектами 1с нельзя будет пользоваться и в реестре нужно будет регаться.
197 Кирпич
 
15.12.20
20:29
и Linux
198 pavig
 
15.12.20
20:31
(0)
А что с убивцей 1С?
Просто интересуюсь
199 Кирпич
 
15.12.20
20:46
(198) Террабайты порнухи еще не спрятаны Где хранить архивные копии на винтах?
Не может ничо делать пока на душе не спокойно
200 Serginio1
 
15.12.20
21:38
(191) Ну вообще то можно
здесь как раз используется IAsyncEvent и глобальный контекст

.NET(C#) для 1С. Динамическая компиляция класса обертки для использования .Net событий в 1С через ДобавитьОбработчик или ОбработкаВнешнегоСобытия
http://catalog.mista.ru/1c/articles/417830/

ПодключитьВнешнююКомпоненту("AddIn.GlobalContext1C");
    объект = СоздатьОбъект("AddIn.GlobalContext1C");
    ГлобальныйКонтекст= объект.ГлобальныйКонтекст;

    ОберткаСобытий= врап.СоздатьОберткуДляСобытий77(ОбертываемыйОбъект,ГлобальныйКонтекст);


Здесь пример быстрого создания своей ВК
http://catalog.mista.ru/1c/articles/457898/

Ну один раз зарегистрировал NetObjectToIDispatch45 и используй любые сборки .Net
201 Serginio1
 
15.12.20
21:51
(199) Я когда делал
Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
http://catalog.mista.ru/1c/articles/534901/

И всем понравившийся Ъ, понял, что линукс нахрен никому не нужен, а вместо ВК людям проще писать Web или Http сервисы
Но написать ВК на C# не проблема. Просто Ъ универсальный, а под конкретную задачу пишется также как и любого нативного языка,
просто использую шлюз к .Net к статическим методам

Написание пользовательского хост-приложения NET Core для управления средой выполнения .NET из машинного кода
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/netcore-hosting
202 Гений 1С
 
гуру
15.12.20
22:14
А шаблон проекта c# для вк есть (com, не native) ? И что там с 32/64 бит?
Пока что качаю vc
203 Serginio1
 
15.12.20
22:58
(202)  Еще раз посмотри (200) там есть все для ВК? Ты за 2 дня мог все просмотреть. Еще раз Any CPU не привязан к разрядности процесса
204 Ненавижу 1С
 
гуру
15.12.20
23:06
205 Гений 1С
 
гуру
16.12.20
09:55
(198) отложена, т.к. нет финансирования.
206 Гений 1С
 
гуру
16.12.20
09:56
(204) спасибо, попробую.
Я так понимаю, это COM-компонента. и при запуске из 64-разрядной 1С работать не будет без плясок с бубном? или будет?
207 Гений 1С
 
гуру
16.12.20
09:58
(203) Посмотрел, ничего не понял, каким это боком поможет мне написать ВК-обертку над библиотекой функций оборудования в DLL. Не стоит предлагать начинающему хирургу удаление аппендикса через гланды, Dear
208 Garykom
 
гуру
16.12.20
10:04
(207) Тебе пытаются намекнуть что ВК уже написана и VS ставить не надо.
Просто готовую ВК подключил и сразу на C#/.Net писать можно
209 Serginio1
 
16.12.20
10:07
(206) Читаешь Использование классов .Net в 1С для новичков

Смотришь какие типы методов используешь.
Создаешь объекты и вызываешь методы с нужными параметрами
http://catalog.mista.ru/1c/articles/448668/
210 Serginio1
 
16.12.20
10:42
209+ И смотри комментарии. Там много вопросов и ответов
211 Гений 1С
 
гуру
16.12.20
12:31
(210) и все же это не то, что мне нужно. Мне нужна обертка над DLL, своя ВК.
212 Гений 1С
 
гуру
16.12.20
12:35
(208) мне не годится подобный метод. Мне нужна совместимость с прошлой ВК, т.е. решение должно быть оформлено, как ВК
213 Serginio1
 
16.12.20
12:53
(212) Ты двигайся постепенно. Для начала возьми мою компоненту попробуй вызвать свои методы. Это и есть обертка над любыми Dll
Разберешься с типам м прочими и ваяй своё.
Там есть внутри и комовский ВК, для получения контекста 1С и получения событий. Там все есть для изучения и начала создавать свое.
Тебе так или иначе нужно изучать .Net.
Главное нАчать, а ты уже неделю все никак начать не можешь.
214 Serginio1
 
16.12.20
12:55
Смотри исходники. Я старался комментировал
215 pavig
 
16.12.20
12:57
(205)
Если что - я весь интерфейс готов взять на себя. Есть наработки и опыт.
216 Гений 1С
 
гуру
16.12.20
13:12
(215) напиши в личку, например. Обкашляем
217 Гений 1С
 
гуру
16.12.20
13:13
(213) это не то, что мне нужно. Я уже нашел шаблон COM-ВК-компоненты на C#, ее и буду полировать. Вон, Ненавижн в (204) пример дал.
218 pavig
 
16.12.20
13:20
(216)
отправил на мыло
219 Ненавижу 1С
 
гуру
16.12.20
13:40
(217) будешь мне 5% от продаж отчислять ))))
220 Serginio1
 
16.12.20
14:10
(217) Это не ВК, а объект автоматизации. Не все типы ты можешь передавать напрямую итд.

Смотри файл AddinFor1C.cs
и класс
public class GlobalContext1C : IInitDone, ILanguageExtender
221 Кирпич
 
16.12.20
14:10
(217) В (204) не ВК, балда. Там то же самое, что и Serginio1 тебе предлагает сделать, только Serginio1 учит как сделать проще(как ему кажется).
(215) А вот и студент. Смотри не продешеви.
222 H A D G E H O G s
 
16.12.20
14:13
223 Гений 1С
 
гуру
16.12.20
14:55
Вот в такие моменты я и понимаю, что нужен ROOM, банальные вещи друг другу не можем объяснить.
224 Гений 1С
 
гуру
16.12.20
19:40
https://wiki.programstore.ru/c-1c-pishem-prostejshij-com-server-dlya-1s/
1. "Обратите внимание, что в юзинги мы добавили System.Windows.Forms, поэтому необходимо подключить к библиотеке соответствующую ссылку"
- У меня нет раздела Ссылки.
2. "Во-первых, на закладке «Построение» надо указать, что наша программа будет зарегистрирована для COM-взаимодействия"
- нет такой галочки.
3. "Ну, и последний штрих, идем в AssemblyInfo.cs и вставляем туда вызов AssemblyKeyFile, а ComVisible делаем true"
- у меня нет "AssemblyInfo.cs"

Вот и доверяй этим интернет-манулам
225 H A D G E H O G s
 
16.12.20
19:41
(224) Гхаб должен страдать.
226 Garykom
 
гуру
16.12.20
19:45
(224) рекомендую вернуться обратно на vb6 ))
227 Гений 1С
 
гуру
16.12.20
19:48
Открыл в VC проект этого перца: http://diesel.elcat.kg/index.php?showtopic=2642287
Там есть раздел ссылки, возможно, что-то не так при создании проекта сделал. Посмотрю, гм.
228 Гений 1С
 
гуру
16.12.20
19:53
гм. Regasm еще надо найти в папке VC, нетуть
229 H A D G E H O G s
 
16.12.20
19:55
(227) Проникайся, Сергей, духом инфраструктуры настоящего ЯП.
230 Garykom
 
гуру
16.12.20
19:56
(228) учти что regasm на клиентских машинах может быть в разных путях и даже их несколько будет
как ты из 1С штатно будешь свою "ВК" регать?
231 Garykom
 
гуру
16.12.20
19:56
(230)+ а еще прикольно когда версию .net обновят с удалением старой ))
232 H A D G E H O G s
 
16.12.20
19:57
(230) Тру ВК не требуют регистрации, на то они и dll
233 Гений 1С
 
гуру
16.12.20
20:02
(232) где взять шаблон тру-вк?
c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe - нашел.
(230) переберу все папки NET, найду максимальную. Это решаемый вопрос.
234 H A D G E H O G s
 
16.12.20
20:07
(233) Небольшой ГуруТест.
235 Гений 1С
 
гуру
16.12.20
20:10
ИмяВК="AddIn.ExtTest";
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);

Гм, после рег-асма не подключается в обычных формах:
Результат: ложь
Windows x86

в регистре записи AddIn.ExtTest появились.
236 Гений 1С
 
гуру
16.12.20
20:11
ЗагрузитьВнешнююКомпоненту("m:\fixin\...\Test1C.dll"); вываливается в исключение. гм.
237 Гений 1С
 
гуру
16.12.20
20:13
(229) а чем настоящий он нестоящего отличается?
238 H A D G E H O G s
 
16.12.20
20:16
(237) Ну это серьезная среда, где у тебя может проебаться какой-нибудь пакет, или переменная окружения или нужный тебе велосипед с сайта таких же любителей велосипедов будет под старую версию студии.
Тут вам не 1С.
239 H A D G E H O G s
 
16.12.20
20:19
(236) Давай я тебе дам маленький лайфхак.
Отладчиком Студии !Скорее всего! можно будет подключиться к 1С и отлаживать код наживую. И даже поставить точку останова на точке входа в dll и узнать, че не грузится.
Епстественно, если у тебя подгружена таблица отладочных символов.

Скорее всего - это потому, что там можно в Дельфе.
240 Serginio1
 
16.12.20
20:21
Мыши плакали, кололись, но продолжали жрать кактус!.
А у меня то все работает. Надо 2 regasm вызывать. Если бы ты почитал, то у меня даже отдельное приложение есть
241 H A D G E H O G s
 
16.12.20
20:21
А сделать dll ку независимой от реестра - это всего лишь за 1С создать COM-фабрику, ее экземпляр и пресечь ее обращения в реестр венды. Ведь dll-ка то уже загружена. Делов для Гения на 5 минут.
242 Serginio1
 
16.12.20
20:22
РегистрацияКомСервера.exe
243 Гений 1С
 
гуру
16.12.20
20:26
(240) не стоит выебываться. Написал CMD (суть была в ключе codebase):

"c:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe"  "%~dp0\Test1C.dll" /codebase
pause

(241) Прости, не понял о чем ты.


Теперь она регистрируется и создает объект:

ИмяВК="AddIn.ExtTest";    
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
net = Новый (ИмяВК);
net.Show("yes");

И даже выводит YES:
https://i114.fastpic.ru/big/2020/1216/fe/c4d800eba1c8a2ddaa5002a8ddd07cfe.jpg

Ну что ж, не боги горшки обжигают. Вот только не знаю, использовать этот проект как каркас или все же с нуля сделать. Не очень понятно, почему в том, что с нуля сделал, не добавились ссылки и прочая хрень:


<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <SignAssembly>true</SignAssembly>
    <AssemblyOriginatorKeyFile>AnvizCCHEX.snk</AssemblyOriginatorKeyFile>
  </PropertyGroup>

</Project>
244 Гений 1С
 
гуру
16.12.20
20:28
В тестовом то проект пожирнее выглядит:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"; ToolsVersion="Current">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.50727</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{515F98A0-FDD9-4D1A-9052-732CCAEC75D9}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Test1C</RootNamespace>
    <AssemblyName>Test1C</AssemblyName>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <UpgradeBackupLocation>
    </UpgradeBackupLocation>
    <OldToolsVersion>2.0</OldToolsVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Template1CExt.cs" />
    <Compile Include="COMError.cs" />
    <Compile Include="IAsyncEvent.cs" />
    <Compile Include="IErrorLog.cs" />
    <Compile Include="IInitDone.cs" />
    <Compile Include="ILanguageExtender.cs" />
    <Compile Include="IStatusLine.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="V7Data.cs" />
    <Compile Include="WinAPI.cs" />
  </ItemGroup>
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target>
  -->
</Project>
245 Гений 1С
 
гуру
16.12.20
20:29
(238) не понял, в чем серьезность. Имхо, это, наборот кривость. KISS
246 Гений 1С
 
гуру
16.12.20
20:30
надо еще понять теперь, как подключить dll оборудования в этот проект, чтобы его закомпилить. ;-)
причем там две DLL - под 32 и под 64, бррр...
247 H A D G E H O G s
 
16.12.20
20:33
(243) "И даже выводит YES"
https://youtu.be/JgaV25qOcVo
248 Serginio1
 
16.12.20
20:33
(243) Угу хотел тебе помочь, ноо
Для 64 разрядных надо "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe" вызывать
249 Garykom
 
гуру
16.12.20
20:34
(246) Шаблон ВК от 1С на C++ умеет делать https://docs.microsoft.com/ru-ru/cpp/build/loadlibrary-and-afxloadlibrary?view=msvc-160
если слегка допилить

И не надо .net с regasm
250 Serginio1
 
16.12.20
20:36
251 Serginio1
 
16.12.20
20:38
(249) Ну для .Net нужно еще среду подгрузить
https://docs.microsoft.com/ru-ru/dotnet/core/tutorials/netcore-hosting

То, что меньше .Net Core у меня реализовано в Ъ
252 Гений 1С
 
гуру
16.12.20
20:45
(250) Спасибо, но это я уже потом буду ковыряться, если понадобится 64-разрядная вк.
253 Гений 1С
 
гуру
16.12.20
20:46
(249) С++ более близка к ASM, чем к BASIC. К тому же у меня есть файл заголовков методов DLL на C#, причем с китайскими иероглифами.
254 Гений 1С
 
гуру
16.12.20
20:47
(251) "То, что меньше .Net Core у меня реализовано в Ъ" - это как понять?
255 Serginio1
 
16.12.20
20:50
(252) Сейчас как раз в основном то и используют 64 разрядные 1С ибо памяти не хватает.
Там скорее всего внутри твоих библиотек уже реализован доступ к нативным dll. Или ты сам используешь нативные ?
(254) Меньше .Net Core 3. Я еще писал для .Net 1.0.
256 Serginio1
 
16.12.20
20:52
.Net Core 1.0 и застал 1.1
257 Гений 1С
 
гуру
16.12.20
20:55
(255) у меня две обычные DLL - одна 32-разряда, другая 64.
258 Гений 1С
 
гуру
16.12.20
21:00
ок, на сегодня все.
завтра попробую подрубить в проект 32-разрядную DLL и вызвать метод из DLL.
если прокатит, будем считать, что остальное - дело техники.
Было бы неплохо, конечно, чтобы один проект работал под 32 и 64, но посмотрим.
259 Гений 1С
 
гуру
16.12.20
21:04
(248) Кстати, спасибо. зарегил под 64-разрядную платформу как ты написал, работает.
Еще бы с 32-разрядной DLL оборудования работала бы в обоих платформах, цены бы ей не было. ;-)
260 Serginio1
 
16.12.20
21:10
(259) Ты же говорил, что у тебя .Net библиотеки, или они PInvoke к нативным?
261 Гений 1С
 
гуру
16.12.20
21:13
(260) это не NET библиотеки. У меня есть файл заголовка этих библиотек для C#
гм, только теперь не знаю, как в тонком подключить эту библиотеку, так не канает (ведь в файле не ВК, обычная для 1С):

ИмяВК="AddIn.ExtTest";    

СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);

ФайлDLL = "m:\fixin\...\Test1C.dll";

Результат = ПодключитьВнешнююКомпоненту(ФайлDLL, "AddInExtTest", ТипВнешнейКомпоненты.COM);
Сообщить("Результат: " + Результат);
//Прерываем как только получаем желаемый результат
net = Новый ("AddIn.ExtTest" + ".AddInExtTest");

net.Show("yes");
262 Serginio1
 
16.12.20
21:14
Ну для 32 разрядных есть DllSurrogate
263 Serginio1
 
16.12.20
21:16
(261) Посмотри у меня. Я уже сейчас и не помню но упаковывал в макет
264 Гений 1С
 
гуру
16.12.20
21:31
(263) так ты DLL же упаковывал, а это не та DLL, Которую ожидает 1С
265 Гений 1С
 
гуру
16.12.20
21:31
гм. с тонким засада. толстый то счас мало юзается, надо побороть.
266 Serginio1
 
16.12.20
21:32
У меня есть ТестВКУФ.erf там я dll храню в макете, но потом её распаковываю.
267 Serginio1
 
16.12.20
21:32
Но там все тоже
Если ПодключитьВнешнююКомпоненту("AddIn.GlobalContext1C") Тогда
        объект=Новый ("AddIn.GlobalContext1C");
        ГлобальныйКонтекст=объект.ГлобальныйКонтекст;
        AppDispatch=ГлобальныйКонтекст.AppDispatch;
        AppDispatch.Сообщить("Привет");
        Сообщить(AppDispatch.СтатусСообщения.Важное);
268 Гений 1С
 
гуру
16.12.20
21:34
(267)
ИмяВК="AddIn.ExtTest";    

СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);

Результат = ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + Результат);


Выдает Ложь, хоть ты тресни.
269 Гений 1С
 
гуру
16.12.20
21:35
Результат: Нет
Windows x86
270 Serginio1
 
16.12.20
21:36
(265) Сейчас уже и не помню
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
Параметры:
<ИдентификаторОбъекта> (обязательный)
Тип: Строка.
Идентификатор объекта внешнего компонента в виде ProgID (Programmatic Identifier) реестра MS Windows (например: "AddIn.Scanner").
Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание варианта метода:
Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
Возвращаемое значение:
Тип: Булево.
Истина - подключение прошло успешно.
Описание:
Подключает внешний компонент к 1С:Предприятию.
Внешние компоненты могут храниться в информационной базе или макетах конфигурации в виде ZIP-архива или в виде двоичных данных, а также в файле файловой системы.
При работе на тонком клиенте и веб-клиенте компонент должен быть предварительно установлен.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер).
271 Гений 1С
 
гуру
16.12.20
21:37
(270) да я вот помню, уже бился с тонким, в итоге так подключил:

#Если ТонкийКлиент Тогда
Результат = ПодключитьВнешнююКомпоненту(ФайлDLL, "AddInAnvizUBIO", ТипВнешнейКомпоненты.COM);
//Прерываем как только получаем желаемый результат
Возврат Новый ("AddIn.AddInAnvizUBIO.AddInAnvizUBIO");
#Иначе

Но там была нормальная DLL, а не NET C#
272 Serginio1
 
16.12.20
21:40
Попробуй для начала Новый COMОбъект(ИмяВК);
273 Гений 1С
 
гуру
16.12.20
21:47
(272)
ИмяВК="AddIn.ExtTest";    
net = Новый COMОбъект(ИмяВК);
Сообщить(net);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
net.Show("yes");


Windows x86
Метод объекта не обнаружен (Show)
{(6)}:net.Show("yes");
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(13)}:       Выполнить(ТекстДляВыполнения);
COMОбъект
274 Гений 1С
 
гуру
16.12.20
21:48
это какой-то не тот ком-обьект
275 Serginio1
 
16.12.20
22:20
Ну правильно нет. Ты же через ILanguageExtender вызываешь.
Добавь метод Show и он будет виден
Я к тому, что сначала загрузи как Ком объект а затем вызови COMОбъект(ИмяВК);
а затем
Результат = ПодключитьВнешнююКомпоненту(ИмяВК);
276 Гений 1С
 
гуру
16.12.20
23:11
(275) так не пашет:
ИмяВК="AddIn.ExtTest";    
об = Новый COMОбъект(ИмяВК);
Сообщить(об);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
net = Новый (ИмяВК);
Сообщить(net);
net.Show("yes");

Windows x86
Тип не определен (AddIn.ExtTest)
{(6)}:net = Новый (ИмяВК);
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(13)}:       Выполнить(ТекстДляВыполнения);
COMОбъект
277 Гений 1С
 
гуру
16.12.20
23:12
(275) И так тоже нет:

ИмяВК="AddIn.ExtTest";    
об = Новый COMОбъект(ИмяВК);
Сообщить(об);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
net = Новый (ИмяВК);
Сообщить(net);
net.Show("yes");


Windows x86
Результат: Нет
Тип не определен (AddIn.ExtTest)
{(8)}:net = Новый (ИмяВК);
{ВнешняяОбработка.КонсольКода.Форма.Форма.Форма(13)}:       Выполнить(ТекстДляВыполнения);
COMОбъект
278 H A D G E H O G s
 
16.12.20
23:24
Ты хотя бы убедился, что dllки драйвера имеют экспортные функции?
279 H A D G E H O G s
 
16.12.20
23:25
А C# умеет в указатели?
280 H A D G E H O G s
 
16.12.20
23:29
Будет забавно, если dll ка потребует какую нибудь структурку на вход.
281 Кирпич
 
16.12.20
23:32
У меня есть этот SDK
Там нативная DLL и заголовочный файл С++ (я его даже в pascal перевел для интересу)
есть там еще файл C# с биндингами к этой DLL
и примеры на C#, как юзать эту DLL
есть еще docx  с описанием функций
282 Кирпич
 
16.12.20
23:33
на китайском. запускать всё это страшно :)
283 H A D G E H O G s
 
16.12.20
23:34
(281) Вот бы кто перевел в pascal йобу для МобильногоКлиента
284 Кирпич
 
16.12.20
23:34
шо такое йоба?
285 H A D G E H O G s
 
16.12.20
23:38
(284) Нечто хтоническое, за гранью гуманоидного восприятия мира, созданное выходцами из темных миров Ктулху. Вендиго, от мира ПО, пожирателей лосятины.
Как пример
http://catalog.mista.ru/1c/articles/987286/
Раздел 2
286 Кирпич
 
17.12.20
00:10
и правда лосятина какая то. а есть смысл на 1с лепить мобильное? мне даже в голову такое не приходило
287 H A D G E H O G s
 
17.12.20
00:18
(286) Это ВКшка для Android (МобКлиент и МобПриложение).

Ну да, нужно, если хотишь получать ВнешнееСобытие() в Ведроиде.
Раньше был Google Clouds Message, который можно было сэмулировать внутри Ведроида, вне сервера Гугл, а потом 1С перешла на Fireclouds Message и там уже без Google сервера никак. А в нем задержки по несколько секунд. Поэтому никаких push, только хардрок через ВК
288 H A D G E H O G s
 
17.12.20
00:19
(286) Я эту лосятину осилил и сконвертил в Android Studio и даже смог подключить отладчик и даже почти чето понял. Но вот именно "почти". В родной Дельфишечке было бы уютнее.
289 Garykom
 
гуру
17.12.20
08:34
(283) А поступить как я сделал?
Одна на C++ коммуникационная ВК мобильная и внешняя часть на чем угодно в т.ч. паскаль
290 Гений 1С
 
гуру
17.12.20
09:07
(278) что такое экспортные функции в твоем понимании?
291 Гений 1С
 
гуру
17.12.20
09:10
Гм, если не получится побороть тонкого, придется на CPP писать.
292 acht
 
17.12.20
09:24
Обсуждение событий будущего времени, это так трогательно...
293 Serginio1
 
17.12.20
09:38
(279) Конечно умеет. Есть указатели IntPtr
Вот пример вызова виртуального метода C++
https://ru.stackoverflow.com/questions/589886/%d0%9a%d0%b0%d0%ba-%d0%bf%d0%be%d0%b4%d1%80%d1%83%d0%b6%d0%b8%d1%82%d1%8c-c-%d0%b8-c-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-com-%d0%bd%d0%b0%d0%b8%d0%b1%d0%be%d0%bb%d0%b5%d0%b5-%d0%bf%d1%80%d0%be%d1%81%d1%82%d1%8b%d0%bc-%d1%81%d0%bf%d0%be%d1%81%d0%be%d0%b1%d0%be%d0%bc/592713#592713

В моем Ъ используются для обратных вызовов и выделения памяти
294 Serginio1
 
17.12.20
09:49
(277) Код случайно не на сервере выполняется?
295 Гений 1С
 
гуру
17.12.20
09:52
(294) не, файловая база. дома тестирую жи. из DLL тоже не грузит. ну наверно 1с умеет грузить из ДЛЛ только то, что под regsvr32 заточено, а не под regasm
296 Гений 1С
 
гуру
17.12.20
09:53
короче, если по ТК идей не будет, не буду изобретать велосипед и напишу на C++, по образцу 1с. так более технологично будт
297 Кирпич
 
17.12.20
09:55
(296) Ну вот. Плавно приближаемся к (23)
298 Garykom
 
гуру
17.12.20
10:06
(297) А потом удивляются а что это ваша платная биометрия работает как студенческая поделка?
299 Garykom
 
гуру
17.12.20
10:07
(295) 1С умеет грузить все что правильно написано. И правильно грузят в нужном месте и правльное.
300 Garykom
 
гуру
17.12.20
10:08
300
301 Serginio1
 
17.12.20
10:19
(295) А зачем тебе вообще ВК если ты события не используешь?
Взял бы мою компоненту и не парился. Там кстати есть поддержка событий на уровне Подключить Обработчик.
Посмотрел бы подключается ли моя ВК
302 Serginio1
 
17.12.20
10:33
(301) Ну а так если .Net это просто обертка над нативными библиотеками, то проще нанять студента и оформить это на C++
303 Гений 1С
 
гуру
17.12.20
10:38
(301) мне нужна совместимость с прошлой ВК на уровне названия методов.
304 Гений 1С
 
гуру
17.12.20
10:38
(299) прости, но 0 бит
305 Гений 1С
 
гуру
17.12.20
10:39
(299) 3 раза "правильное" повторил. Это реклама 1С? ггг
306 Garykom
 
гуру
17.12.20
10:40
(302) >нанять студента

Да где вы этих студентов берете и чтобы оно работало без глюков?
307 Garykom
 
гуру
17.12.20
10:41
(305) Это попытка намекнуть что проблема не в 1С а в кривых руках ))
308 Garykom
 
гуру
17.12.20
10:42
(306)+ Без глюков на всех версиях платформы 1С и видов клиентов и на сервере.
309 Кирпич
 
17.12.20
11:01
(306) на фриланс ру или на мисте
310 Garykom
 
гуру
17.12.20
11:02
(309) И много тут программистов C++ ?
311 Кирпич
 
17.12.20
11:07
(310) Навалом
312 Кирпич
 
17.12.20
11:07
(310) Ты, например.
313 Гений 1С
 
гуру
17.12.20
11:12
(307) не исключено. Но т.к. причина кривизны не разъясняется, то 0 бит.
314 Serginio1
 
17.12.20
11:15
(0) Не знаю, что у тебя не получается. Сейчас не поленился и попробовал ТестВКУФ.erf в тонком клиенте. Всё работает!
315 Гений 1С
 
гуру
17.12.20
11:19
(314) код скинь подключения, гляну, саму DLL на [email protected]
316 Гений 1С
 
гуру
17.12.20
11:22
317 Serginio1
 
17.12.20
11:27
Я же тебе ссылки все давал.
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

Там есть
Исходники и DLL можно скачать здесь http://files.rsdn.org/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

Соответственно код ВК находится в ...\ФайлыNetObjectToIDispatch\NetObjetToIDispatch45\NetObjetToIDispatch45\AddinFor1C.cs
Сама Dll "D:\Programms\ФайлыNetObjectToIDispatch\DLLNetObjetToIDispatch45\NetObjetToIDispatch45.dll"

Код вызываемой библиотеки в папке ФайлыNetObjectToIDispatch\ТестВК\
Ну и внешний отчет ..ФайлыNetObjectToIDispatch\ВнешниеОтчеты\ТестВКУФ.erf
В макете уже лежит ТестВК.Dll
318 Garykom
 
гуру
17.12.20
11:27
(312) Из меня программист С++ в лучшем случае на уровне джун++
319 Кирпич
 
17.12.20
11:57
(318) Да пойдет. Шо такое указатель понимаешь и хватит.
320 Кирпич
 
17.12.20
12:01
(313) Если тебе по рукам в детстве мопед не проехал, то причина кривизны генетическая. Чо тут объяснять.
321 acht
 
17.12.20
12:06
(313) Геня, ты со своим "0 бит" тааакой клёёёвый, жаль что не умешь ничего.
322 Garykom
 
гуру
17.12.20
12:14
(313) Сенкс за идею.
Теперь я знаю как назвать франч если вдруг захочу его открыть: "Нулевой Бит"
323 Aswed
 
17.12.20
12:17
Капец. Гений ты до сих пор ещё что то можешь писать!? Офигеть просто!
Я думал что ты давно уже подхватил какой нить трипер и скопытнулся от него))))))
324 Garykom
 
гуру
17.12.20
12:17
(322)+
Стоит взвод молодых бойцов.
Старшина:
- По порядку номеров рассчитайсь!
Солдат-программист:
- Можно вопрос?
- Можно...
- А в какой системе? Десятичной? Шестнадцатеричной?
- Для дураков объясняю, в десятичной!
- Понял! Нулевой!
325 Кирпич
 
17.12.20
12:18
(321) Щас его Serginio1 научит делать ВК через жопу. В 2000 году наш гений забыл С++, а в 2020 году он вспомнит C#
326 Ненавижу 1С
 
гуру
17.12.20
12:21
(319) указатели в С были еще, тут как минимум надо знать про ссылки
327 Serginio1
 
17.12.20
12:22
(325) Ну он хоть старается "Вспомнить Всё". Через жопу или нет, но использовать код в 1С это оочень легко.
Намного проще чем писать ВК на С++ и прочее.
328 Кирпич
 
17.12.20
12:26
(327) Я не знаю легко там или нет, но без твоей помощи оно, по моему, ни у кого не получается
329 Гений 1С
 
гуру
17.12.20
12:26
(325) по прежнему 0 бит.
(317) а, ты про свою компоненту, а как ее протестить, есть какой-нибудь метод типа Show или About? Мне нужно просто проверить как ее в ТК зарегить?
330 Гений 1С
 
гуру
17.12.20
12:27
(327) мне кажется этот подход не технологичным, прости. Хотя может и ошибочно. Но использовать ВК-прокладку, чтобы юзать методы другой DLL, бррр
331 Гений 1С
 
гуру
17.12.20
12:28
(322) А Первый Бит не предъявит? Лучше "Нулевой Байт" или даже "Нулевой Терабайт"
332 acht
 
17.12.20
12:28
(323) > трипер
https://medconfer.com/node/5276
333 Serginio1
 
17.12.20
12:28
(328) Потому, что без знания .Net тяжело сразу писать. Нужно хотя бы книжки почитать.
А так тот, кто знаком с .Net все достаточнно просто
334 Гений 1С
 
гуру
17.12.20
12:30
(333) я вот подумал, что клиенту это .NET не вперлось. Лучше на чистом C++ написать и не париться о regasm и прочих бубнах с танцем. Этим и займусь, пожалуй
335 Кирпич
 
17.12.20
12:31
(333) Гений не читает книжек. Он копипастит и проверяет работает или нет. Если происходит зависание компьютера, то перезагрузка и заново.
336 Garykom
 
гуру
17.12.20
12:32
(330) >использовать ВК-прокладку, чтобы юзать методы другой DLL, бррр

Ты еще не понял что тебе придется тащить с собой tc-b_new_sdk.dll и юзать из своей ВК на чем угодно?
337 Гений 1С
 
гуру
17.12.20
12:32
(335) Чтобы сразу исключить кривотолки, спрошу напрямую - Кирпич, какое у тебя место на инфостарте? ;-)
338 Гений 1С
 
гуру
17.12.20
12:32
(336) это не критично, я и раньшее ее тащил
339 Кирпич
 
17.12.20
12:33
(334) " клиенту это .NET не вперлось" Нифига себе! Да там же linq!
340 Garykom
 
гуру
17.12.20
12:33
(335) А как он успевает?
341 Serginio1
 
17.12.20
12:34
(329) Ну не читатель ты. Ты смотрел код?
AddinFor1C.cs
[ComVisible(true)]
[ProgId("AddIn.GlobalContext1C")]
[Guid("8693BBEC-C964-4478-AFCB-E8D15FD8F4F6")]

public class GlobalContext1C : IInitDone, ILanguageExtender

Она нужна для получения Контекста 1С. И вызывается одно свойство
public void FindProp([MarshalAs(UnmanagedType.BStr)]
    String propName,
     ref Int32 propNum)
    {
        if (propName.Trim().ToUpper() == "ГЛОБАЛЬНЫЙКОНТЕКСТ")
        {
            propNum = 0;
            return;
        }
        throw new COMException(String.Format("Свойство {0} не поддерживается", propName));

    }
  public void GetPropVal(
      Int32 propNum,
      [MarshalAs(UnmanagedType.Struct)]
    ref object propVal)
    {
        if (propNum == 0) propVal = глобальныйКонтекст;
    }
Можешь также и использвать её и у себя. Передавать этот кнтекст в свой объект а с ним работать как IDispatch объектом.
Либо прописывать всю хрень в
void GetNMethods(ref int plMethods);
    void FindMethod(string bstrMethodName, ref int plMethodNum);
    void GetMethodName(int lMethodNum, int lMethodAlias, ref string pbstrMethodName);
    void GetNParams(int lMethodNum, ref int plParams);
    void GetParamDefValue(int lMethodNum, int lParamNum, ref object pvarParamDefValue);
    void HasRetVal(int lMethodNum, ref bool pboolRetValue);
    void CallAsProc(int lMethodNum, [MarshalAs(UnmanagedType.SafeArray)] ref Array paParams);
    void CallAsFunc(int lMethodNum, ref object pvarRetValue, [MarshalAs(UnmanagedType.SafeArray)] ref Array paParam);
342 Serginio1
 
17.12.20
12:35
(334) Согласен пиши!!!
343 Гений 1С
 
гуру
17.12.20
12:35
(341) прости, а как это поможет регистрации ВК в тонком?
344 Гений 1С
 
гуру
17.12.20
12:36
(341) Да, мне проще прописывать в GetNMethods
345 Кирпич
 
17.12.20
12:36
(337) А как мое место на инфостарте влияет на мои способности?
346 Serginio1
 
17.12.20
12:36
(334)то есть раньше regsvr32 тебя не напрягало?
347 Гений 1С
 
гуру
17.12.20
12:36
(345) на способности "пиздеть" никак, продолжай в том же духе, просто твой белый шум несколько однообразен, в качестве обратной связи
348 Serginio1
 
17.12.20
12:37
(343) Ты запускал ТестВКУФ.erf в тонком? Там как раз для достука к контексту 1С используется ВК
349 Гений 1С
 
гуру
17.12.20
12:37
(346) ну я хотя бы победил регистрацию таких компонент в тонком в свое время. ;-) а тут еще надо искать номер последней сборки, regsvr32 он то оидн
350 Гений 1С
 
гуру
17.12.20
12:38
(348) погоди, как 1С регистрирует ВК в тонком?
351 Ненавижу 1С
 
гуру
17.12.20
12:38
(334) не осилил, понятно
352 Кирпич
 
17.12.20
12:39
(347) Ну так ты не обращай внимание на мой белый шум
353 Serginio1
 
17.12.20
12:39
(337) А как это место можно посмотреть?
(350) Все так же через regasm
354 Garykom
 
гуру
17.12.20
12:40
(342) нафига если можно взять https://github.com/jtisler/anviz и прямо из 1С http запросами?
Но там в протоколе их придется разобраться
355 Гений 1С
 
гуру
17.12.20
12:40
(352) ок, договорились.
(351) может оно и не надо
(353) http://catalog.mista.ru/top100/user/index.php?period=ALL&sort=rate
Только этих regasm много, возникают нюансы с версиями сборок, ну его в сад, этот #NET
356 Кирпич
 
17.12.20
12:41
(354) Кому разбираться то
357 Garykom
 
гуру
17.12.20
12:41
(355) "не шмогла"
358 Гений 1С
 
гуру
17.12.20
12:41
(354) у Anviz нет открытого HTTP-API, хотя это конечно, странно, но мы имеем таких китайцев, а не других
359 Serginio1
 
17.12.20
12:43
Кстати
COM+-компонент для 1С на C#
http://rsdn.org/article/dotnet/cs1c.xml
И можешь вызывать хоть из 32 или 64 разрядных 1С
360 Гений 1С
 
гуру
17.12.20
12:43
(359) попробуй ее на ТК зарегить ради интереса, мне лень.
361 Serginio1
 
17.12.20
12:45
http://rsdn.org/forum/src/751285.flat#751285
(360) У меня куча дел, а я здесь помогаю. Все ухожу
362 Serginio1
 
17.12.20
12:45
(360) Ты бы хоть, что то попробовал, что я даю. У меня то работает.
363 acht
 
17.12.20
12:47
(360) > мне лень
0 бит
364 Ненавижу 1С
 
гуру
17.12.20
12:48
А на Си++ в каком компиляторе и IDE будешь делать?
365 Гений 1С
 
гуру
17.12.20
12:48
Кстати по Native API:
Типы VTYPE_INTERFACE, VTYPE_VARIANT не поддерживаются

Я правильно понимаю, что массив COMSAFEARRAY в NATIVE тоже не поддерживатеся? или поддерживается?
366 Гений 1С
 
гуру
17.12.20
12:48
(364) на VC, раз скачал
367 Кирпич
 
17.12.20
12:50
(365) Очень правильно понимаешь. Переходи к пункту (33) или дай денег Garykom и он всё устроит
368 Кирпич
 
17.12.20
12:51
ой (23)
369 Гений 1С
 
гуру
17.12.20
12:51
(367) Хотя вот это внушает надежду, что передаваемые из 1С значения поддерживаются: "Возвращаемые значения типа VTYPE_ARRAY и VTYPE_BYREF не поддерживаются."
370 CODA
 
17.12.20
12:51
Тот случай, когда по названию топика узнал афтора.
371 Garykom
 
гуру
17.12.20
12:52
(367) Не уверен что у него денег хватит
Мне как то влом в https://github.com/jtisler/anviz/blob/master/Docs/CommsProtocol.pdf разбираться
372 Кирпич
 
17.12.20
12:52
Компонента может возвращать любые двоичные данные, например – сформированное изображение штрих-кода. Для этого данные помещаются в поле pstrVal структуры tVariant, в strLen – размер данных, а тип устанавливается в VTYPE_BLOB. "1С:Предприятие" использует для них тип ДвоичныеДанные.
373 Кирпич
 
17.12.20
12:54
(371) Да там 10 функций скопипастить из примера
374 Кирпич
 
17.12.20
12:54
Я бы за десятку сделал бы
375 Garykom
 
гуру
17.12.20
12:58
(373) я не уверен можно ли с замками делать то что он хочет
376 Гений 1С
 
гуру
17.12.20
12:59
(374) то "Денег не хватит", то "За десятку". ;-) не думаю, что имеет смысл делегировать, мне еще с этой ВК придется долго жить, лучше самому.
377 Гений 1С
 
гуру
17.12.20
12:59
(375) ну на Бейсик Зольдатен я то делал. ;-)
378 Гений 1С
 
гуру
17.12.20
13:27
ГМ, в VC пример не открывается:
Невозможно найти средства сборки для v120_xp. Установите v120_xp, чтобы выполнить сборку с использованием средств сборки v120_xp.
https://askdev.ru/q/ne-udaetsya-nayti-instrumenty-sborki-dlya-v120-platform-toolset-v120-23106/
379 Serginio1
 
17.12.20
13:29
(355) Пиши под .Net Standard 2 или .Net Framework 4.6.1 и проблем не будет.
Создай батничек и регистрируй
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe"
"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe"

Проблем нет. Но пиши лучше на С++
380 Гений 1С
 
гуру
17.12.20
13:37
(379) так в тонком не регится
381 Serginio1
 
17.12.20
13:42
(380) Ну у меня то работает. Я не знаю почему у тебя не работает. Ты так мой пример и не попробовал.
382 Serginio1
 
17.12.20
13:43
Запусти РегистрацияКомСервера.exe от администратора
383 Кирпич
 
17.12.20
13:49
(378) Срочно переходи на C#
384 Кирпич
 
17.12.20
13:50
+(378)Пока оно не начало опухать
385 H A D G E H O G s
 
17.12.20
13:51
(378) Бггггг

вы используете Visual C++ 2012, который является v110. v120 означает Visual C++ 2013.
таким образом, либо изменить параметры проекта для использования toolset v110, либо установить Visual Studio 2013 на этом компьютере и использовать VS2013 для его компиляции.
386 Гений 1С
 
гуру
17.12.20
13:51
(382) РегистрацияКомСервера.exe - это что за утилита?
387 H A D G E H O G s
 
17.12.20
13:51
Бгагага
Суко, до слёз.
388 H A D G E H O G s
 
17.12.20
13:52
Суровые трушные ЯПы поют Сергею солдатский гранж
https://youtu.be/ATdaQv1qcP0
389 Serginio1
 
17.12.20
13:58
(386) Ты хоть скачал http://files.rsdn.org/19608/%d0%a4%d0%b0%d0%b9%d0%bb%d1%8bNetObjectToIDispatch.zip

Пойми ты даже если не хочешь её использовать, там куча примеров. Та же ВК итд
За чем я тут распинаюсь?
390 Гений 1С
 
гуру
17.12.20
14:01
(389) скачал и чем это мне поможет, если я решил на Си++ перейти?
391 H A D G E H O G s
 
17.12.20
14:01
(389) Я не знаю, зачем? Я вообще с вас чешуею, носитесь с какими то сборками, regasm-ами.

Открыл Delphi, добавил в проект новое описание метода и пиши.
Если есть какая-то отдельная подсистема - добавил новый объект, в него накидал методов и пиши.
392 Кирпич
 
17.12.20
14:02
(389) Да подожди ты. Твои ссылки с первого раза в адресной строке невозможно правильно набить. Какую нибудь букву пропустишь и заново набирай
393 Гений 1С
 
гуру
17.12.20
14:02
(389) я запустил регистрацию ком-сервера для своей компоненты, но в ТК все равно после этого не регистрируется:
ИмяВК="AddIn.ExtTest";    
об = Новый COMОбъект(ИмяВК);
Сообщить(об);
СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
ок=ПодключитьВнешнююКомпоненту(ИмяВК);
Сообщить("Результат: " + ОК);
net = Новый (ИмяВК);
Сообщить(net);
net.Show("yes");
394 Кирпич
 
17.12.20
14:02
(391) А как же linq?
395 H A D G E H O G s
 
17.12.20
14:03
(394) Я не знаю, что это
396 Гений 1С
 
гуру
17.12.20
14:03
(391) Delphi - это ж голимый Паскаль? Или туда уже Си добавили?
397 H A D G E H O G s
 
17.12.20
14:04
(396) Голимейший.
398 H A D G E H O G s
 
17.12.20
14:04
Походу заяц несудьбы написать Сергею ВК
https://youtu.be/jtNT_NBoXWw
399 Кирпич
 
17.12.20
14:05
(391) Delphi умер. Ты программируешь на мёртвом. Это отвратительно. И linq нет.
400 Кирпич
 
17.12.20
14:05
(398) картинка хорошая. на майку
401 H A D G E H O G s
 
17.12.20
14:06
(399) Да мне фиолтетово, кто там умер, пока есть новые выпуски.
402 Гений 1С
 
гуру
17.12.20
14:06
(398) А не спешите вы нас хоронить. Не ссы, прорвемся. Пока я еще не столкнулся даже с вопросами ВК, если надо пересоберем заново в VC
403 H A D G E H O G s
 
17.12.20
14:07
(402) Ты проверил наличие экспортных функций у твоих dll? Вдруг там через закрытую интерфейсную таблицу, прям как в 1С 8.x :-)
404 Кирпич
 
17.12.20
14:08
(403) Я проверил. Всё там есть.
405 H A D G E H O G s
 
17.12.20
14:08
406 Кирпич
 
17.12.20
14:10
(401) Так там за новые выпуски платить надо
407 Кирпич
 
17.12.20
14:11
(405) Ты его до слёз доведешь
408 H A D G E H O G s
 
17.12.20
14:19
(406) Ой, всё.
409 Кирпич
 
17.12.20
14:19
Надо прекращать этот балаган. Этого добра полный интернет и за сущие копейки
https://www.time-control.ru/kak-kupit/price/
410 H A D G E H O G s
 
17.12.20
14:20
(409) Миссклик?
411 Кирпич
 
17.12.20
14:21
(408) Ну а зачем платить за мёртвое. Оно же умерло.
412 Кирпич
 
17.12.20
14:21
(410) Я не понимай
413 H A D G E H O G s
 
17.12.20
14:24
(411) Чтобы быстро и без проблем сделать под себя то, что тебе нужно. На человечьем языке. Без сахара и хуерги по-типу лосиного кода, который я тебе вчера показывал.
414 H A D G E H O G s
 
17.12.20
14:24
(412) Ошибся темой? Не понял, зачем тут эта ссылка в (409)
415 Кирпич
 
17.12.20
14:28
(414) Ну там типа есть Anviz и 1c. И почти у каждой конторы, где продают Anviz, есть матня для 1С
https://www.time-control.ru/vozmojnosti/biometricheskie-sistemy/integratsiya-s-1s/
416 Кирпич
 
17.12.20
14:30
Но гений решил, что у него эксклюзив какой то. Оно может быть эксклюзивом только потому что на бейсике и глючит. А в остальном как у всех.
417 H A D G E H O G s
 
17.12.20
14:32
(415) Аа. Да не, пусть Сергей вдохнет взрослый мир всеми отверстиями.
418 Кирпич
 
17.12.20
14:35
(413) Ну это у кого как мозги устроены. Кому то хуерга кажется красивой, а экран должен быть черныйт с белыми буквами и без мышки. И слезы брызгают от восторга, когда на черном экране появляются вдруг красные буквы.
419 Garykom
 
гуру
17.12.20
14:38
(418) Это все фигня пока экран двумерный как и интерфейсы на нем.
В планах же трехмерность аля дополненная или VR и тут уже красные буквы ни о чем ))

Когда то были перфокарты и после них да монохромный мелкий экранчик хотя бы текстовый был супер.
Потом появились графические пиксельные (кстати всерьез рассматривали векторные) и курсор мышки.
420 Serginio1
 
17.12.20
14:41
(393) Но мою ВК ты упорно смотреть не хочешь. При этом она работает!
421 Garykom
 
гуру
17.12.20
14:46
(420) покажи пример как через твою ВК загрузить стороннюю DLL и вызвать оттуда метод
422 Гений 1С
 
гуру
17.12.20
14:50
(415) Шта? По второму кругу пошли? Я же писал, чего в типовых не хватает.
423 Гений 1С
 
гуру
17.12.20
14:51
(420) я хочу, чтобы моя работала. И если она не работает под тонкого клиента, увы, при всей красоте - в топку.
424 Гений 1С
 
гуру
17.12.20
14:52
(417) Это не повод для гордости, а показатель кризиса IT, что 1С выложила пример, который не компилируется в VC, а VC внятно не может написать, почему не может переварить сборку и нужно много плясок с галочками при установке этой же VC, чтобы скомпилировать простую DLL. Я в итоге разберусь, но сам факт бардака в индустрии налицо
425 Serginio1
 
17.12.20
14:54
(424) Угу посмотреть работающий вариант и сравнить с неработающим это не путь Гения!
Зарекся ведь заходить в эту ветку.
426 Garykom
 
гуру
17.12.20
14:55
(424) Не тупи и возьми VS2010 на WinXP и все у тебя в примере от 1С скомпилится ))
427 Гений 1С
 
гуру
17.12.20
14:56
(425) да проблема не в этом, я подумал, что все же NET - это лишний гимор, тем более раз 1С не размещает его в своих примерах. Не хочу свою красивую ВК писать на этом Говнище
428 Serginio1
 
17.12.20
14:56
429 Garykom
 
гуру
17.12.20
14:56
(426)+ Заодно открой для себя виртуалки, а то если каждую студию ставить то комп загаживается быстро
430 Гений 1С
 
гуру
17.12.20
14:57
(426) так, только что ушел от языка VB 2010 года и ты мне предлагаешь опять язык 2010 Года? ;-) нет уж, увольтес
431 Кирпич
 
17.12.20
14:57
(425) Телепатический искусственный интеллект скоро научится расставлять автоматически все галочки, о которые тебе понадобятся. Подожди немного.
432 Garykom
 
гуру
17.12.20
14:57
(428) Да не нужен ему никакой контекст, ему пример (421) покажи через NetObjectToIDispatch45
433 Гений 1С
 
гуру
17.12.20
14:57
(429) может более легкий компилер есть из списка? Мне визуальные рюшечки не нужны:
Microsoft Visual C++,
Delphi,
C++ Builder,
Xcode,
Eclipse,
gcc,
CMake.
434 Serginio1
 
17.12.20
14:58
http://catalog.mista.ru/1c/articles/457898/

врап=новыйCOMОбъект("NetObjectToIDispatch45");
     Попытка
        //Проверим зарегистрирована ли нужная версия NetObjectToIDispatch45
         тест=НовыйCOMОбъект("AddIn.GlobalContext1C");
         тест=Неопределено;
     Исключение
        ФайлNetObjetToIDispatch45=ЗаписатьМакет("NetObjectToIDispatch","NetObjetToIDispatch45");
         ЗарегистрироватьDLL(ФайлNetObjetToIDispatch45);
     КонецПопытки;


     ФайлТестВК=ЗаписатьМакет("ТестВК");

    Если ПодключитьВнешнююКомпоненту("AddIn.GlobalContext1C") Тогда
        объект=Новый ("AddIn.GlobalContext1C");
         ГлобальныйКонтекст=объект.ГлобальныйКонтекст;
         AppDispatch=ГлобальныйКонтекст.AppDispatch;
         AppDispatch.Сообщить("Привет");
         Сообщить(AppDispatch.СтатусСообщения.Важное);
     иначе
        сообщить("Компонента не загружена");
     КонецЕсли;
Сам глобальный контекст получаем из InitDone
public void Init([MarshalAs(UnmanagedType.IDispatch)]
     object connection)
    {
        глобальныйКонтекст = connection;
        Marshal.GetIUnknownForObject(глобальныйКонтекст);

    }
435 Garykom
 
гуру
17.12.20
14:58
(433) Под винду только MS Visual Studio, вот под линукс или мак можно gcc
436 Serginio1
 
17.12.20
14:59
(432) Он хочет свою старую ВК переделать. Это его путь
437 Гений 1С
 
гуру
17.12.20
14:59
(436) потому что старая умеет то, что не умеют новые модные, дорогие и блестящие. ;-)
438 Гений 1С
 
гуру
17.12.20
15:00
(435) шта, а CMAKE?
439 Кирпич
 
17.12.20
15:00
(433) CMake самый лучший компилятор. Качай его срочно
440 Garykom
 
гуру
17.12.20
15:00
(439) ыыы
441 Serginio1
 
17.12.20
15:01
(432) Я ему все показывал. Он просто игнорирует и идет своим путем. Его путь это С++ и нативная ВК, которая поддерживать только примитивные типы, строки и массив байтов
Ъ не зря же придуман
442 Garykom
 
гуру
17.12.20
15:02
(439) но да согласен что cmake можно и под вин юзать )) но MSVC один фиг нужен
443 Кирпич
 
17.12.20
15:02
Потому что Delphi умер, а Microsoft Visual C++ и Eclipse плохо компилируют Basic
444 Garykom
 
гуру
17.12.20
15:02
(441) ну так покажи пример того что ему надо
готовую dll стороннюю заюзать
445 Кирпич
 
17.12.20
15:03
(442) CMake чо компилятор что ли?
446 Гений 1С
 
гуру
17.12.20
15:06
(445) я откуда знаю, у 1С написано CMAKE
447 Кирпич
 
17.12.20
15:07
(441)  Serginio1, буква ять не у всех есть на клавиатуре :)
448 Гений 1С
 
гуру
17.12.20
15:07
Вообще, как с нуля в VC проект для ВК создать, подключив имеющиеся в демо-примере файлы? Может с этого боку зайти?
Я пока изменяю установку VC, поставил там несколько галочек, но это долго
449 Кирпич
 
17.12.20
15:08
(446) Ну если написано, то надо качать
450 Кирпич
 
17.12.20
15:09
(448) На инфостарте есть хорошая статья. Поищи
451 Кирпич
 
17.12.20
15:11
http://catalog.mista.ru/public/184119/

Но ты читать не будешь. Ты же не чайник какой нибудь. Ты С++ забыл.
452 Serginio1
 
17.12.20
15:12
(442) Я ему кучу ссылок на примеры давал. Он даже не скачал компоненту и исходные файлы и не запускал ТестВКУФ. Там примеры и ВК использования внешней DLL храняйщейся в макете. Не нужно ему это ...
453 Гений 1С
 
гуру
17.12.20
15:12
(451) я ее как раз читаю, но там автор сразу открывает проект, а у меня на этом затык. Вот я и думаю создать этот проект "с нуля", добавив туда нужные файлы
454 Гений 1С
 
гуру
17.12.20
15:13
(452) да, это мне не нужно. Если бы ВК зарегилась в тонком, тогда бы я еще подумал, но так похоже не стоит с NET связываться. К тому же еще неровен час заказчик захочет, чтобы на сервере запускалась, а NET это сможет? ТОлько Native Же, не?
455 Кирпич
 
17.12.20
15:15
(453) С нуля? Ну создай проект DLL и по инструкции от 1С.
456 Serginio1
 
17.12.20
15:16
(454) Ну да у меня работает, а у тебя нет. При этом ты даже разобраться не хочешь.
С плюсами еще куча настроек компиляторов библиотек. Удачи Сергей тебе. Ты думаешь тебе здесь помогут по С++?
Проще нанять человека и используя его код потихоньку изучать С++ и подправлять под свои потребности.
457 Кирпич
 
17.12.20
15:17
(453) На чем затык то? Шаблон от 1с компилится и работает. Платформу там поставь какую надо вместо 120 и всё
458 Гений 1С
 
гуру
17.12.20
15:17
(455) попробую, если так не взлетит (после изменения установки Визуал Студио)
459 Гений 1С
 
гуру
17.12.20
15:17
(457) счас, обновится студия, попробую. Пока что поменял платформу, не взлетело. погуглил - говорят, не установлена C++, посмотрим
460 Гений 1С
 
гуру
17.12.20
15:18
(456) дык а оно мне надо, если гимор на пустом месте. Какие у тебя предположения, почему в тонком не работает?
461 Serginio1
 
17.12.20
15:18
456+ Вон Кирпич за десятку готов сделать, это значительно проще чем самому изучать и ваять.
462 Serginio1
 
17.12.20
15:19
(460) У меня все работает. Что там у тебя не знаю. Мне то это не нужно.
463 Кирпич
 
17.12.20
15:19
(461) Я не собираюсь делать. Я просто сказал, за сколько сделал бы
464 Garykom
 
гуру
17.12.20
15:20
(445) оно вполне успешно может выполнить cl имяфайла.cpp
и заменить https://docs.microsoft.com/ru-ru/cpp/build/reference/nmake-reference?view=msvc-160
465 Кирпич
 
17.12.20
15:22
(464) cl имяфайла.cpp  я могу и сам в консоли набрать :)
466 Garykom
 
гуру
17.12.20
15:32
(465) и взять за это 10к ))
467 Кирпич
 
17.12.20
15:33
(466) ага. а если клиент гений, то и 20
468 H A D G E H O G s
 
17.12.20
15:37
469 Serginio1
 
17.12.20
15:50
Кстати попробуй для интереса зарегистрировать асинхронно
&НаКлиенте
Процедура ПроверитьВК(Команда)
        ProgID="AddIn.GlobalContext1C";

    // Вставить содержимое обработчика.
     Оповещение = Новый ОписаниеОповещения("УстановитьВК", ЭтотОбъект);
     НачатьПодключениеВнешнейКомпоненты(Оповещение, ProgID);

КонецПроцедуры

&НаКлиенте

Процедура УстановитьВК(Подключено,Параметры) Экспорт
    врап=новый COMОбъект("NetObjectToIDispatch45");

  ProgID="AddIn.GlobalContext1C";
    Попытка
        Вк = Новый (ProgID);
      
    Исключение
        стр=ОписаниеОшибки();
        ПоказатьПредупреждение(, "Компонента  не подключена"+стр);
         Возврат
   КонецПопытки;

            ГК=Вк.ГлобальныйКонтекст;
        AppDispatch=ГК.AppDispatch;
        AppDispatch.Сообщить("Привет");
        Сообщить(AppDispatch.СтатусСообщения.Важное);

КонецПроцедуры
470 Кирпич
 
17.12.20
15:54
(469) От ты настырный. Гений присягнул С++ сатане и уже не вернется.
471 Garykom
 
гуру
17.12.20
16:06
(470) c++ это ему не vb6 - не осилит
472 Кирпич
 
17.12.20
16:12
(471) Он не виноват. Это кризис в IT
473 Garykom
 
гуру
17.12.20
16:18
(472) Нет никакого кризиса, есть растущий рынок.
Даже сейчас до сих пор есть куча организаций у которых нет учета или он в тетрадке/экселе.
474 acht
 
17.12.20
16:21
Вот и еще завершен еще один проект, подобный крутейшему FreeRad.
475 Кирпич
 
17.12.20
16:29
(474) Да не. Он C++ качает.
476 Кирпич
 
17.12.20
16:31
(473) Но это, в основном, мелкие наркодилеры
477 H A D G E H O G s
 
17.12.20
17:23
Немного отвлекся.
Сергей уже выкатил в продакт свое творение?
478 Arbuz
 
17.12.20
17:36
Не могу понять, что хуже, лютый цинизм здорового 1С-нега (думаю надо говорить "1С-нигга") или легкая умственная отсталость?
479 Garykom
 
гуру
17.12.20
18:14
(478) Успешным 1Сником вполне можно стать с легкой умственной отсталостью
480 Кирпич
 
17.12.20
18:34
(479) Чем легче отсталость, тем круче одинесник
481 Гений 1С
 
гуру
17.12.20
19:12
(469) я ранее когда бился с тонким, пробовал асинхронно, не помогает.
482 Гений 1С
 
гуру
17.12.20
19:13
(471) тю. не боги С++ обжигают
483 Ненавижу 1С
 
гуру
17.12.20
19:22
(482) повторяется, см. (243)
484 NorthWind
 
17.12.20
19:22
(122) В ВК ооп не требуется

Да ну? Там даже ничего ни от чего не наследуется?
485 Garykom
 
гуру
17.12.20
19:41
(482) ты уже неосилил C# а С++ оно сложней
486 jbond
 
17.12.20
20:05
(479)  судя по этому треду в 1С идут все таки люди с F73.x4
487 jbond
 
17.12.20
20:10
(424) лоол.

Ты жалуешься на то, что у тебя не скомпилировалось? А ты сколько лет в айти?

Все примеры вообще выкладываются as is без каких либо гарантий на компилируемость и работоспособность.

Это стандартная ситуация в айти.
488 jbond
 
17.12.20
20:18
(430) ты будешь смеяться, то VS2010 считается среди шарпистов ПОСЛЕДНЕЙ нормальной версией студии с шарпом. Каким то аналогом  Delphi 7.

Кстати из-за недоступности для продажи VS2010 многие фирмы для разработки на шарпе до сих пор используют давно умерший SharpDevelop.
489 jbond
 
17.12.20
20:22
(478) F73.14
490 Garykom
 
гуру
17.12.20
20:40
(488) Если честно то глубоко пофиг какую версию VS (после 2003) использовать, в любой можно собрать C++ ВК для 1С
491 Serginio1
 
17.12.20
20:41
(488) Поверь мне шарписту .Net Framework 3.5 это отстой по сравнению с .Net Framework 4.6.1
А уж тем более .Net 5 который Core.
Про SharpDevelop даже не слышал.

Он уже на С++, там другие библиотеки, настройки компилятора. Помню сам потратил время
492 Serginio1
 
17.12.20
20:43
(490) А как же C++17 https://ru.wikipedia.org/wiki/C%2B%2B17
493 Serginio1
 
17.12.20
20:44
(0) Я тебе кучу ссылок давал, а там есть ВК на С++
http://catalog.mista.ru/1c/articles/534901/

Там и проект уже под VS 2015 был. Можешь оттуда взять
494 jbond
 
17.12.20
21:19
(491)  я как бе тоже шарпист. И я знаю, о чем говорю.

У нас в банке в QA для разработки утилит на шарпе используется SharpDevelop.

Сам основной инструментарий Ranorex базируется на SD.

VS мы не используем, так как он не нужен.
495 Кирпич
 
17.12.20
21:44
(494) В каждой банке свои причуды. Чота этот SharpDevelop лет пять не обновлялся. Видимо он такой хороший, что и обновлять нечего. Или забросили. Я тоже в нём чота писал когда то. Потом Code поставил.
496 H A D G E H O G s
 
17.12.20
21:50
(495) Там у них своя атмосфера.
497 jbond
 
17.12.20
21:59
(495) обычно в айти Н лет не обновляется не означает, что умер.

Регулярные обновления за деньги может означать, что у производителя проблемы с финансами.
498 jbond
 
17.12.20
22:01
(495)  ты не сможешь на базе VS создать свой продукт и выпускать его коммерчески.
499 Кирпич
 
17.12.20
22:10
(498) Да мне как бы и не надо
500 jbond
 
17.12.20
22:14
(499) Ranorex это продукт, основанный на SD.

Без SD его бы не существовало бы.
501 lodger
 
17.12.20
22:20
500 уже было.
ВК уже написали?
502 Кирпич
 
17.12.20
22:21
Микрософт пишет https://visualstudio.microsoft.com/ru/vs/community/
Для индивидуальных пользователей
Любой индивидуальный разработчик может создавать бесплатные или платные приложения с помощью Visual Studio Community.
503 Кирпич
 
17.12.20
22:21
(501) Вот ждем. С минуты на минуту выкатит релиз
504 H A D G E H O G s
 
17.12.20
22:26
Я даже отложил киберпанк в ожидании продуктива.
505 H A D G E H O G s
 
17.12.20
22:26
jbond, че у вас по Германии?
Какие ожидания по компоненте от Гения?
Будете покупать наши разработки за валюту?
506 Кирпич
 
17.12.20
22:31
Неплохо было бы и самого Гения продать. Но он, сука, свободный человек.
507 H A D G E H O G s
 
17.12.20
22:44
(506) Нельзя, он немецкий не знает, а там всякое бывает... Це Европа.
https://youtu.be/r9WKm0i4-EA
508 Кирпич
 
17.12.20
22:49
(507) Немецкий он забыл
509 jbond
 
17.12.20
23:18
(505) 1С уже давно ушла с рынка Германии
510 H A D G E H O G s
 
17.12.20
23:20
(509) У тебя как с юмором и пост-иронией?
511 jbond
 
18.12.20
00:17
(510) кто на мисте треды Гения читал, тот в цирке не смеётся.
512 Гений 1С
 
гуру
18.12.20
07:43
(484) там наследование одно и техническое. пустая формальность, так сказать.
(485) чем сложнее C++? если ты не заметил, то ВК под C# у меня скомпилировалась, но не работает в тонком. Это 1С не осилила. ;-) Да и я передумал биться с C# из-за регасм, нет и прочего. Решил, что C++ больше подходит для задачи.
(487) пардон, пример выкладывает не Вася Петров, а фирма 1С, которая выкладывает это как методический материал. Итого в 2020 году на сайте 1С по ВК нет ни одного рабочего примера. Норм? Ну может быть в эпоху Кризиса Айти норм.
(493) спасибо
(501) еще пишем.
513 Ненавижу 1С
 
гуру
18.12.20
07:57
(512) Это 1С не осилила

Нет. Это ты не осилил.
514 Кирпич
 
18.12.20
08:40
(512) "Итого в 2020 году на сайте 1С по ВК нет ни одного рабочего примера. Норм?" :))
Примеры же сделаны для программистов С++, а не для тупорылых чайников, которые этот С++ видят впервые в жизни.
515 ДенисЧ
 
18.12.20
08:44
(514) Зачем ты оскорбляешь Гения? Он второй раз видит уже...
516 Garykom
 
гуру
18.12.20
09:16
(509) Ну да избалованные европейцы хотят бесплатную версию платформы 1С
517 lodger
 
18.12.20
09:39
(516) ну так у них и так модель распространения отличается от РФ.
ключ разработчика вообще бесплатный вроде?
518 Garykom
 
гуру
18.12.20
10:08
(517) для них странно даже наличие некой "файловой версии" - когда есть express версии sql серверов
519 Garykom
 
гуру
18.12.20
10:10
(518)+ Ну и ЯП 1С слишком длинный и слишком напоминает Basic c Pascal.
Надо делать аналог синтаксиса (с транслитерацией в обе стороны в самом конфигураторе) по типу C# или Java
520 Ненавижу 1С
 
гуру
18.12.20
10:54
(519) как раз синтаксис европейцы переварят, это не американцы, они видели ABAP
и вообще европейская школа немного другая, хотя сейчас все смешалось
521 Serginio1
 
18.12.20
11:09
>> то ВК под C# у меня скомпилировалась, но не работает в тонком.
Ради справедливости то моя ВК работает в тонком. Во всяком случае в 64 разрядном.
У .Native ВК куча ограничений по сравнению с COM, но тут каждый выбирает для себя.
По моему так ВК то особо и не нужен, если не нужен доступ к контексту 1С.
Вместо IAsyncEvent можно использовать ДобавитьОбработчик.
COM ВК это больше для семерки,  а в особенности Native ВК для линукса. Везде куча ограничений
522 lEvGl
 
гуру
18.12.20
11:12
>>> если ты не заметил, то ВК под C# у меня скомпилировалась, но не работает в тонком. Это 1С не осилила. ;-)
а в чем принципиальная разница между толстым и тонким в этой части?
523 Гений 1С
 
гуру
18.12.20
11:35
(522) да чтоб я знал, 1с не дает инструментов диагностики для понимания причин отклонения регистрации ВК.
524 Гений 1С
 
гуру
18.12.20
11:35
(513) ну это уже зависит от точки зрения наблюдателя. Я сторонник юзер-френдли интерфейса, в который 1С не смогла. Она ведь не объясняет причин, почему компонента не регистрируется, просто Результат = Ложь и  нах, в сад.
525 Serginio1
 
18.12.20
11:41
(524) Мог бы сравнить с моей. Если бы моя у тебя заработала, можно было бы смотреть реализации. Если нет, то может проблема в Версии 1С или разрядности.
Но ты послал все в сад, даже не стал разбираться. Раз у тебя не работает, то все ...
526 Гений 1С
 
гуру
18.12.20
11:43
(525) сча, кстати
527 Гений 1С
 
гуру
18.12.20
11:55
(525) Проверил, твоя ВК в тонком подключается.
И? почему?

Кстати, зачем ты записываешь макет ТестВК?

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // Вставить содержимое обработчика.
    врап=новый COMОбъект("NetObjectToIDispatch45");
   // ФайлТестВК="d:\MyProgramms\ФайлыNetObjectToIDispatch\ТестВК\ТестВК\bin\Debug\ТестВК.dll";
    ФайлТестВК=ЗаписатьМакет("ТестВК");    
    
    Если ПодключитьВнешнююКомпоненту("AddIn.GlobalContext1C") Тогда
        объект=Новый ("AddIn.GlobalContext1C");
        ГлобальныйКонтекст=объект.ГлобальныйКонтекст;
        AppDispatch=ГлобальныйКонтекст.AppDispatch;
        AppDispatch.Сообщить("Привет");
        Сообщить(AppDispatch.СтатусСообщения.Важное);
    иначе
        сообщить("Компонента не загружена");
    КонецЕсли;

КонецПроцедуры
528 Гений 1С
 
гуру
18.12.20
11:59
(527) В консоли кода, без записи макета не работает:

врап=новый COMОбъект("NetObjectToIDispatch45");

    Если ПодключитьВнешнююКомпоненту("AddIn.GlobalContext1C") Тогда
        объект=Новый ("AddIn.GlobalContext1C");
        ГлобальныйКонтекст=объект.ГлобальныйКонтекст;
        AppDispatch=ГлобальныйКонтекст.AppDispatch;
        AppDispatch.Сообщить("Привет");
        Сообщить(AppDispatch.СтатусСообщения.Важное);
    иначе
        сообщить("Компонента не загружена");
    КонецЕсли;
529 Serginio1
 
18.12.20
12:00
(527) А что бы отдельно её не хранить. Все в обработке находится
530 Serginio1
 
18.12.20
12:03
(528) Если ПодключитьВнешнююКомпоненту("AddIn.GlobalContext1C") Тогда должна работать во всех вариантах.
ЗаписатьМакет просто сохраняет ТестВК.dll из макета
531 Гений 1С
 
гуру
18.12.20
12:03
(529) Сукко, ты не поверишь, но в обработке она у меня ВК подключает.
Если ПодключитьВнешнююКомпоненту("AddIn.ExtTest") Тогда
      
        //объект=Новый ("AddIn.GlobalContext1C");
        объект=Новый ("AddIn.ExtTest");
        объект.Show("yes");
КонецЕсли;

Видимо, какие-то проблемы в консоли кода, из которой я ее гонял. Ок, спасибо.
Но на C# все равно, наверное делать не буду, заманчивее на C++ сделать, чтобы было все без всякого говна типа NET, полное NATIVE
532 Гений 1С
 
гуру
18.12.20
12:04
Кстати те, кто трендел, что я не могу в C#, теперь могут засунуть себе эти слова в стёк. ;-) Спасибо, Serginiol. Но увы, в C# я не хочу, на C++ решение кажется более подходящим задаче.
533 Гений 1С
 
гуру
18.12.20
12:07
(530) кстати, посмотрел код консоли кода, она выполняет код на сервере. Несмотря на то, что это файловая версия, на сервере подключать не хочет, видимо в ВК это имеет роль. ;-)
534 Гений 1С
 
гуру
18.12.20
12:08
В принципе счас можно было бы расслабиться и написать на C# (пойти по пути минимального сопротивления), но я хочу на С++ теперь сам.
535 Serginio1
 
18.12.20
12:09
(531) Вот и разобрались. Ну по поводу говна можно конечно поспорить.
Но ты еще не очень разборчив в них. Я то уже в них руки то обмарал.
У тебя .Net это просто Pinvoke над нативными библиотеками. Смысла в .Net нет.
Но обычный юзер может используя мою компоненту без всяких приседаний с VS и прочими, использовать нетовскую библиотеку и методы напрямую в 1С
Только и всего
536 Serginio1
 
18.12.20
12:11
(533) Да там же написано кроме сервера и внешнего соединения. Я у тебя про это и спрашивал.
537 Гений 1С
 
гуру
18.12.20
12:15
(536) ну я как-то не подумал, что в файловой версии серверный контент тоже считается сервером для ВК... Хотя знал, что код в консоли выполняется на сервере. Спасибо, что помог разрешить это маленькое недоразумение.
(535) Ну да, обертка над DLL не требует NET, это лишнее. Так то счас на C# написать проще, но нужно делать как правильнее.
538 Serginio1
 
18.12.20
12:25
(537) Но у тебя я так понял нет 64 разрядной DLL?
539 Кирпич
 
18.12.20
12:25
Ну вот. Оставили их на полчаса, а они уже в говне и на C# опять программируют.
540 Гений 1С
 
гуру
18.12.20
12:26
(538) в SDK есть 32 и 64 разряда. и клиент изъявлял желание работать на сервере (но это как пожелание, для регл. заданий)
Я так понимаю компонента на NET технологии на сервере не заработает?
541 Гений 1С
 
гуру
18.12.20
12:27
(539) ты скинь лучше шаблон ВК адаптированный под VC 19, заплачу 1000 если взлетит.
542 Гений 1С
 
гуру
18.12.20
12:27
(541) +NATIVE Шаблон
543 H A D G E H O G s
 
18.12.20
12:28
(541) Щедрость не знает границ.
544 Ненавижу 1С
 
гуру
18.12.20
12:29
(533) а твоя консоль кода точно на тонком клиенте выполняет код?
545 Serginio1
 
18.12.20
12:30
Не нужна тебе ВК. И на сервере тем более. Достаточно COM обычного
546 Ненавижу 1С
 
гуру
18.12.20
12:30
(537) Гений походу и в 1С то не очень
547 Гений 1С
 
гуру
18.12.20
12:39
(545) а на сервере COM создастся? там какие-то пляски, не?
548 Гений 1С
 
гуру
18.12.20
12:40
(546) а судьи кто? Человек с нулевым местом на инфостарте. Я, по крайней мере, умею решать задачи, а ты только тявкаешь, Моська.
549 Serginio1
 
18.12.20
12:42
(547) Моя крмпонента работает на серверах. Проверено временем.
Все тоже самое, только COM надо зарегистрировать. Просто мою компоненту 1 раз зарегистрировал и подгружай любые dll
(548) Интересно какое там у меня место?
550 H A D G E H O G s
 
18.12.20
12:43
(548) Сергей, вы что такой злобный?
551 jbond
 
18.12.20
12:50
(516) - Э... Из клиентов 1Ски в Германии были руцаки - риальные поцыки, не привыкшие платить за лицензии, которые пошли в "бизнес" с Hartz IV.
552 Ненавижу 1С
 
гуру
18.12.20
12:55
(548) умеешь конечно, вот же
https://geniy1s.ru/
553 Кирпич
 
18.12.20
13:03
(541) А потом чо за каждую новую строчку будешь доплачивать?
554 H A D G E H O G s
 
18.12.20
13:13
А ведь он даже еще ничего и не писал.
Так нельзя в суровых ЯП.
В суровых ЯП ты должен уметь скурпулезно сидеть часами, постигая суть.
555 Serginio1
 
18.12.20
13:13
556 Гений 1С
 
гуру
18.12.20
13:24
(553) ну я хочу сэкономить себе время на старт с VC, дальше сам. С VBasic у меня не было проблем.
557 Гений 1С
 
гуру
18.12.20
13:25
(554) в смысле не писал? Я уже две ВК на VB6.0 написал. И что такое серьезные языки, прасцице?
558 Гений 1С
 
гуру
18.12.20
13:25
(555) это несколько иное ж. ;-)
559 H A D G E H O G s
 
18.12.20
13:32
(557) Я именно про C#/C++
То, что ты там писал на VB - это так, детский утренник
560 Serginio1
 
18.12.20
14:04
(558) Там проект на VS 2019. Выкинь ненужно или возьми настройки и библиотеки оттуда
561 Гений 1С
 
гуру
18.12.20
14:04
(559) че ты мне заливаешь? Я год после универа на BC++ работал. утреник... Ха
562 Гений 1С
 
гуру
18.12.20
14:05
(560) так там COM-проект, а не Native. Ну если что, то пойду этим путем, спасибо Дорогой 1С
563 Serginio1
 
18.12.20
14:06
(557) Повторюсь, мой коллега когда переходит с С++ на C# так радуется и называет C# детским языком.
564 H A D G E H O G s
 
18.12.20
14:10
(561) Компонента уже написана?
565 Serginio1
 
18.12.20
14:13
(562) Там я так понял преобразование из натива к COm там и IAddInDefBase
В любосм случае тебе нужный по студию другие библиотеки, настройки компилятора. Все это ты можешь посмотреть
566 Serginio1
 
18.12.20
14:15
Сергей для тебя
https://habr.com/ru/post/497114/

Был я относительно недавно на собеседовании (на позицию embedded-программиста), где меня попросили написать аналог tar'a. С лимитом по времени 4 часа. И без Qt, пожалуйста.
Штош, подумал я, где наша не пропадала?
1 час я потратил на установку boost'a (не встал, какие-то жэсточайшие ошибки, не было времени дальше копать).
Еще час я потратил, чтобы узнать, как кроссплатформенно открыть файл и узнать его размер. Кажется, никак, если нет С++17 c std::filesystem.
Последний час я из спичек и желудей лепил хоть что-нибудь.


И вот потом я сидел и думал, что же с нами стало.


Вообще, С++ это словно какая-то игра, специально разработанная, чтобы вызывать зависимость. Только не специально!
567 Гений 1С
 
гуру
18.12.20
14:22
(563) твой коллега в БГУИР не учился, гыгыгы...
568 Serginio1
 
18.12.20
14:25
(567) Мой коллега кандидат математических наук! Умнейший человек.
569 Garykom
 
гуру
18.12.20
14:26
(568) Подскажи коллеге глянуть Golang
570 Гений 1С
 
гуру
18.12.20
14:34
(566) Пост интересный, спасибо. Можно оттуда процитировать с перефразированием:

"Кто я, если выкинуть 1С?

И, может, выкидывать это всё — ошибка. Меня ждут минимум в двух очень хороших местах, одно из них неплохо смотрится в резюме, в обоих местах готовы платить какие-то баснословные деньги, но просто не могу больше этим заниматься. Кто-то наверняка скажет, что я с жиру бешусь, особенно сейчас, когда неопределённость на рынке труда повыше. Наверное, кто-то будет прав."
571 Гений 1С
 
гуру
18.12.20
14:35
(568) БГУ всегда был слабее БГУИР в С++. Практики сильнее теоретиков
572 lEvGl
 
гуру
18.12.20
14:37
(570) тому кто умеет писать ВК там будут платить еще больше? и что понимается под баснословностью? порядок числа хотя бы можно?
573 Serginio1
 
18.12.20
14:39
(571) Я не помню, где он учился, но кандидат по математике это ОООчень круто.
Там на халяву не пролезешь
(569) Мы все смотрели. Под определенные задачи в большинстве случаев нужен голый С
574 Гений 1С
 
гуру
18.12.20
14:39
(572) секс с извращениями всегда дороже обычного. Думаю, если на ассемблере писать СУБД, это будет несколько дороже, чем на 1С, ибо мазохистов мало, их надо ЦЕНИТЬ
575 Гений 1С
 
гуру
18.12.20
14:40
(573) О, я как-то лет 5-10 назад написал программу на Си, когда уже забыл его основательно. ничего, кое-как вспомнил. Программа обрабатывала звуковые файлы (записи телефонных звоноков), убирая ненужные части файла, чтобы был обычный WAV на выходе.
576 Ненавижу 1С
 
гуру
18.12.20
14:44
(574) и много СУБД написано на 1С? Ах, да, я же буквоед... А не кажется ли вам, что если вы постоянно путаете термины при написании, то что-то подобное происходит и в голове? Ведь не зря же рекомендуют мысли оформить письменно - человек успевает мысль провертеть несколько раз в себе за время написания
577 acht
 
18.12.20
14:51
(548) >  с нулевым местом на инфостарте.
Геня, почему место на инфостарте не помогает тебе писать компоненту?
578 Гений 1С
 
гуру
18.12.20
14:56
(577) а как он должен мне помогать? ;-)
(576) зачем слушать глупые советы, кому надо поймет правильно. Не для буквоедов, чай, писано.
579 acht
 
18.12.20
15:01
(578) То есть оно как-бы уже и не важно что-ли, я не понял?
580 lEvGl
 
гуру
18.12.20
15:17
(574) сомневаюсь в повышенной оплате низкоуровневых дел, хотя на истину не претендую, не интересовался. логика такая, что в наше время все это уже давно написано, поэтому остается только пользоваться, как их называют, "высокоуровневыми" языками. не надо ковыряться с битами, уже расковырено, отсюда видимый результат для заказчика бОльшего размера в более короткие сроки. Бизнесу, например как область применения автоматизации, все равно, какими средствами решена задача. И виденье задач у бизнеса укрупненное "Автоматизация расчета необходимых для производства материалов" например, или "Учет полуфабрикатов и продуктов". А не "драйвер взаимодействия жесткого диска с операционной системой". Ну это так, к примеру.
581 Garykom
 
гуру
18.12.20
15:23
(580) Нет.
Сейчас картинка оно или есть и дешево.
Или нету (не подходит что есть) и сделать очень дорого.
Дорого потому что хрен спеца найдешь и время.
582 Garykom
 
гуру
18.12.20
15:25
(581)+ Банально попробуй сча исправить dos программу написанную на языке высокого уровня типа dBase/FoxPro/Clipper.
HR взвоет если на него поиски спеца взвалить
583 lEvGl
 
гуру
18.12.20
15:28
(582) так наличие в пользовании такой программы - пережиток прошлого, если правильно понял что имеется ввиду. И успешное решение такой задачи - еще один плюсик к уходу от таких пережитков. ТО есть когда нибудь они, такие задачи, закончатся.
584 Гений 1С
 
гуру
18.12.20
15:30
(583) Да ты шьто? Вон, в "Империи Добра" срочно понадобились Кобольщики: https://www.cnews.ru/news/top/2020-04-07_ssha_izza_koronavirusa_ponadobilis
Фил Мерфи добавил, что половина поступающих заявок обрабатывается с существенным опозданием, и для этого ему и нужны специалисты по COBOL – необходимо модернизировать ПО мейнфреймов. Однако найти таких программистов властям непросто.
585 dangerouscoder
 
18.12.20
15:33
(582) А зачем откапывать дедушку ?
иногда проще быстрее и дешевле внедрить новый проект.
в мире IT сейчас больше 5-10 лет ничего не живет..
586 Garykom
 
гуру
18.12.20
15:34
(583) (585) Боюсь вы не поняли.
Редкость это не обязательно устаревшее, бывает просто редкое хотя и новое типа написание ВК для 1С.
587 lEvGl
 
гуру
18.12.20
15:37
в продолжение, да и к теме топика вцелом: сколько еще будем писать ВК... доКоли?! они сделали целую подсистему БПО в полтора гига размером, которая по сути представляет из себя набор драйверов, сделанных по "технологии написания ВК", что бы внешнее событие отрабатывало, наХаритона?! Микрософт сделал тот же mscomm32 думаю где то в 90-х, если не раньше, и его можно до сих пор использовать для общения с внешним оборудованием с обработкой события появления в буфере данных, настройками и остальным. Надо было бы собрать петицию к желтой фирме включить в состав платформы класс, позволяющий работать с портами.
588 acht
 
18.12.20
15:38
(585) > в мире IT сейчас больше 5-10 лет ничего не живет.

Ну, например, та же 1С 7.7 родилась в 1996 году, и чой-то сейчас с тобой несогласна.
589 lEvGl
 
гуру
18.12.20
15:38
(585) да это чепуха, единичные случаи, такие же как
>>>Или нету (не подходит что есть) и сделать очень дорого.
>>>Дорого потому что хрен спеца найдешь и время.
590 Garykom
 
гуру
18.12.20
15:39
(587) Да зи...ли дайте просто возможность из 1С напрямую функции dll вызывать обычных c-shared и com/ole.
Ну и передавать адрес эвента для обратного вызова.
591 lEvGl
 
гуру
18.12.20
15:40
да, такое есть, но полагаться на это "в завтрашний день" стремно что то, это не мейн стрим, может возникнуть ситуация, когда работу не найдешь
592 Garykom
 
гуру
18.12.20
15:40
(589) Найдите спеца по маркировке + 54-фз + эдо + http rest + специфика предметки/учета ?
593 Garykom
 
гуру
18.12.20
15:42
(592)+ и тут все у кого 77 (старая 8-ка) или переходят на новую 8ку или находят/покупают готовое решение (если оно есть под них) или платят большие бабки за допилку их раритета
594 lEvGl
 
гуру
18.12.20
15:42
(592) разве это "низкоуровневое"? об это ведь говорили. спеца по квантовой физике тоже найти трудной, но он ведь не занимается вопросом силы тяготения в традиционном смысле.
595 Гений 1С
 
гуру
18.12.20
15:44
(585) расскажи об этом чиновникам в США
596 H A D G E H O G s
 
18.12.20
15:46
(590) Дадада.
Ты знаешь, что есть вполне документированные, юзерские функции WinAPI, которые возвращают указатели на список, в котором указатели на список?
597 Гений 1С
 
гуру
18.12.20
15:50
(588) кстати, спецы по 77 наверное скоро будут стоить столько же, сколько по Коболу.
(593) с хорошего COBOLA соскочить сложнее, чем с 77 на 83
598 Гений 1С
 
гуру
18.12.20
15:50
(596) их просто игнорить. В NATIVE вон не все типы поддерживаются VARIAN
599 Гений 1С
 
гуру
18.12.20
15:56
Кстати по коболу:
Представители банка сообщили, что переход на новое ПО занял пять лет – он проходил в период с 2012 по 2017 гг. Размер затрат на это крупномасштабное мероприятие известен – апдейт обошелся банку почти в $750 млн
Переход обошелся в 10 млн человеко-часов высокооплачиваемых Коболистов. ;-)
600 lEvGl
 
гуру
18.12.20
15:56
(590) вызывать из написанного под СОМвидимость проблем нет, как и получать указатель обратно во внешнее событие, если написано по технологии ВК. вопрос: нахрена? подключи микрософтовскую шнягу, которой 100 лет в обед, она все это умеет, только не развивается. Для юсб, блютуза и остального новомодного не может.
601 lEvGl
 
гуру
18.12.20
15:58
(599) да почему бы нет, какая разница, если функционал устраивает, хоть счеты пусть достают, на них спецы пока еще есть
602 lEvGl
 
гуру
18.12.20
16:08
(584) а у алжирского дея под самым носом шишка (с)
и что
это исключение, а не правило
603 Гений 1С
 
гуру
18.12.20
16:12
(602) перечитай статью. тебя возможно удивит, но рынок мирового COBOL в несколько раз больше рынка 1С.
604 dangerouscoder
 
18.12.20
16:23
(595) заказчику тоже неделю расказываешь про чиновников США?
Или ВК уже написана отлажена и внедрена?
605 Гений 1С
 
гуру
18.12.20
16:27
(604) со сроками все путем
606 lEvGl
 
гуру
18.12.20
16:29
(603) рынка 1С, серьезно? представляю восколько раз рынок Виндовс больше рынка 1С.
607 lEvGl
 
гуру
18.12.20
16:31
+ или того же рынка cobol
608 Гений 1С
 
гуру
18.12.20
16:39
(606) иди изучай COBOL, 50$ в час больше чем 20$
609 lEvGl
 
гуру
18.12.20
16:47
кобол, шмабол - все эти дела меняются по три раза на день, лучше уметь что то более постоянное, например предметную область, для которой на коболе делаешь, а там хоть на ворде
610 lEvGl
 
гуру
18.12.20
16:50
(608) 20$ - это действительно баснословные деньги, от слова басня, если про кодинг 1с говорить
611 lEvGl
 
гуру
18.12.20
16:52
ну если не франч, имею ввиду, но и часов там не 160 в месяц, а если 160 то не 20$
612 Гений 1С
 
гуру
18.12.20
16:58
(611) я думаю там коболисты загружены 8*5, хотя учитывая, что они старички, может дедкам и 4*4 хватает
613 acht
 
18.12.20
17:50
Геня, ты все еще собираешся, или уже пишешь?
Неделя уже прошла, есличо.
614 Гений 1С
 
гуру
18.12.20
17:51
(613) пока вы еще не мой секретарь, за сроками слежу я сам. Говорю же, все пучком.
615 H A D G E H O G s
 
18.12.20
18:13
616 Кирпич
 
18.12.20
20:39
Гений съезжает на кобол :) Похоже сдулся
617 Конструктор1С
 
19.12.20
10:25
(597) "спецы по 77 наверное скоро будут стоить столько же, сколько по Коболу"

Не будут. У них совершенно разные условия. В кобол американские банки в своё время вложили вагоны $$$. В семеру в своё время вложили сто рублей российские ларьки. И если американскому банку не на что заменить свою уникальную миллиардную систему, то семера российского ларько легко заменяется на восьмеру или любое из 100500 представленных на рынке решений
618 Конструктор1С
 
19.12.20
10:27
(616) банально не умеет доводить дела до конца. Поэтому как тот ветренный юнец прыгает с одного на другое
619 Гений 1С
 
гуру
19.12.20
12:30
(618) те дела, за которые мне платят, я довожу до конца. ;-)

Кстати, коллеги, а 64-разрядная COM-компонента сможет на сервере работать?
не охота Native писать, она же в 77 не подцепится и в других системах, это по сути, только для 1с
620 Гений 1С
 
гуру
19.12.20
12:56
(617) Кстати, да, у USA не очень хорошо с документированием и поддержкой. Вон, документацию по полетам на Луну полностью утратили. Хотя специалисты теории заговора говорят, что полетов не было, но если полеты были, то так потерять документацию - позор. Наверное и с Коболом так же
621 Кирпич
 
19.12.20
13:06
(620) Ага. Давай ветку флудом про кобол и луну закидаем, чтобы не видно было где наш Гений окончательно обосрался.
622 jbond
 
19.12.20
14:46
(585) Java, Cobol, Python, C, C++, C#...
623 H A D G E H O G s
 
19.12.20
14:52
(619) Все может. Если что то не может - то это кривые руки, Гений.
На Сервере недоступны некоторые функции AppDispatch, но это решаемо, хоть ты и не поймешь, про что я.
624 H A D G E H O G s
 
19.12.20
14:52
Компонента уже дописывается, я правильно понимаю? Документация уже пишется, Сергей?
625 Гений 1С
 
гуру
19.12.20
15:22
(624) пока что обновляется VC, чтобы протестировать компиляцию C++ примера компоненты от 1С.
626 Гений 1С
 
гуру
19.12.20
15:25
(623) а как именно? Вот я написал 64-разрядную COM-компоненту. и что, регсервом из сисвов64 реглю и запускается?
почему же у меня NET компонента в &НаСервере не регилась в тонком?
627 Serginio1
 
19.12.20
15:25
(619)Любой ком объект можно использовать где угодно, кроме линукса.
Главное быть зарегистрированной в нужных ветках реестра для определенной разрядности ос.
ВК ПодклюищитьВнешнююКомпоненту как ты уже знаешь на сервере не работает.
AppDispath, ILanguageExtender и прочие интерфейсы на сервере не нужны. достаточно IDispatch
628 Serginio1
 
19.12.20
15:27
(626)
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
Параметры:
<ИдентификаторОбъекта> (обязательный)
Тип: Строка.
Идентификатор объекта внешнего компонента в виде ProgID (Programmatic Identifier) реестра MS Windows (например: "AddIn.Scanner").
Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание варианта метода:
Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
629 Кирпич
 
19.12.20
16:06
(628) "Внимание! Вариант метода не работает на сервере и во внешнем соединении."
Кризис IT во всей красе
630 Garykom
 
гуру
19.12.20
16:19
(629) Честно говоря я не понимаю почему еще в 1С не сделали нормальный удобный и везде работающий способ написания ВК.
Причем не только на C++ но других популярных ЯП.
631 Конструктор1С
 
19.12.20
16:46
(630) для полуоблачной 1с технология внешних компонент сама по себе скорее атавизм
632 Garykom
 
гуру
19.12.20
16:53
(631) тогда хотя бы http сервер в клиента 1С встроить, чтобы внешние события без ВК ловить
633 Конструктор1С
 
19.12.20
17:07
(632) имхается мне, со временем фирма 1с будет развивать возможности интеграции с другими системами. Это прям жизненная потребность. В ларьке в 2005-м году платформа 1с саме себе такая красавица, ни о ком не хотела знать. В холдинге в 2020-м такой самозамкнутость уже недостаток. В крупных предприятиях over дохрена всяких технологий, и вся эта кухня интегрируется друг с другом
634 Гений 1С
 
гуру
19.12.20
17:09
(628) и как быть?
635 H A D G E H O G s
 
19.12.20
17:13
(634) Позвать специалиста
636 Ненавижу 1С
 
гуру
19.12.20
17:27
Native
637 acht
 
19.12.20
17:34
(632) И как сервер взаимодействия тогда продавать? =)
638 Serginio1
 
19.12.20
18:26
(634) Добавь к своей компоненте методы. Пометь их на всякий случай [ComVisible(true)]
и создавай через новый COMОбъект(ProgID)
И вызывай методы также как4 и ПодключитьВнешнююКомпоненту(ProgID) и Создать(ИмяКомпоненты)
Только вызыватся для  COMОбъект будут через IDispatch а не ILanguageExtender.
Ты кстати можешь в  CallAsProc и CallAsFunc GetPropVal вызывать эти методы. И будет у тебя 2 в одном!
639 Serginio1
 
19.12.20
18:40
Только метод должен быть публичным
[ComVisible(true)]
public object СоздатьОбъект(object Тип, params object[] argOrig)

Про  ComVisible можно почитать здесь.
https://docs.microsoft.com/ru-ru/dotnet/api/system.runtime.interopservices.comvisibleattribute?view=net-5.0

Если хочешь, что бы все типы были по умолчанию [ComVisible(true)] то задай в AssemblyInfo.cs
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(true)]
640 Кирпич
 
19.12.20
19:59
(639) 0 бит. Слишком много непонятных букв.
641 ДедМорроз
 
19.12.20
20:25
А компонента на сервере и события передавать же не может
Тогда вопрос-а зачем она вообще нужна,если пнуть что-то можно через КомандаСичтемы?
642 H A D G E H O G s
 
19.12.20
20:34
(641) Работать с объектами 1С внутри ВК.
643 ДедМорроз
 
19.12.20
20:41
На клиенте - да,а на сервере?
Просто,можно подключить внешнюю обработку и уработаться по самые уши.
А если ещё и магический оператор Выполнить,то счастье будет.
644 ДедМорроз
 
19.12.20
20:43
Просто,web-клиент оператор Выполнить не умеет
Правда,он и компоненты умеет достаточно ограниченно.
645 Serginio1
 
19.12.20
21:04
(642) Передавай в методы Com объекта любые объекты 1С и будет тебе счастье. Можешь ссылку на модуль передать и вызывай все методы модуля из комобъекта.
А сообщить и прочая лабуда на сервере не нужна
646 H A D G E H O G s
 
19.12.20
21:36
(645) Например, закрыть код
647 Serginio1
 
19.12.20
22:15
(646) Не понял. Как закрыть код?
648 Garykom
 
гуру
19.12.20
22:22
(647) часть функционала из 1С выносится в ВК
649 acht
 
19.12.20
22:23
(647) Это второй вариант ответа на "а зачем она вообще нужна". Закрыть код на 1С выносом функционала в dll.
650 Serginio1
 
19.12.20
22:43
(648) Ну еще раз передай в объект ссылку на модуль где есть методы Новый(), выполнить и методы с  возвращающий менеджер  Справочник Документ.
Ты же будежь делать обработку ну и передавай ЭтотОбъект и закрывай код.
651 H A D G E H O G s
 
19.12.20
22:46
(650)
Нехватающего сделал через ОМ

Функция ВыполнитьВычисление(Выражение,Параметр) Экспорт
    Возврат Вычислить(Выражение);
КонецФункции

Процедура ЗапуститьВыполнение(Выражение) Экспорт
    Выполнить(Выражение);
КонецПроцедуры

Функция ЭтоСервер() Экспорт
    Результат=Ложь;
    #Если Сервер Тогда
        Результат=Истина;
    #КонецЕсли
    Возврат Результат;
КонецФункции

Процедура ЗаполнитьЗначенияСвойствПереопределенный(Приемник, Источник,СписокСвойств=Неопределено,ИсключаяСвойства=Неопределено) Экспорт
    ЗаполнитьЗначенияСвойств(Приемник,Источник,СписокСвойств,ИсключаяСвойства);
КонецПроцедуры

Функция СравнитьЗначения(Значение1,Значение2) Экспорт
    Возврат Значение1=Значение2;
КонецФункции

Для всего остального хватает ОМ
652 H A D G E H O G s
 
19.12.20
22:46
Для всего остального хватает ОМ ->
Для всего остального хватает AppDispatch
653 Serginio1
 
19.12.20
22:49
(0) https://its.1c.ru/db/metod8dev#content:3221:hdoc:_com_warning

Особенности разработки компонент с использованием COM
Компоненты, разработанные с использованием технологии COM, могут быть изначально не установлены на компьютере пользователя. Метод ПодключитьВнешнююКомпоненту(<МестонахожденияКомпоненты>, <ИмяМетки>, ТипВнешнейКомпоненты.COM), получает из информационной базы файл внешней компоненты, если последняя находится там, и вызывает функцию регистрации объектов компоненты DllInstall. Если регистрация "для пользователя" завершилась неудачно, то вызывается функция DllRegisterServer. Если пользователь ограничен в правах, то регистрация и подключение внешней компоненты может закончится неудачей. Разработчик должен предусмотреть возможность регистрации компоненты для пользователя, под его текущими правами. Если внешняя компонента имеет свой инсталлятор, то она должна регистрироваться для компьютера.
654 Serginio1
 
19.12.20
22:52
(652) Так как ты на сервере подключишь?
ПодключитьВнешнююКомпоненту(<ИдентификаторОбъекта>)
Параметры:
<ИдентификаторОбъекта> (обязательный)
Тип: Строка.
Идентификатор объекта внешнего компонента в виде ProgID (Programmatic Identifier) реестра MS Windows (например: "AddIn.Scanner").
Должно соответствовать информации, находящейся в регистрационной базе данных системы (Registry).
Описание варианта метода:
Компонент должен быть выполнен по технологии COM и зарегистрирован в реестре MS Windows.
Эти компоненты совместимы с компонентами 1С:Предприятия 7.7.
Внимание! Вариант метода не работает на сервере и во внешнем соединении.
655 H A D G E H O G s
 
19.12.20
22:56
(654) Жесть какая.

Глобальный контекст (Global context)
ПодключитьВнешнююКомпоненту (AttachAddIn)
Вариант синтаксиса: По имени и местоположению
Синтаксис:
ПодключитьВнешнююКомпоненту(<Местоположение>, <Имя>, <Тип>)
656 Гений 1С
 
гуру
19.12.20
23:27
(638) кстати, да, как вариант.
657 Serginio1
 
19.12.20
23:37
658 H A D G E H O G s
 
19.12.20
23:41
(657) На что не ответил?
659 Garykom
 
гуру
20.12.20
00:13
(657) Если правильно помню то ВК на сервере не могут дергать сервер 1С, только сервер дергать методы ВК
660 H A D G E H O G s
 
20.12.20
00:33
(659) Нет, не могут. Если ты про ВнешнееСобытие или ДобавитьОбработчик
661 pavig
 
20.12.20
01:38
(221)
Ты попутал чего-то
662 Garykom
 
гуру
20.12.20
01:47
(660) Угу, поэтому смысл ВК на сервере теряется, можно заменить публикацией на веб-сервере и сервисом в 1С
И сервер 1С может дергать внешний веб-сервис вместо вызовов методов ВК, конечно это тормозней

Т.е. ВК нужна для скорости или дергать 1С на клиенте
663 ДедМорроз
 
20.12.20
08:18
В vk можно реализовать функцию Sleep, которая на сервере очень нужна,особенно,когда фоновое задание чего-то ожидает.
664 Вафель
 
20.12.20
09:47
(662) наделают микросервисов, а потом хрен тестовую базу развернешь
665 acht
 
20.12.20
10:28
(664) Ты чо, это же наоборот, дает бесценную возможность невозбранно портить продуктовые базы вызовами из тестовых баз!
666 ДедМорроз
 
20.12.20
10:42
Если грамотно прописать адреса для обмена,то независимо от технологии тестовые будут лезть в тестовые,а рабочие в рабочие.
Это только у того,кому день писать,потом тестовая база гадит в рабочую.
667 Serginio1
 
20.12.20
11:14
(658) На последний вопрос v8: Не могу понять, вызывает ли сервер 1С внешнюю компоненту...
Как раз про AppDispatch
Уважаемый HADGEHOGs,
может быть Вы сможете еще помочь мне прояснить следующую ситуацию:
через PBackConection (pConnrection) пытаюсь получить ссылку на AppDispatch. Вызов m_iConnect->GetIDsOfNames(...  отрабатывает нормально (возвращает 0). Но далее, при попытке вызова m_iConnect->Invoke(... rphost активно что-то пытается делать, затем вылетает с ошибкой (наверное по таймауту).
Точно такой же код, но в 32-битной версии и при выполнении на клиенте отрабатывает без проблем (понятно, что там работет 1cv8.exe а не rphost). Сервис агента 1С грузится под администратором. Соответственно возникли два вопроса:
1. В принципе, rphost должен воспринимать нормально запрос на Invoke или нет?
2. Можно ли каким либо образом расширить логирование rphost, чтобы он туда клал больше информации?
668 ДедМорроз
 
20.12.20
13:03
Там нужно внимательно читать про выравнивание данных,так как по умолчанию для 64 бит это 8 байт и очень вероятно попасть мимо поля объекта.
669 H A D G E H O G s
 
20.12.20
13:29
(667) Тема 6 летней давности.
Последний вопрос парень задал на сл. день от моего ответа и его я скорее всего просто не заметил.
У тебя там все нормально?
670 H A D G E H O G s
 
20.12.20
13:34
Все нормально ВК работают на сервере, в x64, что за недоверие?
http://prntscr.com/w6ghzk
671 Serginio1
 
20.12.20
14:00
(670) Я про AppDispatch на сервере
672 ДедМорроз
 
20.12.20
14:47
Там,кстати,ещё и разделение по потокам должно быть,так как на сервере несколько потоков должны одну и ту же компоненту разделять,а так как там не оконный интерфейс,то размещение в одном потоке должно приводить к вызову через rpc всех методов,а они у windows через очередь сообщений,которая у серверного процесса если и есть,то работает криво.
673 Serginio1
 
20.12.20
14:56
(672) Там через окно созданной в потоке синхронизацию можно производить. В моих примерах http://catalog.mista.ru/1c/articles/417830/
для событий я использую
if (SynchronizationContext.Current == null)
        SynchronizationContext.SetSynchronizationContext(new WindowsFormsSynchronizationContext());

Ну и аппартамент должен инициализирован. Но это вроде не касается AppDispatch, от то как раз и зовется в вызывающем потоке
674 Serginio1
 
20.12.20
15:00
673+ Вообще то ВК может быть создана в одном потоке, а вызываться в другом. Могут быть проблемы.
675 H A D G E H O G s
 
20.12.20
15:01
676 Serginio1
 
20.12.20
15:02
Учитывая, что потоки скорее всего пул потоков
677 Serginio1
 
20.12.20
15:03
(675) Ок, спасибо!!!
678 H A D G E H O G s
 
20.12.20
15:03
Проблем с многопотоком нет. Ни с AppDispatch, ни с iEvent
679 Serginio1
 
20.12.20
15:06
(678) На шарпе были. Поэтому и делал  WindowsFormsSynchronizationContext(). Проблема скорее всего была в аппартаметах и пуле потоков которые были непринициалмзированы
680 Serginio1
 
20.12.20
15:08
(678) Напомни пожалуйста откуда берется промежуточное имя после Addin.
681 H A D G E H O G s
 
20.12.20
15:10
(680) Сам задаешь в 1С

"Alcosphere"

Возврат ПодключитьВнешнююКомпоненту(ПутьКМакетуСКомпонентой,"Alcosphere",ТипВнешнейКомпоненты.COM);
682 Serginio1
 
20.12.20
15:11
(681) Спасибо!
683 Serginio1
 
20.12.20
15:40
(679) В Delphi ты можешь проинициализировать поток  через CoInitialize   CoUninitialize;
А в .Net нельзя, только создав поток вызвав SetApartmentState и затем запустить
684 Гений 1С
 
гуру
20.12.20
16:08
Пример от 1С открылся, но сборка не работает:

Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Предупреждение    MSB8003    Could not find WindowsSdkDir_71A variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.    AddInNative    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\Win32\PlatformToolsets\v140_xp\Toolset.targets    36    
Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Предупреждение    MSB8003    Could not find WindowsSDKDir variable from the registry.  TargetFrameworkVersion or PlatformToolset may be set to an invalid version number.    AddInNative    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets    366    
Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Ошибка    C1083    Не удается открыть файл включение: windows.h: No such file or directory,    AddInNative    m:\fixin\1s8mytools\anviz биометрия\+\проект cs anvizcchex 2020\vncomps\vncomps\vncomp83\template\stdafx.h    9    


в общем, решил собирать с нуля.
Тем более, решил использовать на С++ не NATIVE, а COM, т.к. COM - универсальный, а Native - только для 1С.
На сервере можно продублировать методы ВК в методы самой компоненты, в принципе, или пусть запускают из запускаемого по расписанию приложения, как раньше.
685 H A D G E H O G s
 
20.12.20
16:28
(684) тебя просто подавила компонента.
686 H A D G E H O G s
 
20.12.20
16:34
Состояние подавления:
Обнаружен рукопоп, выполняю подавление.
687 Кирпич
 
20.12.20
16:53
(686) У одной женщины тоже такое сообщение показало. Вызвали скорую - оказалось ковид.
688 Кирпич
 
20.12.20
16:54
(687) это к (684)
689 Гений 1С
 
гуру
20.12.20
17:05
Гм, создал шаблон ATL-DLL компоненты, получил ошибку: Серьезность    Код    Описание    Проект    Файл    Строка    Состояние подавления
Ошибка    MIDL1005    cannot find C preprocessor cl.exe    AnvizCCHEX    m:\fixin\1s8MyTools\Anviz биометрия\+\Проект CS AnvizCCHEX 2020\AnvizCCHEX-CPP-COM\AnvizCCHEX\midl    1
690 Кирпич
 
20.12.20
17:19
(689) Сотри уже VS и живи как жил
691 H A D G E H O G s
 
20.12.20
17:22
Это именно те веселости взрослых ЯП, о которых я говорил выше, Сергей.

Их, кстати, почти не в умершей Дельфи и ущербном Паскале.
692 pereval
 
20.12.20
17:22
(0) долго боролся с этой темой
Создание dll на C# для 1С 8

вот что получилось. пока черновик решения
http://catalog.mista.ru/public/1318084/
693 H A D G E H O G s
 
20.12.20
17:23
VS подавляет Сергея всеми силами

Sergey's lives matter!
694 Кирпич
 
20.12.20
17:26
(691) 0 бит. Единственное, что Сергей знает о программировании - это паскаль западло и Delphi умер.
695 Гений 1С
 
гуру
20.12.20
18:23
Путем плясок с бубном удалось собрать сборку динамической DLL (COM).
Но извраты еще те:
Включаемые каталоги:
$(VC_IncludePath);$(WindowsSDK_IncludePath);k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.20.27508\atlmfc\include\;k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\include\
Каталоги библиотек:
$(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\atlmfc\lib\spectre\x86\;k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\;k:\Soft\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.16.27023\lib\onecore\x86\

Но еще надо разобраться, как добавить методы к моей DLL, за основу смотрю:
http://catalog.mista.ru/public/115486/
696 Гений 1С
 
гуру
20.12.20
18:28
Гм, при добавлении ATL Simple Object ошибка fatal error RC1107
invalid usage; use RC /? for help

по ходу RC не включена в PATH, счас буду искать, что это такое
697 H A D G E H O G s
 
20.12.20
18:28
698 Гений 1С
 
гуру
20.12.20
19:12
(696) Пиздец, забавное решение проблемы: https://stackoverflow.com/questions/8912136/vc-compile-error-rc-fatal-error-rc1107-invalid-usage-use-rc-for

Теперь это работает, но не понятно, как добавить новые методы. В VC19 это выглядит несколько иначе, чем в VC10
тест = новый COMОбъект("AnvizCCHEX.Device");
699 H A D G E H O G s
 
20.12.20
19:18
(698)
Решение:
Добавьте слэш в конце пути. Если слэш в конце пути уже есть - удалите его.

Дым на небе, дым на земле
Вместо людей машины
Мертвые рыбы в иссохшей реке
Зловонный зной пустыни
700 Гений 1С
 
гуру
20.12.20
20:21
Не хочу реализовывать всю технологию ВК от 1С, хочу просто добавить свои методы, объект создается, но метод Test не видится:

тест = новый COMОбъект("AnvizCCHEX.Device");
тест.Test();

ЧЯДНТ?

library AnvizCCHEXLib
{
    importlib("stdole2.tlb");
    [
        uuid(e1ee7273-ab6d-4516-9492-251418282fc1)
    ]
    coclass CAnvizCCHEX
    {
        [default] interface ICAnvizCCHEX;
    };
};


[
    object,
    uuid(AB634003-F13D-11d0-A459-004095E1DAEF),
    helpstring("ILanguageExtender Interface"),
    pointer_default(unique)
]

interface ILanguageExtender : IUnknown
{
    [helpstring("method Test")] HRESULT Test();
};
701 Гений 1С
 
гуру
20.12.20
20:31
(700) создание ВК интерфейс ILanguageExtender  вот как он реализовал метод в самой компоненте (dll)?
702 Ненавижу 1С
 
гуру
20.12.20
20:42
(700) как минимум нужно чтобы interface был public
703 Ненавижу 1С
 
гуру
20.12.20
20:45
(701) чето тебя совсем жалко стало
704 Гений 1С
 
гуру
20.12.20
21:21
(702) http://catalog.mista.ru/upload/iblock/62a/03.02_12.png похоже, надо сделать как тут.
705 H A D G E H O G s
 
20.12.20
21:47
(700) Ну ты хоть теорию COM почитай, что такое интерфейсы, почему 1С не умеет их и про уникальный IDispatch и позднее связывание.
706 Гений 1С
 
гуру
20.12.20
21:48
Ошибка    MIDL2269    procedures in an object interface must return an HRESULT : [ Procedure 'Test' ( Interface 'ICAnvizCCHEX' ) ]    AnvizCCHEX    M:\fixin\1s8MyTools\Anviz биометрия\+\Проект CS AnvizCCHEX 2020\AnvizCCHEX-CPP-COM\AnvizCCHEX\AnvizCCHEX.idl    19    

А что, COM-функция не может возвращать значение?
707 Garykom
 
гуру
20.12.20
21:49
(706) мдя
708 H A D G E H O G s
 
20.12.20
21:50
(706) Она возвращает в out параметре.
Читай RTFM, позорище.
709 Гений 1С
 
гуру
20.12.20
21:54
(708) Несколько опередил тебя, все получилось.
Правда, без мастера, который якобы есть тут (http://catalog.mista.ru/public/115486/) (http://catalog.mista.ru/upload/iblock/c2a/03.02_9.png) не удобно, но все же:



interface ICAnvizCCHEX : IDispatch
{
    [id(1), helpstring("Тест")] HRESULT Test([out, retval] LONG* out_param);
};

STDMETHODIMP CAnvizCCHEX::Test(LONG* out_param)
{
    *out_param = 1;
    return S_OK;
}
710 Гений 1С
 
гуру
20.12.20
21:54
И в самой 1С код выводит 1:

тест = новый COMОбъект("AnvizCCHEX.Device");
рез = тест.Test();
Сообщить(рез);
тест = 0;
711 Гений 1С
 
гуру
20.12.20
21:55
Теперь поясните, кто знает, зачем писать это все по технологии ВК, если можно просто использовать Новый COMОбъект и его методы?
Или ВК для событий нужна?
712 Гений 1С
 
гуру
20.12.20
21:56
COMОбъект то и на сервере, чай будет работать.

Гм, осталось приаттачить сюда DLL, разобраться с бардаком в Include, со сборками, ну за это можно и проплатить час консультанту.
Разобраться с компиляцией под 32 и 64-разрядные платформы и все будет хорошо.
713 Гений 1С
 
гуру
20.12.20
21:58
Еще кто бы подсказал, как отладочные алерты вызывать и сохраняется ли в объекте COM-сервера значение переменных между вызовами. И где и как эти переменные объявлять.
Ну там еще нужно со строками как в C++ работать, но это я уж нагуглю. ;-)
714 H A D G E H O G s
 
20.12.20
22:00
(711) ВнешниеСобытия, Дескриптор окна от 1С, AppDispatch от 1С, возможность отказаться от изменения реестра, многопоточность из коробки (не знаю, че там у C#)
715 H A D G E H O G s
 
20.12.20
22:01
(713) Ахахаха.
Удачи, мистер Горски.

Ты неделю сношаешься на проблемах, не стояших и яйца, а тут на C-строки замахнулся.
716 H A D G E H O G s
 
20.12.20
22:03
(713)
"Еще кто бы подсказал, как отладочные алерты вызывать" - подключись отладчиком и не страдай херней
"и сохраняется ли в объекте COM-сервера значение переменных между вызовами." ну а ты как думаешь?
717 Гений 1С
 
гуру
20.12.20
22:12
(714) это мне не нужно, сделаю просто СОМ-обертку. Она будет и на сервере работать
718 Гений 1С
 
гуру
20.12.20
22:12
(716) в Басике сохранялись, протестировать можно
719 Гений 1С
 
гуру
20.12.20
22:18
(715) я, бы не назвал эти проблемы простыми. По срокам норм
720 Ненавижу 1С
 
гуру
20.12.20
22:42
C++ за 7 дней. Сказка просто!
721 Serginio1
 
20.12.20
22:48
(698) Ты хоть смотрел и запускал https://github.com/andrei-karpov/UniversalNativeWrapper
Там все на VS 2019
722 Serginio1
 
20.12.20
22:53
(711) Я об этом тебе с самого начала писал. А еще лет 18 назад. Нужен AppDispatch для вызова контекста 1С внутри компоненты, IAsyncEvent для обратных вызовов.
Тебе это не нужно, но ты почему то все время рвешься делать ВК.
723 Serginio1
 
20.12.20
22:55
А на .Net то если ты заметил делать Com элементарно.
724 Serginio1
 
20.12.20
23:33
(714) Я же написал тебе в (683) Что в нативе ты можешь поток СОМ инициализироваь через  CoInitialize   CoUninitialize.
В .Net не можешь, но можешь запомнить контекст синхронизации например из основного потока 1С или создать свой поток с нужным аппартаментом и с обработкой очереди сообщений держать его .
(713) На сервере все непредсказуемо. Но можешь сохранить ссылку в статическую переменную и если Dll не выгрузить будет жить.
В .Net как раз удобно в том плане, что Dll не выгружается, пока рабочий процесс не горхнется
725 acht
 
20.12.20
23:42
(724) >  Dll не выгружается

А вот тут есть такая забавная особенность, что следующий вызов 1С может прилететь на другой экземпляр rphost, причем даже расположенный на другой машине. Поэтому толку от такого поведения, гм..., немного.

Все живет ровно один серверный вызов.
726 H A D G E H O G s
 
21.12.20
00:05
(725) По опыту все не так печально
727 Serginio1
 
21.12.20
00:13
(725) Ну зависит от того сколько у тебя rp хостов. При этом для каждого рп хоста будут свои данные, что то же иногда нужно.
Мало того, ты можешь держать словарь и по ключам создавать или возвращать нужный объект
728 acht
 
21.12.20
00:42
(727) Чой-то какими-то буханкой и троллейбусом пованивать начинает.
729 Serginio1
 
21.12.20
00:58
(728) Ну смотрим как и что кэшируют в HTTP сервисах для хранения значений сессии и берем на вооружение.
https://habr.com/ru/company/ua-hosting/blog/278391/
730 Garykom
 
гуру
21.12.20
01:00
(729) А может не изобретать (728) и просто на сервере вместо ВК использовать http-сервисы?
731 Garykom
 
гуру
21.12.20
01:02
(730)+ и да есть желание и на клиенте их использовать, но пока придется через ВК http-сервер
А дополнительные "ВК" просто через этот "сервер" с 1С общаются

Убираем к чертям проблему ваяния ВК ибо всего одна и может много разных внешних пользовать, написанных на чем угодно
732 Serginio1
 
21.12.20
01:20
(730) Ну это зависит от задач. Иногда нужен контекст 1С и тд. Нужны определенные состояния не зависящие от сессии итд.
Иногда проще немного подкрутить , чем городить редисы, базы данных итд. с сериализацией объектов после их изменения.
Конечно в том же ASP.NET Core многое автоматизировано. https://metanit.com/sharp/aspnet5/2.26.php
Все зависит от входных параметров.
В большинстве случаев ВК на сервере это в большинстве случаев выполнение статических методов, без сохранения состояния.
Ну и если у тебя есть Http сервис то и ВК тебе не нужна, если конечно не gRPC
733 Гений 1С
 
гуру
21.12.20
07:55
(721) да, кое-что оттуда я почерпнул, но в основном пл примеру с инфостарта где "с нуля" делают COM в VS сделал.
734 Гений 1С
 
гуру
21.12.20
07:56
(722) ок, я просто в этом мало шарю. В процессе пришло понимание
735 Гений 1С
 
гуру
21.12.20
08:32
(720) а за сколько надо? ;-)
736 Гений 1С
 
гуру
21.12.20
08:34
(732) (731) конкретно в моем случае на сервере компонента нужна, чтобы в регламентном задании подключаться к девайсам, считывать журнал. Именно в регламентном задании.
На прошлых версиях я порекомендовал клиентам, чтобы запускали клиента 1С по расписанию, чтобы он выполнял эти операции и это сняло остроту проблемы, но все же, почему бы и нет.
Понятно, что на сервере никакие сохранялки состояний не нужны, COM используется просто как обертка над DLL
737 Гений 1С
 
гуру
21.12.20
08:47
(733) вот там в комментах выложил zip-архив кода компоненты под Visual Studio 2019 с единственным методом Test.
http://catalog.mista.ru/public/115486/

Кстати, там пишут что VS забило на мастер COM в новых версиях... ;-) Поэтому у меня мастером и не вышло, пришлось вручную
738 Кирпич
 
21.12.20
09:02
(737) Ну и сделал бы молча снова на Visual Basic. Чо страдал херней неделю.
739 Ненавижу 1С
 
гуру
21.12.20
09:16
Тебе же постфактум надо, сколько я понял?
А Анвиз пишет в тот же MSSQL данные.
Тогда зачем вообще компонента, если можно тупо подключаться к БД?
740 Ненавижу 1С
 
гуру
21.12.20
09:17
+(739) по крайней мере именно так мы прикрутили считыватель биометрии прихода/ухода к ЗУП
741 Serginio1
 
21.12.20
09:59
732+ Еще пример. Часто бывает, что на инициализацию объекта уходит долгое время, но последующие методы не меняют состояние объекта.
То есть один singleton обслуживает все запросы. То есть проще создать сом объект как обертка над этим синглтоном. Время на создание сом объекта небольшое
742 Гений 1С
 
гуру
21.12.20
10:13
(739) Да, у меня есть чтение из SQL, но там есть такой забавный нюансик, мон шер ами.
SDK позволяет гонять отпечатки пальцев с замка на замок.
Можно конечно один замок начинить всеми отпечатками, но тогда любой пройдет в любое место.
Гораздо проще и вернее отпечатки собирать с помощью ANVIZ UBIO, а потом уже из 1С распределять их по замкам согласно правилам кто куда может ходить.
Ну а раз и так используется 1С, почему бы ее и не научить читать журнал, чтобы не заморачиваться с SQL?
Улавливаешь ход мысли?
Бизнес не платил бы мне деньги, если бы можно было бы обойтись бесплатным встроенным софтом.


Друзья, спасибо за помощь на первом этапе. Полученные знания зафиксировал в статье:
https://geniy1s.ru/razyasnenie-vneshnih-komponent-1s/

Теперь вперед и с песней - к подлкючению DLL (желательно STATIC) и написанию полной ВК.
743 Гений 1С
 
гуру
21.12.20
10:14
(738) VB не умеет в 64 разряда. Я особо не страдал. На неделе вел три проекта, один из них - этот. Обращался по мере наличия свободного времени.
744 Garykom
 
гуру
21.12.20
10:17
(742) у тебя статья вышла тупая но для таких же гениев пойдет
745 Гений 1С
 
гуру
21.12.20
10:18
(738)В принципе, можно было бы написать компоненту и на Visual Basic, но он не умеет генерировать 64-разрядные компоненты. А учитывая, что у 1С появилось 64-разрядное клиентское приложение, которое уже довольно широко используется, пришлось бы только ради ВК, написанной по 32-разрядной технологии, использовать 32-разрядную версию клиента 1С. Это неудобно, поэтому, как бы хорош не был VB, от него нужно отказаться.

Отказываться надо и по другой причине. VB больше не сопровождается, поэтому начинать на нем новые проекты просто не имеет смысла. Нужно идти «в ногу со временем».
746 Garykom
 
гуру
21.12.20
10:18
(744)+ и с кучей ошибок и через предложение недочеты
747 Гений 1С
 
гуру
21.12.20
10:18
(744) Поэтому я и в топе на инфостарте, что умею объяснять сложное просто.
748 Garykom
 
гуру
21.12.20
10:19
(747) Ты в топе потому что на фоне тебя другие чувствуют себя гениями ))
749 Гений 1С
 
гуру
21.12.20
10:19
(746) Про какие ошибки речь? если укажешь, поправлю, но общий смысл и так хорош
750 Гений 1С
 
гуру
21.12.20
10:20
(748) серьезно? Под каким ты ником на ИС, где можно взглянуть на "гениальные" шедевры разработок?
751 Garykom
 
гуру
21.12.20
10:20
(749) "Удивительно, но на ИТС в разделе «Технология внешних компонент» 1С в своих примерах разработки ВК на Visual Studio выкладывает только проект Native-ВК и то под довольно древний релиз Visual Studio, поэтому просто так его не запустить."


Ты даже не понял что в примере от 1С есть и com и native и там же под android/ios и браузеры?
752 Garykom
 
гуру
21.12.20
10:22
(751)+ "Но вот что удивительно, на сервере 1С можно использовать обычные COM-объекты."

только на сервере 1C под Windows и только если они зареганы на что нужны права и нужна правильная разрядность (32 не может 64 и наоборот - тут есть исключения но лучше не извращаться)
753 Garykom
 
гуру
21.12.20
10:22
(752)+ "Правда, в такой реализации не будут доступны ВнешниеСобытия, дескриптор окна от 1С, AppDispatch от 1С, возможность отказаться от изменения реестра, многопоточность."

гыгыгыгы
754 Serginio1
 
21.12.20
10:28
(736) Я к тому, что двигаться нужно постепенно. Ты уже понял, что создать ком обертку на C# как два пальца.
Сделал посмотрел. Если, что не понравилось берешься за суровый С++ и тратишь на него кучу времени.
755 Гений 1С
 
гуру
21.12.20
10:32
(754) в чем суровость с++? Не как два пальца, благо я нашел готовую сборку под си шарп. А так бы телепался как с с++
756 Serginio1
 
21.12.20
10:32
(752) Ну для .Net создаешь одну сборку под Any CPU и регистрируешь в соответствующих ветках.
Другое дело, что 1С могла сама без регистрации запускать библиотеку по её ClassID
757 Ненавижу 1С
 
гуру
21.12.20
10:33
(744) там весь блог шедевр
758 Гений 1С
 
гуру
21.12.20
10:33
(751) ты пропустил "под vs", скомпилить пример com от 1с мне не удалось, напрммер
759 lEvGl
 
гуру
21.12.20
10:34
https://geniy1s.ru/razyasnenie-vneshnih-komponent-1s/

зачем писать "статьи", которые говорят "я не понимаю, что к чему, но попробую вам объяснить"
760 Serginio1
 
21.12.20
10:34
(755) Ты только три дня искал шаблон не мог даже загрузить проект! На шарпе у тебя все махом завелось
761 Гений 1С
 
гуру
21.12.20
10:34
(756) ну в моем случае я решил, что клиенту не нужен гимор под Net и лучше написать на С++
762 Гений 1С
 
гуру
21.12.20
10:35
(760) на шарпе просто нашелся готовый проект vs, а вот com писал с нуля на си++ (вчера)
763 Гений 1С
 
гуру
21.12.20
10:40
(759) я, разобрался и помогаю другим разобраться
764 Ненавижу 1С
 
гуру
21.12.20
10:42
(763) и почему не удалось "скомпилить пример com от 1с"?
какие объективные технические причины и тонкости?
765 Гений 1С
 
гуру
21.12.20
10:47
(764) потому что он под CMAKE, а не VS. Я не спец в VS, CMAKE, мне нужно открыть шаблон, внести изменения и скомпилировать.
Проект от 1С в CMAKE не открылся:
https://fixogram.ru/wp-content/uploads/2020/12/image-154.png?v=1608528680

Вникать в вопросы "почему" я не стал. Моя цель - написать ВК, а не становиться спецом по VS, CMAKE
766 Serginio1
 
21.12.20
10:48
(761) А чем гемор? Regsvr32 против Regasm. Сделал на C# и посмотрел как работает. Если заказчика не устроило делаешь на С++.
(762) Вот при этом мои проекты тебя не устроили. Там все тоже самое. Но ты то начал с ВК, когда все тебе говорили, что достаточно Ком оберток.
Но ты не слушаешь. А поверь я то хотел тебе помочь, в отличие от большинства здесь присутствующих.
767 lEvGl
 
гуру
21.12.20
10:48
(763) что то в этом куске из статьи
>>>Отличие ВК, COM и Native
противоречит этому
>>>Поэтому я и в топе на инфостарте, что умею объяснять сложное просто.
768 Гений 1С
 
гуру
21.12.20
10:49
(767) в чем противоречие, мосье? я не обязан знать все, зато я умею узнать все, что нужно. оК?
769 Ненавижу 1С
 
гуру
21.12.20
10:49
(765) "потому что он под CMAKE, а не VS"
Простите что? Потому что он Табурет, а не Зеленый?
770 Гений 1С
 
гуру
21.12.20
10:50
(766) Зачем NET, если можно без NET. NET - лишнее звено, связанное с нежеланием писать на С++.
771 Гений 1С
 
гуру
21.12.20
10:51
(769) я в курсе, что CMAKE использует для компиляции VS, но настраивать CMAKE как-то непросто. Проще с нуля COM создать шаблон в VS и туда перенести. По крайней мере на сайте 1C я никаких инструкций по настройке CMAKE и VS не нашел.
772 Ненавижу 1С
 
гуру
21.12.20
10:51
>>на сервере 1С можно использовать обычные COM-объекты
>>в такой реализации не будут доступны ВнешниеСобытия, дескриптор окна от 1С

какого окна на сервере?
773 lEvGl
 
гуру
21.12.20
10:51
(768) давайте проще:
>>>Но ты то начал с ВК, когда все тебе говорили, что достаточно Ком оберток.
в чем смысл этого предложения из (166) в чем разница
если коротко
774 lEvGl
 
гуру
21.12.20
10:53
+ 773 вопрос потому что в статье
>>>Отличие ВК, COM и Native
три понятия перечислены через запятую, как "однородные члены предложения"
775 Garykom
 
гуру
21.12.20
10:53
(765) >потому что он под CMAKE, а не VS

гыгыгыгы
776 Garykom
 
гуру
21.12.20
10:54
(775)+ под винду пример com там совершенно обычный на vs
просто у них все в одном и да cmake там для линукса для натив а не ком
777 Serginio1
 
21.12.20
10:56
756+ Загрузка COM объекта по его ClassID
Мало того, можно ClassID получить из библиотеки типов. Если есть tlb то можно вообще передать только путь к Dll
v8: v8: Использование сборок .NET в 1С 7.x и 8.x
778 Garykom
 
гуру
21.12.20
10:56
Даже интересно стало где ТС смог законсервироваться и на 10-15 лет проспать, то что многие другие проходили с ВК
779 lEvGl
 
гуру
21.12.20
10:58
читаю дальше, еще один кусок текста называется
>>>От ВК назад к COM

в моем понимании ВК может быть СОМ или Натив, это не 3 однородных параллельных "сущности", а вторая и третья - разновидность первой
780 Ненавижу 1С
 
гуру
21.12.20
11:00
(777) (778) (779) Напишите ему в блог, но боюсь в премодерацию попадете, как очернители
781 Garykom
 
гуру
21.12.20
11:00
(778)+ например Книга знаний: Написание внешних компонент для 1С на VB.NET и C#
2007 год это вроде последняя редакция, так то оно раньше было
782 Serginio1
 
21.12.20
11:00
(770) Ну ты посмотри на название топика! Ты решил на C#, при этом не довел до конца. Затем решил на С++
А воз то и поныне там. Двигайся от простого к сложному. У тебя бы была уже работающая компонента. Ты бы набил все шишки, а затем переписывай на С++.
Но ты выбрал самый сложный вариант. И наступишь на кучу граблей отладки итд.
Я то это все проходил.
783 lEvGl
 
гуру
21.12.20
11:01
(773) не 166 а (766)
784 lEvGl
 
гуру
21.12.20
11:06
(766) я тоже помогаю, надеюсь что это помогает. но делать это для людей, которые громко заявляют "Я гений, я умею объяснить сложное просто, я.. я .. я.." хочется добавить как из анекдота
- а мне папа велосипед вчера купил
- а мне мама торт испекла, клюквенный
- а мне... а я... а у меня... а я вам всем щас вобще пе.ды дам!
785 Serginio1
 
21.12.20
11:07
(783) В том, что в ВК методы вызываются через ILanguageExtender, а в COM через IDispatch.
При этом в VS достаточно прописать атрибуты
[ComVisible(true)]
    [ProgId("NetObjectToIDispatch45")]
    [ClassInterface(ClassInterfaceType.AutoDispatch)]
    [Guid("DFDADA57-B22C-4276-928A-8B91C9891FF1")]
    public class NetObjectToIDispatch45

и писать методы как обычные
   public object СоздатьОбъект(object Тип, params object[] argOrig)

И они будут видны 1С при создании
врап=новый COMОбъект("NetObjectToIDispatch45");
786 lEvGl
 
гуру
21.12.20
11:11
(785) это был вопрос к гению, на понимание разницы(
но основное отличие для программиста-пользователя таких разработок в другом
787 Гений 1С
 
гуру
21.12.20
11:14
(772) буквоедство? там не говорится о сервере.
(773) а в чем суть претензии? Говорят много, доносится мало. Я вот объяснил в статье, почему достаточно COM, потому что сам разобрался. Но даже COM обертку в VS набросать не так просто. Это не VB, там много настроек надо делать. Просто так не компилируется почему-то.
(774) прости, я не буквоед. Через зпт и ладно.
(778) ну я пишу ВК от случки к случке. Это не моя специализация. ;-)
(779) выключай буквоеда, грустно выглядит.
(782) сложный для кого? Для меня или для клиента? С++ не так уж и сложен (я на нем год работал, если че). А вот клиенту париться с NET - зачем?
(785) я не спорю, что Net проще, но в моей задаче он избыточен (повторяю в 10 раз). Моя COM-обертка над DLL сможет работать даже без NET, например, смысл напрягать тех, кто будет ее обслуживать на NET?
788 H A D G E H O G s
 
21.12.20
11:18
789 lEvGl
 
гуру
21.12.20
11:19
в статье не объяснил, а добавил путаницы
790 Гений 1С
 
гуру
21.12.20
11:19
В общем, друзья, думаю, такая статья не повредит. Она как курс молодого бойца по ВК, разъясняет нюансы. Может подобная и есть в интернете, но я не встречал. Пусть будет.
791 Гений 1С
 
гуру
21.12.20
11:20
(789) путаницы в чем?
792 lEvGl
 
гуру
21.12.20
11:20
(190) то то, что повредит
(791) да ну вас, буквоедством заниматься
793 lEvGl
 
гуру
21.12.20
11:21
да елки (790) и не 190
794 Serginio1
 
21.12.20
11:24
(787) Я уже написал в простоте написания и отладки. За час написал и отладил разные кейсы. Потом пиши на С++.
Посмотри сколько ты времени тратишь. Да и людям которые будут поддерживать, проще с C# разбираться, чем с С++.
И про сложности с С++ я тебе тоже писал, ибо сам в этом купался.
Претензия в том, что нужно слушать людей которые на этом собаку съели. В итоге ты приходишь к тому же самому только через неделю
795 Гений 1С
 
гуру
21.12.20
11:29
(794) не, какая-то ложная генерализация. Но я подумаю, ок, C++ или C#, хорошо.
796 Гений 1С
 
гуру
21.12.20
11:30
(794) Скажи, а под какую версию NET тогда писать, чтобы стабильно было?
797 Гений 1С
 
гуру
21.12.20
11:32
и можно ли на C# статически прилинковать DLL-библиотеку, для которой я делаю обертку, хотя это не критично
798 Garykom
 
гуру
21.12.20
11:38
(797) а у тебя есть .lib для статической линковки?
799 Serginio1
 
21.12.20
11:40
(797) Да если ты видел обертки то там для методов есть атрибут [DllImport
Вот примеры использования нативных методов
v8: v8: Использование сборок .NET в 1С 7.x и 8.x
https://docs.microsoft.com/ru-ru/dotnet/api/system.runtime.interopservices.dllimportattribute?view=net-5.0
800 Serginio1
 
21.12.20
11:41
(796) Пиши под .Net Standard 2. Она будет видна и из .Net Framework и Core
801 Гений 1С
 
гуру
21.12.20
12:03
(798) есть только DLL
(799) ладно, буду писать COM-обертку (не ВК) на NET, так наверное, проще и быстрее. Да и легче потом дорабатывать, что для клиента тоже важно. И потом, NET счас везде есть. А COM-обертка будет и на сервере доступна. ОК.
802 Кирпич
 
21.12.20
12:04
(797) Конечно можно. Динамические библиотеки(DLL) как раз придумали для того, чтобы линковать статически. И обязательно к C#
803 Гений 1С
 
гуру
21.12.20
12:04
(800) это как-то в настройках проекта VS задается?
804 Ненавижу 1С
 
гуру
21.12.20
12:06
(801) (803) о, будет второй сезон нашего сериала
805 Гений 1С
 
гуру
21.12.20
12:16
(804) так он изначально предполагался, мне же нужно создать законченный продукт.
806 Кирпич
 
21.12.20
12:17
(801) У клиентов сервер на Linux. Пиши web сервис на .NET5
807 Кирпич
 
21.12.20
12:18
Или NET Core
808 Гений 1С
 
гуру
21.12.20
12:22
(806) дык вряд ли.
(807) Ну вон говорят писать на Net Strandart 2.0, он будет под CORE виден.
809 Serginio1
 
21.12.20
12:24
(806) Пусть сначала с COM разберется, а потом можно и на .Net 5 и Native ВК
810 Garykom
 
гуру
21.12.20
12:29
(808) ыыы
а потом у клиента окажется WinXP или W2k3 и придется "Net Strandart 2.0" в топку
811 Кирпич
 
21.12.20
12:30
(808) Кстати. У китайцев для Linux есть SDK? Мне прислали только для windows чота
812 Garykom
 
гуру
21.12.20
12:31
(811) аналогично
813 Гений 1С
 
гуру
21.12.20
12:32
(810) не окажется.
814 Serginio1
 
21.12.20
12:33
(810) Можно сделать две DLL под .Net 3.5 и .Net Standard
815 Гений 1С
 
гуру
21.12.20
12:33
(810) Вообще любого может убить метеорит, но мы же на это не рассчитываем в повседневной жизни. Поэтому будем писать ВК для 80% клиентов. ;-)
816 Garykom
 
гуру
21.12.20
12:34
(815) 100% клиентов не нужна ВК.
Им подойдет внешний http сервис/сервер, с которым 1С будет через HTTPЗапрос общаться
817 H A D G E H O G s
 
21.12.20
12:34
Компонента уже выложена в продажу? Где можно сделать заказ?
818 Гений 1С
 
гуру
21.12.20
12:35
(817) предзаказ хоть счас. ;-) 300$
819 Garykom
 
гуру
21.12.20
12:36
(816)+ этот сервер можно засунуть в макет (двоичные данные), запустить перед началом общения и шатдаунить командой (по http же) после
820 Гений 1С
 
гуру
21.12.20
12:36
(816) Админить HTTP сервер кто будет? Или ты про Zero-Adm-Server?
821 Гений 1С
 
гуру
21.12.20
12:37
Опять же порты всякие открывать для сервера. Столько много бубнов ради простейшей задачи. Прости, но выглядит как из Пушки по воробушкам.
822 Serginio1
 
21.12.20
12:37
(816) Угу разворачивать сервис, следить за ним. Это подход линуксоидов!
823 Кирпич
 
21.12.20
12:38
(818) В час?
824 Garykom
 
гуру
21.12.20
12:39
(820) не тупи
ЗапуститьПриложение("твой сервер.exe порт")
825 Garykom
 
гуру
21.12.20
12:40
(821) тогда запускай из командной строки с параметрами и все

ну не умеешь ты ВК писать, писи консольку
826 Garykom
 
гуру
21.12.20
12:41
(825)+ сохранил из 1С exe + файлик с данными (json), запустил "консольное.exe входящие.json исходящие.json" и прочитал результат
827 lEvGl
 
гуру
21.12.20
12:47
(815) копец, мы у себя в мухосранске делаем и вк и обертки и сервисы, а в Москве есть такие прогроммистэ, с клиентами, считающие себя нихера себе, что за шняга
828 H A D G E H O G s
 
21.12.20
12:48
Вообще ветка доставляет.
Надо посчитать, сколько раз Сергея развели на переобуться за неделю.
829 Serginio1
 
21.12.20
12:49
(826) Чем это лучше внешнего сервера автоматизации?
Чем это удобнее новый ComОбъект? да и писать Com сервер проще чем Http сервис.
Вспоминаем про бритву Оккама. Ну и двигаться надо постепенно. Сделал через Ком, что то пошло не так всегда можно переделать. Главное отладит на реальной работе
830 ДенисЧ
 
21.12.20
12:56
"писать Com сервер проще чем Http сервис"

Иногда лучше жевать...
831 Garykom
 
гуру
21.12.20
12:57
(829)
1. универсальней (вин, лин, мак)
2. проще

у ТС даже консольного на C# или C++ еще нет
куда ему ВК писать?
832 Garykom
 
гуру
21.12.20
12:58
(830) если некто уже много раз делал Com сервер и ни разу даже не пробовал сваять Http сервис то хз
имхо http сервис проще сильно сваять
833 Гений 1С
 
гуру
21.12.20
13:02
(827) Видимо что-то в Мухосранске не так у вас. Создайте сайт (хотя бы как мой Гений1С.ру), создайте репутацию (как я создал своими статьями на ИС), тогда и клиенты подтянутся.
834 Гений 1С
 
гуру
21.12.20
13:03
(828) а в этом что-то плохое? поиск правильного решения не всегда идет по прямой
835 Гений 1С
 
гуру
21.12.20
13:04
(831) дык мне понятно, как писать ВК, все норм. демки на C# & C++ тоже написаны. Опыт написания на VB6 есть. Расцениваю свои шансы на написание ВК как 100%
836 lEvGl
 
гуру
21.12.20
13:05
а что завели то про сервисы, у него же внешнее оборудование, если правильно понимаю, ему данные от девайса получить надо, а потом уже сервисами или напрямую в базу писать, а может тут же пользователю показывать надо. типа так "сервисом необходимое звено не реализуешь".
837 dangerouscoder
 
21.12.20
13:06
Напоминает притчу - Лебедь раком щуку..
Есть ВК уже написаная на VB хочешь портировать ее на C# а в чем проблема ?
838 lEvGl
 
гуру
21.12.20
13:07
ну либо сервис виндовый должен быть из Services, такого типа. опрашивает оборудование, шлет в хттп сервис, но это уже совсем другая история
839 Йохохо
 
21.12.20
13:07
(837) не жаба змею?
840 Garykom
 
гуру
21.12.20
13:08
(837) в МКР
841 dangerouscoder
 
21.12.20
13:09
(836) ТЗ то у ТС как всегда нет..
делаем лопасти для вертолета из дерева а потом оказывается что надо был из композита и не лопасти а тяговый винт для самолета...
842 Garykom
 
гуру
21.12.20
13:09
(836) его внешнее оборудование по tcp отвечает по своему протоколу
и есть dll которая умеет по этому протоколу по tcp и можно из нее методы вызывать
843 Serginio1
 
21.12.20
13:10
(832) Чем проще? Я ваял. В Ком ты к обычному классу накидал атрибутов и вперед.
С HTTP куча настроек, сессии итд. Не проще. Хотя кто уже работал и с тем и другим это не сильно то и хлопотно.
Но однозначно Com проще и в написании и в развертывании и поддержке.
Но опять же КОМ ему знаком. Пусть двигается постепенно.
844 lEvGl
 
гуру
21.12.20
13:10
(841) ну я (0) прочитал)
845 Serginio1
 
21.12.20
13:11
(843) Хотя лучше не HTTP а Вэб или gRPC
846 Serginio1
 
21.12.20
13:15
843 Все таки нужно время, что бы разобраться
https://metanit.com/sharp/aspnet5/23.1.php
847 dangerouscoder
 
21.12.20
13:19
(842) есть драйвер устроства который работает по своему протоколу.
Обычно с этим дравером идет sdk с типовыми примерами.. Нужно для начала разобраться с этим а потом прикручивать к 1с (а есть смысл? ) ради формочки в самой 1ске с кнопкой загрузить?
848 H A D G E H O G s
 
21.12.20
13:20
А что за dllку то он хечет?
849 H A D G E H O G s
 
21.12.20
13:20
хочет
850 lEvGl
 
гуру
21.12.20
13:21
(842) ну тут надо "архитектуру" нарисовать, где бд, где какой софт, с интерфейсом или без, где оборудование, интерфейсы и протоколы передачи данных и остальное, что бы понятно было, о чем речь идет, потому что хттп сервис при такой схеме
>>>и есть dll которая умеет по этому протоколу по tcp и можно из нее методы вызывать
непонятно зачем крутить. прикрутить то можно и придумать куда тоже можно, но от среды исполнения никуда не деться, так 1с, а это приложение какое то еще делать
(846) речь наверно не об этом
851 H A D G E H O G s
 
21.12.20
13:21
Есть ссылка на эту dll ?
852 lEvGl
 
гуру
21.12.20
13:23
может она СОМовская?)))
853 H A D G E H O G s
 
21.12.20
13:25
(852) Да вряд ли. Сергей, конечно, тот еще кадр, но не до такой же степени.
854 lEvGl
 
гуру
21.12.20
13:30
шутка же конечно, но в каждой шутке есть доля чего то еще
855 Garykom
 
гуру
21.12.20
13:47
856 Garykom
 
гуру
21.12.20
13:48
(855)+ "tc-b_new_sdk.dll"
857 Гений 1С
 
гуру
21.12.20
13:48
(842) нюансик - протокол не документирован.
858 Гений 1С
 
гуру
21.12.20
13:49
(847) Выше написано, зачем к 1с прикручивается, чего не умеет типовой софт (пальчики)
859 H A D G E H O G s
 
21.12.20
13:55
Там, прежде чето скачать, надо 5 доков загрузить. Просто нахер.
860 H A D G E H O G s
 
21.12.20
13:55
Дайте нормальную ссыль
861 Йохохо
 
21.12.20
14:01
862 Кирпич
 
21.12.20
14:10
863 Кирпич
 
21.12.20
14:10
Только там регаться надо
864 Кирпич
 
21.12.20
14:13
Ну или у русских контор просить. Их как грязи в интернете. И у всех есть своя интеграция с 1с
865 Кирпич
 
21.12.20
14:18
Там делов на полдня, чтобы сделать все варианты ВК и вебсервис в придачу :)
Но взять и сделать - это скучно и рейтинга на инфостарте не прибавит :)
866 Кирпич
 
21.12.20
14:20
Предупреждаю! Вы запускаете китайское на свой страх и риск. Я дал ссылку, а вы сами решайте запускать или нет.
867 Гений 1С
 
гуру
21.12.20
14:21
(861) спасибо за ссылку, не знал про таковских. Ога, конкуренты. ;-) Только скрестить Убио с Замком еще не догадались. ;-)
868 Гений 1С
 
гуру
21.12.20
14:22
(866) а че, там без сырцов?
869 Ненавижу 1С
 
гуру
21.12.20
14:24
(867) конкуренты? да они сидят и ржут над тобой поди
870 Кирпич
 
21.12.20
14:24
(866) dll без
871 Гений 1С
 
гуру
21.12.20
14:25
(869) слушай, я бы с удовольствием отдал им эту тему, но они не могут то, что я делаю. Видимо, все же мелкий ИП чутка оперативнее реагирует на хотелки. ;-)
872 Кирпич
 
21.12.20
14:25
(867) Загугли. У тебя конкурентов штук 80
873 Гений 1С
 
гуру
21.12.20
14:26
(870) тогда в ЖПО.
(872) О, теперь я понимаю в чем мое УТП. ;-)
874 Ненавижу 1С
 
гуру
21.12.20
14:26
(871) не могут вторую неделю тупить на форуме как компоненту создать? согласен
875 Сияющий в темноте
 
21.12.20
14:26
Так это для биометрии?
нафига вообще козе баян?
если нужно сервер устройств биометрии и уже его обмен с 1с,а не подключение хрен знает чего,особенно на сервере,где даже событие не получить.
876 Кирпич
 
21.12.20
14:26
(871) Ты не знаешь, что делают конкуренты. Не звизи. Вешай лапшу на уши своим клиентам. Здесь не надо.
877 Кирпич
 
21.12.20
14:30
(868) А у тебя типа с сырцами? :) Китайцы заценили твои актерские способности и подарили тебе сырцы?
878 Гений 1С
 
гуру
21.12.20
14:30
(876) Ну у меня несколько другой подход. Перефразируя одного мафиози: "Я дам вам столько функционала интеграции 1С и ANVIZ, сколько вы сможете УНЕСТИ". ;-) и все за одну цену.
879 Кирпич
 
21.12.20
14:32
(878) Короче, обычный обман. Капитализьм. Даже не осуждаю.
880 Кирпич
 
21.12.20
14:32
и демпинг
881 Гений 1С
 
гуру
21.12.20
14:34
(875) хахаха, прям дятловец в теме, хоть FAQ пиши, зачем нужна интеграция устройства с 1С, а не сервера с 1С. Почитай, там было, лень искать.
882 Гений 1С
 
гуру
21.12.20
14:36
(874) ну они может и не тупили, но почему-то создали не то, что востребовано. Гримассы капитализма. Вроде делают одно и то же, а заказывают ВК у ИП, странно.
(876) Не знаю, я не боюсь конкуренции в Anviz. Я знаю, что моя компонента классная, за клиентов врать не стану. Может и у них классная, когда у меня перестанут покупать, пойму, что клиенты опередили. ;-)
(879) Какой обман? У меня все честно написано в КП
883 Кирпич
 
21.12.20
14:42
(882) Про компоненту то чо рассказывать. Компонента здесь последнее дело. Это простейшая задача для программиста. Покупают же не из за компоненты, а потому что дешево и продавец не краснеет, когда врет про эксклюзив и неоспоримые достоинства.
884 Гений 1С
 
гуру
21.12.20
15:09
(883) Не совсем так. Во-первых продавец и разработчик имеет конкретный облик, т.е. персону, известную свое деловой репутацией.
К нему всегда можно обратиться, документация опять же и т.п.
Можно всегда подточить и то что точат одному, пригодится другим.
Я сперва тоже начинал только с чтения журнала проходов.
Просто так звезды сошлись.
885 Гений 1С
 
гуру
21.12.20
15:10
Рапортую об успехах.

Написал COM-объект на C#, проект простенький, из одного файла.

Тестирую, работает:

СИ = Новый СистемнаяИнформация();
Сообщить(СИ.ТипПлатформы);
ИмяКласса = "AddIn.AnvizCCH";    
Компонента = Новый COMОбъект(ИмяКласса);
Сообщить(Компонента.Test);

Вот код на C#:

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
//using AnvizCCH;

namespace AnvizCCH
{
    // Setting ComVisible to false makes the types in this assembly not visible
    // to COM components.  If you need to access a type in this assembly from
    // COM, set the ComVisible attribute to true on that type.
    [ComVisible(true), ProgId("AddIn.AnvizCCH")]
    //public class AnvizCCH : AddInLib.ILanguageExtender
    public class AnvizCCH
    {
        const string c_AddinName = "ExtTest";
        

        public string test()
        {   //Здесь внешняя компонента выполняет код функций.
            return "Test2";
        }
    }
}
886 H A D G E H O G s
 
21.12.20
15:11
Будет забавно, когда эта бадяга начнет валиться с Access Violation.
Случайно.
Невоспроизводимо.
Неизбежно.


Долог путь в легенду - за лигой лига,
Что я здесь ищу, в лабиринте фраз?
Я читаю мир по слогам, как книгу.
Нынче это драма, а завтра фарс!
887 Гений 1С
 
гуру
21.12.20
15:12
(886) С хера ли. ;-)
888 Кирпич
 
21.12.20
15:14
(884) Прям история успеха международной корпорации :)
889 Кирпич
 
21.12.20
15:17
(886) Ну это если китайцы там чота понатыкали не так. А так валиться там нечему.
890 Serginio1
 
21.12.20
15:18
(885) Гуид еще пропиши уникальный
[ClassInterface(ClassInterfaceType.AutoDispatch)]
    [Guid("DFDADA57-B22C-4276-928A-8B91C9891FF1")]

В VS средства\Создать GUID
891 H A D G E H O G s
 
21.12.20
15:19
(889) Ооо, там много мякоток.
Начиная от разных приколов со строками C++/BSTR, заканчивая структурками с полями разной размерности в зависимости от разрядности и места выделения памяти.
892 Кирпич
 
21.12.20
15:21
(890) Щас Сирожка спросит "А что, GUID должен быть уникальный?"
893 Кирпич
 
21.12.20
15:24
(891) Да пофиг. Можно же в любой момент объявить кризис IT и заказать студенту.
894 Кирпич
 
21.12.20
15:28
+(893) Правда на пиво студенту может уйти вся выручка корпорации от предыдущих внедрений эксклюзивной биометрической системы.
895 H A D G E H O G s
 
21.12.20
15:31
Вот красочный пример, казалось бы несвязанных вещей
https://www.gunsmoker.ru/2018/05/random-crashes.html
896 Кирпич
 
21.12.20
15:43
(895) Короче, на Delphi писать опасно
897 Кирпич
 
21.12.20
15:46
(895) Чота нифига непонятно как у него Count вдруг стало 5359, вместо нуля
898 H A D G E H O G s
 
21.12.20
15:46
(896) Короче, на всем писать опасно, что умеет или дает работать с памятью напрямую.
Особенно опасно со стеком.
899 Кирпич
 
21.12.20
15:48
А. Оно там в конце inc(count) наверное
900 H A D G E H O G s
 
21.12.20
15:48
(897) Там под курсором inc
901 Кирпич
 
21.12.20
15:49
Ну Гений у нас такие сложные программы не пишет. Ему это не грозит.
902 H A D G E H O G s
 
21.12.20
15:50
Меня позабавила проверка
Если Высота*Ширина=0 Тогда
Выход;

Г-но код есть не только в 1С
903 Кирпич
 
21.12.20
15:52
(902)А чо такого?. Ну сократили малость писанины
904 Гений 1С
 
гуру
21.12.20
15:57
Гм, столкнулся с тем, что не создается COM, если в конструктор добавляю обращение к DLL.
Если убираю, работает.
Может убрать из конструктора и перенести в какой-нибудь специфичный класс Init, попробую.


И еще, как убрать "AddIn.AnvizCCH" из памяти, а то приходится перезаходить из 1С, она блокирует этот DLL и не дает ее перекомпилить.


namespace AnvizCCH
{
    // Setting ComVisible to false makes the types in this assembly not visible
    // to COM components.  If you need to access a type in this assembly from
    // COM, set the ComVisible attribute to true on that type.
    [ComVisible(true), ProgId("AddIn.AnvizCCH")]
    //public class AnvizCCH : AddInLib.ILanguageExtender
    public class AnvizCCH
    {
        //const string c_AddinName = "AnvizCCH";
        public IntPtr anviz_handle;
        public string last_error;


        public string Test()
        {   //Здесь внешняя компонента выполняет код функций.
            return "Test, now time: " + DateTime.Now;
        }
        public string Error()
        {   //Здесь внешняя компонента выполняет код функций.
            return last_error;
        }

        public int Connect(string IP, int port)
        {   //Здесь внешняя компонента выполняет код функций.

            int ret = AnvizNew.CCHex_ClientConnect(anviz_handle, Encoding.UTF8.GetBytes(IP), port);
            return ret;
        }

        public AnvizCCH() {
            try
            {
                //anviz_handle = AnvizNew.CChex_Start();
            }
            catch(IndexOutOfRangeException ex)
            {
                last_error = ex.Message;
            }

        }
    }
}
905 Гений 1С
 
гуру
21.12.20
15:58
(890) прописал, использовал онлайн-конструктор ГУИД
906 Кирпич
 
21.12.20
16:00
(904) //как убрать "AddIn.AnvizCCH" из памяти
Сирожка, это .NET. Он нихера не выгружает без бубна. Пиши на С++
Serginio1 может знает.
907 Кирпич
 
21.12.20
16:02
Хотя может просто Неопределено присвоить объекту в 1с
908 Garykom
 
гуру
21.12.20
16:02
909 acht
 
21.12.20
16:03
Скажите, а "Собираюсь писать ВК для 1С на C#. Часть 2" будет?
Ну как с проепаным ноутбуком?
910 Кирпич
 
21.12.20
16:04
(909) Будет. Можешь смело продавать билеты. Вы там всем колхозом в кинотеатре смотрите?
911 Кирпич
 
21.12.20
16:06
catch(IndexOutOfRangeException ex)  - это от китайцев скопипастил или сам придумал?
912 H A D G E H O G s
 
21.12.20
16:07
Сергей собирает ВК
https://youtu.be/8HZ4DnVfWYQ
913 Кирпич
 
21.12.20
16:08
ту хелп ёр бизнес
914 Гений 1С
 
гуру
21.12.20
16:11
915 Гений 1С
 
гуру
21.12.20
16:11
(909) будет, будет. ;-) я ж работаю
916 Serginio1
 
21.12.20
16:12
(904) Никак. Но зачем ты тестишь через 1С? Создай какой нибудь WinForms и отлаживайся напрямую
917 Serginio1
 
21.12.20
16:12
918 Гений 1С
 
гуру
21.12.20
16:13
(916) я так VB тестил. А как через WinForms?
919 Ненавижу 1С
 
гуру
21.12.20
16:13
так, конструкторы уже появились... это уже немножко ООП начинается, а говорили не будет порнографии
920 H A D G E H O G s
 
21.12.20
16:13
(918) Да ладно.
921 H A D G E H O G s
 
21.12.20
16:14
Я так понимаю, G1C открывает мыльную оперу, судя по (918)
922 Кирпич
 
21.12.20
16:14
(914) Я так понял, ты там ничо не смотрел.
923 Кирпич
 
21.12.20
16:15
или не понял
924 Serginio1
 
21.12.20
16:15
(918)  В этом же проекте добавь еще один проект WiForms. Добавь в ссылки отлаживаемый проект . Кинь на форму кнопку, двойной щелчок и напиши вызов
925 Кирпич
 
21.12.20
16:16
(924) А в консольке нельзя чтоли?
926 Serginio1
 
21.12.20
16:17
927 Serginio1
 
21.12.20
16:18
(925) Фи консолька, это не путь визуальщика. Это любители С++ любят консольки.
Можно конечно
928 Гений 1С
 
гуру
21.12.20
16:19
(924) Вызов типа создать COM-объект?
929 Гений 1С
 
гуру
21.12.20
16:19
О, вынес из конструктора обращение к Start, начало ругаться на DLL, хорошо.
А есть какой-нибудь метод, который вызывается после создания COM-объекта?

Произошла исключительная ситуация (AnvizCCH): Не удается загрузить DLL "tc-b_new_sdk.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)
{МодульУправляемогоПриложения(9)}:    Сообщить("Connect:" + Компонента.Connect("10.10.42.60", 5010));

по причине:
Произошла исключительная ситуация (AnvizCCH): Не удается загрузить DLL "tc-b_new_sdk.dll": Не найден указанный модуль. (Исключение из HRESULT: 0x8007007E)
930 Кирпич
 
21.12.20
16:20
(929) Прочитай сообщение об ошибке еще раз
931 Serginio1
 
21.12.20
16:21
(928) Ты до вызова создать COM-объект отладь то, что хочешь сделать. А потом уже переноси на 1С.
Dll должна быть вместе с проектом. Добавь её в проект и проставь копировать в каталог
932 Гений 1С
 
гуру
21.12.20
16:21
(930) кстати, в NET можно положить tc-b_new_sdk.dll рядом с AnvzCCH.dll, а не кидать ее в каталог винды, мило.
933 Гений 1С
 
гуру
21.12.20
16:22
(931) что значит "копировать в каталог"?
934 Кирпич
 
21.12.20
16:22
(933) мышкой перетащить
935 Serginio1
 
21.12.20
16:23
Или ручками в нужный каталог
(933) Ну в каталог где запускается приложение в зависимости Release Debug
936 Serginio1
 
21.12.20
16:24
937 Кирпич
 
21.12.20
16:24
(932) "кстати, в NET можно положить tc-b_new_sdk.dll рядом с AnvzCCH.dll, а не кидать ее в каталог винды, мило."
Ахиреть просто. :)
938 Garykom
 
гуру
21.12.20
16:28
(932) >кстати, в NET можно положить tc-b_new_sdk.dll рядом с AnvzCCH.dll, а не кидать ее в каталог винды, мило.

так то можно полный путь указать и положить куда угодно
939 Кирпич
 
21.12.20
16:28
(932) После 20 лет в IT Гений обнаружил, что любая программа ищет dll сначала рядом с собой. Редкостный специалист.
940 Кирпич
 
21.12.20
16:35
+(939) вернее не программа ищет, а Windows
941 H A D G E H O G s
 
21.12.20
16:36
(939) Она ищет почти везде, не давая права на ошибку, но у нас Сергей.
https://www.gunsmoker.ru/2015/11/do-not-use-LoadLibrary.html
942 Гений 1С
 
гуру
21.12.20
16:38
var ObjRef = Activator.CreateInstance("Addin.Anviz");
            MessageBox.Show (ObjRef.Test, "Запуск ВК");

гм, а как создать COM-Объект в C#?

Ошибка    CS1503    Аргумент 1: не удается преобразовать из "string" в "System.Type".
943 Кирпич
 
21.12.20
16:38
(941) Ждем новую статью от гения "Почему DLL не загружается"
944 Кирпич
 
21.12.20
16:42
(942) Посмотри в гугле
945 Serginio1
 
21.12.20
16:44
наверное new AnvizCCH.AnvizCCH(); если ты его к проекту подключил. Ты опять не читаешь, что я тебе пишу, а поступаешь так как сам понимаешь.
946 Serginio1
 
21.12.20
16:45
(942 ты хоть GUID то прописал?
947 Serginio1
 
21.12.20
16:49
(942) Мыши кололись
Type t = Type.GetTypeFromProgID(progID);
object obj = Activator.CreateInstance(t);

Но зачем тебе СО если ты можешь работать с типом напрямую?
Все ухожу!
948 Гений 1С
 
гуру
21.12.20
16:50
(945) в сборке сделал два проекта, один с формами, другой с COM
using AnvizCCH; - пишет, что не найдено пространство имен или сборка
949 Гений 1С
 
гуру
21.12.20
16:51
Спасибо, получилось, просто добавил ссылку на проект COM в проект Форм.
950 Гений 1С
 
гуру
21.12.20
16:52
О, даже отладка работает, как мило. ;-)
951 Кирпич
 
21.12.20
16:53
(949) Слава богу. А то Serginio1 уже за сердце схватился
952 Гений 1С
 
гуру
21.12.20
17:00
Странно, включил dll в проект, но при обращении к функции DLL не находит VS эту DLL, а вот 1С находит. ЧЯДНТ?
953 Кирпич
 
21.12.20
17:01
linq
954 Гений 1С
 
гуру
21.12.20
17:03
(953) что linq?
955 Кирпич
 
21.12.20
17:04
(954) Это я Serginio вызываю
956 Кирпич
 
21.12.20
17:05
положи уже dll куда надо и не парься. В каталог, который есть в path, например
957 H A D G E H O G s
 
21.12.20
17:07
(956) "Что такое path" © Г1С
958 Serginio1
 
21.12.20
17:16
(952) Положи нативную Dll в исполняемый проект, что бы она копировалась в нужный катало
Добавь ссылку на проект твоей C# библиотеки в исполняемый проект
https://docs.microsoft.com/ru-ru/visualstudio/ide/managing-references-in-a-project?view=vs-2019
959 Serginio1
 
21.12.20
17:17
960 Garykom
 
гуру
21.12.20
17:24
(952) бывает
961 Garykom
 
гуру
21.12.20
17:24
(957) ыыыыы
962 Serginio1
 
21.12.20
17:29
(962) Смотри каталог Bin исполняемого проекта, твоя dll должна быть там. По 32 и 64 dll я уже тебе ссылки давал
963 Serginio1
 
21.12.20
17:30
964 Serginio1
 
21.12.20
18:15
Почитай про статические конструкторы
https://docs.microsoft.com/ru-ru/dotnet/csharp/programming-guide/classes-and-structs/static-constructors
965 Ненавижу 1С
 
гуру
21.12.20
18:34
(964) ты ему ещё про финализаторы расскажи
966 Гений 1С
 
гуру
21.12.20
18:44
(962) Положил в каталог, так она ругается: {"Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)"}
967 H A D G E H O G s
 
21.12.20
18:50
(966) Кхаб должен страдать
968 Serginio1
 
21.12.20
18:51
(966) У тебя наверняка с SDK есть демо на C#. Посмотри, что там и как.
Опять же читаем https://geekhow.ru/os/windows/0x8007000b/
Смотри какой у тебя процесс. Какой разрядности dll.
969 Гений 1С
 
гуру
21.12.20
18:52
(968) я туда и 32 и 64 кидал DLL, Не алле. При этом в 1С все норм работает, только отлаживать сложно
970 Гений 1С
 
гуру
21.12.20
18:56
сукко, новый SDK асинхронный, а поставлена задача совместимости, значит, будем таймауты вешать.
971 Ненавижу 1С
 
гуру
21.12.20
18:59
(970) ты вот к чему этот набор слов сейчас произнёс?
972 Кирпич
 
21.12.20
18:59
Кинозал охнул
973 Serginio1
 
21.12.20
19:07
(969) У тебя наверняка 1С 32 разрядная и у тебя dll импорт к ней и прописан. У тебя отладчик в руках. Можешь поменять Any CPU на x86ю
Проблема в разрядности.
Нужно всетаки читать, то что тебе дают. У Task есть свойство Result и метод Wait/
https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.tasks.task-1.result?view=net-5.0
974 H A D G E H O G s
 
21.12.20
19:08
(970) Там же есть callback-и, ведь да, да?
975 Serginio1
 
21.12.20
19:11
976 Serginio1
 
21.12.20
19:13
977 H A D G E H O G s
 
21.12.20
19:20
// Из интервью Сергея, окрестности 2022 года.
https://youtu.be/aHLfyWfeATk
978 Кирпич
 
21.12.20
19:24
(975) Не запутывайте пациента
979 Кирпич
 
21.12.20
19:29
(970) Ты где там увидел асинхронное, балда?
980 Serginio1
 
21.12.20
19:37
(979) Наверное async await если смотреть https://github.com/MxLabs/Anviz/blob/0a1750ef616b27d8f819eb5cd0c081d7db9f1827/Sample/Program.cs
То там есть и подписка на события и async await
981 Кирпич
 
21.12.20
19:46
(980) Да нет. То не то.
982 Гений 1С
 
гуру
21.12.20
19:48
Коллеги, я написал необходимый минимум - подключился к устройству, получил с него время.
Как понимаете, это определенный этап оплаты, так что скоро пойду дальше.
Но считаю, что все самое сложное позади.
Большое спасибо всем, кто помогал, вольно или невольно.
Спасибо Сергиньо, что все же убедил в C#, хороший язык, почти как Бейсик (или 1С). ;-)
Удивило, что новое SDK асинхронное. Это, конечно, капец, ради совместимости с прошлыми версиями придется вводить тайм-ауты.

Вот лог, да-да, та самая старая добрая трассировка:

Time:2020.12.21.19:38:44
Windows x86
Test, now time: 21.12.2020 19:38:38
Start:Да
Connect:1
Log:Enter wait event: 2
Wait UPD Event: 21.12.2020 19:38:38
Wait UPD Event: 21.12.2020 19:38:38
UPD Event: 2 wait for: 2
Enter wait event: 19
Wait UPD Event: 21.12.2020 19:38:39
Wait UPD Event: 21.12.2020 19:38:39
UPD Event: 19 wait for: 19
Get time Ret: 1
Enter wait event: 39
Wait UPD Event: 21.12.2020 19:38:40
Wait UPD Event: 21.12.2020 19:38:40
UPD Event: 39 wait for: 39
OK Time Event:
Get time: 2020.12.21.19:38:44

Кто знает, как в Шарпе поставить паузу, я ставлю в секунду, но, судя по логу не работает:
System.Threading.Thread.Sleep(1000);

И еще: как бы в классе разместить постоянный буфер динамический, чтобы постоянно его не таскать по методам:
IntPtr pBuff;
int len = 32000;
pBuff = Marshal.AllocHGlobal(len);

Просто IntPtr pBuff сделать приватным членом класса и инициализировать в конструкторе?
983 Гений 1С
 
гуру
21.12.20
19:50
(979) да, там асинхронка, кури метод CChex_Update. Он возвращает событие из очереди.
После успешного вызова метода событие может еще туда быть не помещено, нужно ждать. Поэтому и тайм-аут. я ж тебе лог в (978) выслал
984 Гений 1С
 
гуру
21.12.20
19:52
(973) ну я еще побьюсь, все же удобно в VS отладчике отлаживать. Но если не победю, то будет старая-добрая трассировка, я ею и в VB6 спокойно пользовался.
985 Garykom
 
гуру
21.12.20
19:54
(983) асинхронка это не таймаут, это когда передаешь адрес свой функции и ее дернут когда будет готово
Callback короче
986 Serginio1
 
21.12.20
19:57
(985) async await и event, ContinueWith это немного большее чем примитивный Callback.
987 Гений 1С
 
гуру
21.12.20
20:01
(985) ну все может быть. Но в общем, разрыв контекста выполнения происходит, да.
988 Serginio1
 
21.12.20
20:04
Во почитай https://docs.microsoft.com/ru-ru/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern
https://docs.microsoft.com/ru-ru/dotnet/standard/asynchronous-programming-patterns/consuming-the-task-based-asynchronous-pattern#interleaved-operations

Ты можешь использую TaskCompletionSource вернуть задачу и поставить её на Result, а когда событие прийдет вызвать TrySetResult
нечто подобное я делал для Cef
CEF, Angular 2 использование событий классов .Net Core
https://habr.com/ru/post/321452/
989 Garykom
 
гуру
21.12.20
20:06
(986) в конечном итоге все сводится к коллбэкам
просто синтаксический сахар наворочен
990 Serginio1
 
21.12.20
20:06
Ну или проще использовать waithandle эвенты
https://metanit.com/sharp/tutorial/11.6.php
991 Serginio1
 
21.12.20
20:09
(989) Этот синтаксический сахар такой огромный, что в 1С только сейчас до async await доросли. Там и ConfigureAwait и много чего.
В итоге все сводится не к одному вызову а огромной куче вызовов, создания замыкания и автомата
992 Гений 1С
 
гуру
21.12.20
20:13
(990) у меня этого слава богу нет.
993 Кирпич
 
21.12.20
20:18
(983) Ну да. Получается асинхронно. В примере по таймеру выгребаются все сообщения и обрабатываются. Все кишки в одном методе. Китайцы.
994 Гений 1С
 
гуру
21.12.20
20:20
(993) хоть указатель на функцию юзай. ;-)
995 Кирпич
 
21.12.20
20:23
Мож оно там где нибудь переключается на синхрон
996 Serginio1
 
21.12.20
20:27
(994) AutoResetEvent waitHandler.WaitOne(); ContinueWith waitHandler.Set();
997 Гений 1С
 
гуру
21.12.20
20:27
Учитывая, что ветка становится длинной и подходит к "логическому концу", резюмирую: вот благодаря таким задачам я понимаю, что я - "победитель по жизни". Взять абсолютно чуждую мне задачу, найти ресурсы и помощь, разобраться, решить и в конечном итоге прийти к результату, попутно написав пару статей, чтобы другим проще было топать по проторенному пути.
Мой фирменный "Гений-Стайл".
998 H A D G E H O G s
 
21.12.20
20:33
999 Кирпич
 
21.12.20
20:37
(997) Лучше бы ты разобрался молча, написал бы свои статьи (не знаю кто эту пургу читает), а не вываливал на весь свет своё колхозное величие и некомпетентность.
1000 Кирпич
 
21.12.20
20:38
the end
1001 H A D G E H O G s
 
21.12.20
20:38
Он еще вернется.
1002 Гений 1С
 
гуру
21.12.20
20:41
(999) завидую людям, которые ощущают себя во всем компетентными. ггг
Программист всегда исправляет последнюю ошибку.