Сделал поддержку внешнего события
В классе создадим пле типа Action<string, string, string>
public class Тестовый
{
public Action<string, string, string> ВнешнееСобытие1С;
// И сделаем эмуляцию события.
public async void TestВнешнегоСобытия()
{
for(int i=0;i<100; i++)
{
var значение = i.ToString();
Task.Run(async() =>
{
await Task.Delay(1000).ConfigureAwait(false);
this?.ВнешнееСобытие1С("Тестовый", "ТестовоеСообщение", значение);
});
await Task.Delay(50).ConfigureAwait(false);
}
}
Добавил вывод типов для дженерик методов
Теперь можно не выводить отдельно метод
// public T ДженерикМетод<V, T>(V param1, T param2, V param3)
Сообщить(Тест.ДженерикМетод(1,"Привет",3));
//
//public V ДженерикМетод2<K, V>(Dictionary<K, V> param1, K param2, V param3)
Словарь= ъНовый("System.Collections.Generic.Dictionary`2[System.Int32,System.String]");
Сообщить(Тест.ДженерикМетод2(Словарь.ПолучитьСсылку(),3,"Привет2"));
// public K ДженерикМетод3<K>(IList<K> param1, int param2, K param3)
List=ъНовый("System.Collections.Generic.List`1[System.String]");
Сообщить(Тест.ДженерикМетод3(List.ПолучитьСсылку(),3,"Привет3"));
Например практически все программисты 1С используют ComОбъект.
По моей методе можно использовать
NetОбъект,NetТип
JavaОбъект,JavaТип
И эти объявления будут реально кроссплатформенны.
При это различия с ComОбъект минимальны. Имя класса равноценно комовскому ProgID. При этом нет ограничений на используемые типы.
Ты можешь написать свою библиотеку поместить в определенное место и использовать её вместо COM. Без регистрации итд. Расширять возможности 1С станет легче.
Например сейчас в конфигураторе куча функций, которые есть в стандартных библиотеках. При этом функционал 1С функций сильно недотягивает до стандартных библиотек.
Учитывая кроссплатформенность можно использовать нетовские или явовские библиотеки везде где можно. Упрощая программирование.
А что касается работы с HTTP,SMPT, JSON то эти библиотеки были задолго до того как 1С их реализовывала, при этом с ошибками и функционалом сильно недотягивающих до .Net или Java.
Стоит ли тратить время на то, что можно взять из стандартных библиотек. А ведь можно легко расширить за счет своих сборок.
При этом например нетовская библиотека весит всего 65 мегабайт, которую можно включить в дистрибутив и главное это кроссплатформенное решение. Причем нет сложного передавать в параметрах и объекты 1С которые поддерживают аналогичный интерфейс. Можно пойти по пути подсчета ссылок в 1С, а доступ к объектам 1С только на время вызова метода ВК.
Даже если вы не хотите интегрировать .Net в 1С, то сделать вариант ВК под .Net и Java думаю стоит. Прежде всего для получения объектов ВК и передачи их в параметрах. Кроме того можно добавить доступ по индексу [], получения итератора.
Прошу прощения за сумбурность. Вроде как вещь полезная (реальная альтернатива IDispatch), но…
Торг12 это печатная форма. А документы это РасходнаяНакладная или СчетФактураВыданный.
Кстати о по существу, что можешь сказать. Или всех только кириллица в C# коде только интересует?
Это не фетиш, а необходимость. Приходится писать много кода и тратить время на перевод русского названия на англицкий нет времени, а чем использовать транслитерацию проще сразу писать на русском. У меня даже проблема в использовании классов .Net в 1С. Народ плюется на латиницу. Кририллицу им подавай. А что касается совмещения кириллицы с латиницей то быстро привыкаешь к переключениям. Punto к сожалению не помогает, так как не понимает совмещенных слов например СписокКонтрагентов начинает тупить.
Теперь следить за GCHandle. Объекты могут храниться на стороне 1С долгое время. Обычно GCHandle создаются на время вызова функции неуправляемого кода. Да и реализация GCHandle внутри может быть сложнее и большая нагрузка на GC.
Вкладка
Шаблоны->Windows->.Net Core
Такой проект отличается от портативного.
В тестах добавил пример создания JObject и сериализации его в Json
В классе создадим пле типа Action<string, string, string>
В 1С.
И не забыть в Переменных модуля установить
Для теста создад ExpandoObject
И наследника DynamicObject
Теперь можно вызвать на 1С
Теперь можно не выводить отдельно метод
Кроссплатформенное использование классов .Net из неуправляемого кода. Или аналог IDispatch на Linux
Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux
Здесь побольше 1С кода.
Кроссплатформенное использование классов .Net в 1С через Native ВК. Или замена COM на Linux 2
Например практически все программисты 1С используют ComОбъект.
По моей методе можно использовать
NetОбъект,NetТип
JavaОбъект,JavaТип
И эти объявления будут реально кроссплатформенны.
При это различия с ComОбъект минимальны. Имя класса равноценно комовскому ProgID. При этом нет ограничений на используемые типы.
Ты можешь написать свою библиотеку поместить в определенное место и использовать её вместо COM. Без регистрации итд. Расширять возможности 1С станет легче.
Например сейчас в конфигураторе куча функций, которые есть в стандартных библиотеках. При этом функционал 1С функций сильно недотягивает до стандартных библиотек.
Учитывая кроссплатформенность можно использовать нетовские или явовские библиотеки везде где можно. Упрощая программирование.
А что касается работы с HTTP,SMPT, JSON то эти библиотеки были задолго до того как 1С их реализовывала, при этом с ошибками и функционалом сильно недотягивающих до .Net или Java.
Стоит ли тратить время на то, что можно взять из стандартных библиотек. А ведь можно легко расширить за счет своих сборок.
При этом например нетовская библиотека весит всего 65 мегабайт, которую можно включить в дистрибутив и главное это кроссплатформенное решение. Причем нет сложного передавать в параметрах и объекты 1С которые поддерживают аналогичный интерфейс. Можно пойти по пути подсчета ссылок в 1С, а доступ к объектам 1С только на время вызова метода ВК.
Например Использование сборок .NET в 1С 7.x b 8.x. Создание внешних Компонент многие бы использовали на равне с ComОбъект, но главная причина её неприменения в том, что она неинтегрирована в 1С.
Даже если вы не хотите интегрировать .Net в 1С, то сделать вариант ВК под .Net и Java думаю стоит. Прежде всего для получения объектов ВК и передачи их в параметрах. Кроме того можно добавить доступ по индексу [], получения итератора.
Прошу прощения за сумбурность. Вроде как вещь полезная (реальная альтернатива IDispatch), но…
Кстати о по существу, что можешь сказать. Или всех только кириллица в C# коде только интересует?
А режет с непривычки.