Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Net Core. Динамическая компиляция класса обертки для получения событий .Net объе

Net Core. Динамическая компиляция класса обертки для получения событий .Net объе
Я
   Serginio1
 
14.09.16 - 10:47
Выложил статьи
https://habrahabr.ru/post/309850/
http://catalog.mista.ru/public/548701/

 В общем хотел обсудить
Так при создании Native API видны ноги из IDispatch. Но там использовались диспинтерфейсы для вызова только Invoke

1. Абсолютно не нужны методы FindMethod, FindProp, GetNParams, HasRetVal, GetParamDefValue
(IsPropReadable, IsPropWritable только для отладчика). Так как у методов bool CallAsProc, bool CallAsFunc, bool SetPropVal и bool GetPropVal есть возвращаемое значение об успешном выполнении. Информация об ошибке возвращается через AddError. Да и вызов по индексу это анахронизм от IDiapatch где было описание диспинтерфейсов для увеличения скорости вызова.
2. При возвращении методами SetPropVal и GetPropVal исключение не вызывается
3. Зачем то происходит установка свойств, там где в коде этого не требуется.
4. Вызывается метод как функция, там где метод вызывается как процедура.
5. Один из основных это нельзя вернуть и передать экземпляр ВК из методов ВК.

Я лично не вижу никаких проблем. Определить значение для такого типа и установить ссылку в поле pInterfaceVal.
 В Native API есть структура 


struct _tVariant
        {
.....
         _ANONYMOUS_STRUCT struct
            {
                void* pInterfaceVal;
               IID InterfaceID;
           }     
...... 
   TYPEVAR vt;
       };



В которой можно использовать void* pInterfaceVal; IID InterfaceID. А в vt; указать, что это ВК. С недавних пор можно передавать byte[]. Так можно пойти и дальше.

Подсчет ссылок происходит на стороне 1С. Передавать можно в том числе и объекты 1С только на время вызова метода. Так при использовании IDispatch в 1С нет проблем при передачи IDispatch в параметрах метода. Сейчас скорость вызова метода ВК почти в 15 раз медленнее вызова из С++ только

public static bool CallAsFunc(int Target, IntPtr ИмяМетодаPtr, IntPtr ReturnValue, IntPtr МассивПараметров, int РазмерМассива)

И медленнее в 5 раз аналогичного метода 1С. При этом вместо одного метода вызывается FindMethod, GetNParams, CallAsFunc. А если вызывать напрямую без ВК то и скорость будет аналогичной с использованием внутренних методов.

Сейчас при передаче в метод ВК через свойство метод(Объект.Свойство) или в метод по ссылке без знач. 1С пытается присвоить значение, даже если это значение не изменилось. Можно в ВК предустмотреть передачу измененных параметров.

Сейчас на Windows множество компонент на COM. Те же ADO,Excel итд. Можно легко создать свою COM библиотеку на любом языке.

 Поэтому при опросе почему не используют Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент

Большинство отвечает, что не намерены использовать продукт неизвестно от кого. Эта ситуация аналогична с ЯП Nemerle. Язык который мощнее C#, но за которым стоят энтузиасты никому не нужен. Но при этом все соглашаются, что если бы эта компонента была интегрирована в 1С на подобии ComОбъект то все ею бы пользовались.

Что касается кроссплатформенности, то .Net Core дает эту возможность. При этом эта технология сейчас активно развивается .NET Core Roadmap

Как я показал можно использовать любые классы .Net Core только на языке 1С. Можно использовать динамическую компиляцию скриптов или написать свою Сборку на C#, что значительно проще чем писать ВК.
 
 
   Кирпич
 
1 - 14.09.16 - 10:52
Избави мя, Господи, от обольщения богомерзкого и злохитрого антихриста, близгрядущего, и укрой меня от сетей его в сокровенной пустыне Твоего спасения. Даждь ми, Господи, крепость и мужество твердаго исповедания имени Твоего святого, да не отступлю страха ради дьявольского, да не отрекусь от Тебя, Спасителя и Искупителя моего, от Святой Твоей Церкви. Но даждь мне, Господи, день и ночь плачь и слезы о грехах моих, и пощади мя, Господи, в час Страшного Суда Твоего. Аминь.
   Лефмихалыч
 
2 - 14.09.16 - 10:53
не хватает понятных примеров, на кой хер это все надо
   Jija Grenkov
 
3 - 14.09.16 - 10:54
(1) В точку. Топикастер явно пергибает с продвижением своиз поделок.
   DDwe
 
4 - 14.09.16 - 10:56
Активность ТС зашкаливает, а внятного ответа на вопрос зачем, не было.
   Serginio1
 
5 - 14.09.16 - 10:58
(1) Ты же сам просил динамическую компиляцию. По твоей просьбе написал
http://catalog.mista.ru/public/547389/
https://habrahabr.ru/post/309340/
А ты тут какими то непонятными словами кидаешься.
(2) А что пример с изменений директорий, события Com порта, получение событий по Web Socket, WhatsApp разве не показательны.

(3) Я просто делюсь опытом. Ну и можно веди и не читатьесли так достает?
   Agent ООЗ
 
6 - 14.09.16 - 10:58
(3) давай, рассказывай, как ты в режиме дежурного бота мисты 24/7, дошел до уровня java middle+, поделись так сказать бесценным опытом.
   Лефмихалыч
 
7 - 14.09.16 - 11:00
(5) в статье я не вижу этих примеров. Ты вроде там намекаешь на что-то там про вацап, но каким конкретно образом это все должно - и что именно - с вацапом делать, я не понял.
   DDwe
 
8 - 14.09.16 - 11:00
(6) +100500 )))
   DDwe
 
9 - 14.09.16 - 11:00
(5) "А что пример с изменений директорий, события Com порта, получение событий по Web Socket, WhatsApp разве не показательны. " - Зачем?
   Serginio1
 
10 - 14.09.16 - 11:02
(7) Делал для большого .Net. Но по сути с него и решил сделать динамическую компиляцию.
Вот аналог
1C Messenger для отправки сообщений, файлов и обмена данными между пользователями 1С, вэб страницы, мобильными приложениями а ля Skype, WhatsApp

http://catalog.mista.ru/public/434771/
 
 Рекламное место пустует
   Лефмихалыч
 
11 - 14.09.16 - 11:02
ну, и неадекватная реакция на конструктивную обратную связь несколько обескураживает
   Лефмихалыч
 
12 - 14.09.16 - 11:03
(10) как это (0) связано с этим (10)?
   xafavute
 
13 - 14.09.16 - 11:03
(10) а где кнопочка скачать?
   Serginio1
 
14 - 14.09.16 - 11:03
(11) Например? Про конструктив и обратную связь.
   DDwe
 
15 - 14.09.16 - 11:04
(10) Можно еще чайник подцепить к 1С и включать по кнопке из РТиУ. Но зачем?
   Лефмихалыч
 
16 - 14.09.16 - 11:04
(14) я тебе написал, чего не хватает в статье, чтобы она стала понятной. Ты мне ответил какую-то хуергу
   Loky9
 
17 - 14.09.16 - 11:04
v8: v8: Elisy .Net Bridge 4 для 1С:Предприятие 8.2 (платное ПО)
Не учатся ничему некоторые и учиться не хотят.
   Serginio1
 
18 - 14.09.16 - 11:04
   Кирпич
 
19 - 14.09.16 - 11:05
(5) я ничего не просил. у меня и так всё прекрасно работает, без твоих чудесных изобретений.
   Serginio1
 
20 - 14.09.16 - 11:06
(16) Мне тебя сложно понять. В 10 как раз используется динамичекая компиляция событий.
   Serginio1
 
21 - 14.09.16 - 11:06
(19) Но у тебя без объектов.
   Кирпич
 
22 - 14.09.16 - 11:06
(17) вот там второй ненормальный, который C# к 1С прикручивает. Их двое таких, но тот, первый, вроде успокоился давно.
   Serginio1
 
23 - 14.09.16 - 11:07
21 И не кроссплатформенно
   Лефмихалыч
 
24 - 14.09.16 - 11:07
Кстати, третий каммент по ссылке из (10) просто гениален:

"Makushimo 06.05.2016 05:37
а что нужно прочитать, чтобы понять то, что тут написано?"

Автор, нужны понятные примеры. Пока что ты решаешь несуществующие ни у кого проблемы, способом, которого ни кто не понимает. Ты или продаешь хрень, или хреново продаешь, или продаешь не тем...
   Serginio1
 
25 - 14.09.16 - 11:07
(17,22) Оно платное. И не кроссплатформенно.
   Serginio1
 
26 - 14.09.16 - 11:08
(24) Я никому ничего не продаю. Кому нужно помогаю, иногда за вознаграждение.
   Loky9
 
27 - 14.09.16 - 11:09
(25) Были бы деньги, была бы кроссплатформа.
   Serginio1
 
28 - 14.09.16 - 11:09
26+ Но люди сами предлагают. Многие сами разбираются
   Loky9
 
29 - 14.09.16 - 11:09
Зато оно "1С совместимо"
   Кирпич
 
30 - 14.09.16 - 11:09
(21) каких еще объектов? мне вообще неважно объекты или не объекты. Мне нужно чтобы задача решалась быстро и правильно. Это тебе нужно обязательно чтобы .NET и объекты.
   xafavute
 
31 - 14.09.16 - 11:09
(24) Это не продажа - это просто поток мыслей.
Поэтому все обсуженеия скатываются к обсуждению личности ТС
   Лефмихалыч
 
32 - 14.09.16 - 11:10
(26) там "продаешь" в широком смысле.
Еще раз, услышь: тебя ни кто не понимает и это __твоя__ проблема.
   Serginio1
 
33 - 14.09.16 - 11:10
(27) Конечно за деньги можно, что угодно. Я показал, как можно кроссплатформено заменить COM
 
 
   batman69
 
34 - 14.09.16 - 11:17
Один пытается рабочую конфигурацию зачем-то с 7 на 8 перенести, второй NET пихает во все дырки. Нет, чтобы полезное всем предложить. Тебе нравится NET, а мы тут причем?
   Serginio1
 
35 - 14.09.16 - 11:19
(34) А я разве насильно заставляю тебя читать, Есть много людей которым это нужно. В том числе и ради позавтельности.
Вон тут про Java топики. Ты там возмутился?
   batman69
 
36 - 14.09.16 - 11:22
(35) "Есть много людей которым это нужно" - Кто? И как раньше спрашивали - зачем?
   xafavute
 
37 - 14.09.16 - 11:23
(36) Есть и их много!!!!
   Кирпич
 
38 - 14.09.16 - 11:23
двое их
   batman69
 
39 - 14.09.16 - 11:24
Ещё раньше помнится Python кто-то к 1С прикручивал и где он?
   Serginio1
 
40 - 14.09.16 - 11:24
(36) Ну можешь посмотреть, кто скачал разработку за деньги, еще куча народу по бесплатным ссылкам http://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

А зачем у каждого своя проблема. И их много.
Хотя бы .Net в 1С. На примере использования HTTPClient,AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция

http://catalog.mista.ru/public/466196/
   Loky9
 
41 - 14.09.16 - 11:26
(39) Народ качает, спрашивают по разу в год)
   Йохохо
 
42 - 14.09.16 - 11:26
Кино такое было "джек восьмеркин американец", автор ну прям гг из него. Увлечен, что то делает, но нихрена не понятно, даже одно предложение не понять. А потом придет сермяк, сделает просто, напишет понятно и срубит на блэкджек с 1сом и шлюхами
   Serginio1
 
43 - 14.09.16 - 11:31
(39) А Питон можно и через мою разработку http://metanit.com/sharp/tutorial/9.3.php

(41) Спрашивают.
(42) Тебе понятно зачем COM, Web Сервисы?
Это то же самое. Есть стандартная библиотека с кучей классов которые ты можешь использовать. Например работа с Excel, ADO но кроссплатформенно.
   Loky9
 
44 - 14.09.16 - 11:32
(43) Через мою тоже NET можно ;)
   Лефмихалыч
 
45 - 14.09.16 - 11:32
(43) аксесс форбидден
А зачем кросплатформенность для работы с экселем и адо?
   xafavute
 
46 - 14.09.16 - 11:33
ексель и 1с нативно умеет уже
   Serginio1
 
47 - 14.09.16 - 11:36
(42) Опять же вариант с WhatsAp у которго до 40 событий. Переписвать вручную я замучался. Да и переделывть на COM тоже требует труда. Здесь берешь библиотеку и используешь без изменений.
(44) Покажи посмотрю. Заодно пойму, за что мою хаешь.
И у меня кроссплатформенно.
(46) Умеет, но как там со стилями, формулами итд.
Кстати 1С каждый раз добавляет то, что уже есть в огромной куче библиотек и классов в них. Плюс куча сторонних библиотек через Nuget
   Serginio1
 
48 - 14.09.16 - 11:41
(39) По Питону можешь помотреть здесь http://catalog.mista.ru/public/186206/
   Loky9
 
49 - 14.09.16 - 11:43
(47) Я и не хаю. Моя лежит где и лежала, но уже полная. Делалось "с кандачка", как ты говоришь, второй в жизни проектик на шарпе как-никак и первый с железопитоном, так что в её потребительских качествах я не уверен.
 
 Рекламное место пустует
   xafavute
 
50 - 14.09.16 - 11:47
битва сишарпистов на форуме 1с?
   Serginio1
 
51 - 14.09.16 - 11:51
(50) а я ещё и крестиком вышивать умею


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует