gifts2017

1С.Net:Предприятие - подключите .Net Framework к 1C через Elisy .Net Bridge

Опубликовал Сергей Карташев (Elisy) в раздел Обмен - Обмен с другими системами

.Net Framework – это большой набор решений, созданных для разработки современных приложений взамен COM/OLE/ActiveX. Компонент Elisy .Net Bridge позволяет без особых усилий добавить недостающую функциональность в 1C 7.7/8.0/8.1/8.2, реализуя бесконечное количество сценариев обращения к платформе. Здесь разработчики могут ознакомиться также с бесплатной NFR-версией.
Эксперты (разработчики, которые на практике использовали Elisy .Net Bridge):
  • viollan - Сотрудник компании АТехнолоджи. Подключение к 1С .Net-сборок для 1С-конфигурации производства окон.
  • vic_msu - Распознавание штрихкодов. Подключение к 1C .Net-сборок сторонних разработчиков.
  • Serno - Использование регулярных выражений для анализа и поиска ошибок в модулях конфигураций (оптимизация скорости для УПП и УСО).

Совместимо! Система программ 1С:Предприятие

После успеха .Net framework 2.0 компания Microsoft стала развивать технологию, расширяя число поддерживаемых операционных систем и переводя свои ключевые продукты, например, SQL Server и MS Office на поддержку .Net API. Языки программирования: C++, VB, интегрированные в Visual Studio, начиная с 2003 версии стали поддерживать .Net framework. Был выпущен новый язык программирования C#. Объясняется это тем, что разработка приложений с использованием .Net framework уменьшает количество исходного кода на 60-80 процентов, пропорционально уменьшает время на отладку и число ошибок, допущенных программистами.

Elisy .Net Bridge добавляет функциональность .Net Framework к 1C версий 7.7/8.0/8.1/8.2. Текущие версии Elisy .Net Bridge 1.0 и 2.0 предназначены для реализации в 1C функциональности консольных приложений C# и VB.Net. Сюда относятся:

  • Шифрование в т.ч. асимметричными алгоритмами и вычисление контрольных сумм;
  • Работа с веб-сервисами и электронной почтой;
  • Интегрирование с системами, которые предоставляют .Net API;
  • Работа с регулярными выражениями, которых недостает в 1С;
  • Формирование и преобразование изображений;
  • Обращение к реестру Windows и получение региональных и системных настроек системы;
  • Организация кеша, в котором хранятся часто используемые значения без обращения к серверу;
  • Более эффективная обработка XML (добавляются XPath и XSL-трансформация).

Elisy .Net Bridge 2.0 разработан для использования с .Net Framework 3.5 SP1 и выше, поддерживает 1С:Предприятие v.7.7/8.0/8.1.

Основные особенности:

  • Поддерживает создание объектов .Net из GAC и по полному пути к сборке;
  • Поддерживает прямое обращение к свойствам и методам объектов;
  • Поддерживает типы Enum и производные;
  • Обеспечивает развернутую информацию об ошибках;
  • Свойства объектов видны при отладке из конфигуратора 1C;
  • Не требует предварительной регистрации через REGSVR32 и REGASM, можно обращаться через функцию ЗагрузитьВнешнююКомпоненту;
  • Содержит логику для обращения к специфическим возможностям .Net framework.

Предусмотрена гибкая система лицензирования (от однопользовательских лицензий до GPL) и скидок (до 60%).

 


 

Организация простейшего Http-сервера напрямую из 1С:

AttachAddIn("AddIn.ElisyNetBridge");
AddIn = New("AddIn.ElisyNetBridge");
net = AddIn.New("Elisy.NetBridge", "Elisy.ElisyNetBridge");

Если НЕ net.GetStatic("System.Net.HttpListener","IsSupported") Тогда
Сообщить("Для использования класса HttpListener нужна Windows XP SP2 или Server 2003.");
Возврат;
КонецЕсли;

listener = net.New("System.Net.HttpListener");
listener.Prefixes.Add("http://*:8080/");
listener.Start();

Сообщить("Прослушивание...");
//Метод GetContext блокирует пока ждет запрос. 

context = listener.GetContext();
request = context.Request;
// Получить объект ответа
response = context.Response;
// Создать ответ - HTML-строку
responseString = "Ответ от HttpListenerПосетите 1csoftware.com";
buffer = net.GetStatic("System.Text.Encoding", "UTF8").GetBytes(responseString);
// Получить поток ответа и записать ответ в него.
response.ContentLength64 = buffer.Length;
output = response.OutputStream;
output.Write(buffer,0,buffer.Length);
// Необходимо закрыть выходной поток.
output.Close();
listener.Stop();

 

Следующий код показывает, как напрямую из 1С нарисовать рисунок и сохранить его на диске:

AttachAddIn("AddIn.ElisyNetBridge");
AddIn = New("AddIn.ElisyNetBridge");
net = AddIn.New("Elisy.NetBridge", "Elisy.ElisyNetBridge");

//Код показывает, как нарисовать простое изображение и записать его в файл
drawing = net.LoadAssembly("System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a");
buffer = net.New("System.Drawing.Bitmap", 350, 350);
bufferSurface = net.CallStatic("System.Drawing.Graphics", "FromImage", buffer);

yellowBrush = net.New("System.Drawing.SolidBrush", net.New("System.Drawing.Color").Yellow);
bufferSurface.FillEllipse(yellowBrush, 25, 25, 187, 187);

blackBrush = net.New("System.Drawing.SolidBrush", net.New("System.Drawing.Color").Black);
bufferSurface.FillEllipse(blackBrush, 70, 75, 22, 17);
bufferSurface.FillEllipse(blackBrush, 140, 75, 22, 17);

blackPen = net.New("System.Drawing.Pen", net.New("System.Drawing.Color").Black, 10);
bufferSurface.DrawArc(blackPen, 65, 95, 102, 75, 0, 180);

buffer.Save("d:\Smile.jpg");

 

Ссылки по теме:

Сайт разработчиков
Elisy .Net Bridge на английском языке
Блог на richmedia.us
Распознавание штрихкодов

// //

Скачать файлы

Наименование Файл Версия Размер
Демо-версия Elisy.NetBridge SDK v4.0.8 88
.zip 1,21Mb
13.03.15
88
.zip 4.0.8 1,21Mb Бесплатно
Elisy .Net Bridge v.4 - .Net Framework из 1C 8.2: Лицензия 2-9 рабочих мест
23.05.2014
5000 руб.
Elisy .Net Bridge v.4 - .Net Framework из 1C 8.2 : Лицензия на 1 рабочее место
23.05.2014
6000 руб.

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Артур Аюханов (artbear) 19.05.09 12:23
Слишком большая плата за рабочее место :(
Стоит почти как полноценная Винда :) а юзает фактически возможности бесплатного фреймворка.

ЗЫ да и бесплатный аналог есть на форуме www.1cpp.ru
2. Сергей Карташев (Elisy) 22.05.09 10:20
(1) Мы предлагаем свой продукт, но ни в коем случае не навязываем его. Максимально пойдя навстречу разработчикам, была выложена бесплатная NFR-версия с полной функциональностью. Предусмотрели гибкую систему скидок до 60%. Поверьте, если бы объем продаж компонента был сопоставим с Windows, цена была бы на порядок или два дешевле.
Я предполагаю, что бесплатный аналог на 1cpp.ru поддерживает только 1С v.7.7. Последние тесты нашего компонента показали, что и на 1С 8.2 бета он работает. Таким образом достигается поддержка всех популярных версий 1С, а приобретенный компонент и написанный для него код прослужат дольше.
3. Василий Демидов (Душелов) 22.05.09 11:04
Одно только не пойму. Зачем это надо? Тот, кто сможет написать код для этой компоненты, сможет спокойно написать свою ВК/ActiveX и не мучаться с отладкой и прочим.
4. Сергей Карташев (Elisy) 22.05.09 15:38
(3) ВК предназначен, прежде всего, для программистов 1С мало знакомых с другими языками программирования (C# и C++).
Давайте рассмотрим пример из статьи с рисованием. Традиционный подход предусматривает, что какой-то специалист напишет на C# проект внешнего компонента, заложит в него функции, например: НарисоватьДугу, СоздатьИзображение, СоздатьКисть и т.д. Вся проблема в том, что проект на C# - это ненужный посредник-враппер, дублирующий функциональность .Net Framework и добавляющий свои ошибки. Всю функциональность .Net framework таким способом предоставить все равно никто не сможет из-за его гигантских размеров. Программист 1С ограничен в работе только теми функциями, которые захотел предоставить ему разработчик C#. Шаг влево, шаг вправо не допускается без переписывания проекта C#. Это все время. Вторая проблема – реализация каждой задачи на 1С требует отдельного внешнего компонента. Один – на рисование, другой – на работу с веб-сервисами, третий – на отправку почты, четвертый – на регулярные выражения.
Elisy .Net Bridge предполагает использование одного ВК на все задачи, предоставляя гибкость напрямую обращаться к методам и свойствам объектов .Net framework. Нужно нарисовать прямоугольник, не ждите, пока разработчик C# добавит функцию НарисоватьПрямоугольник, а смело вызывайте bufferSurface.FillRectangle из кода 1С.
По поводу отладки. Отладка в случае с Elisy .Net Bridge присходит быстро и прозрачно, так как ведется только конфигуратором 1С с возможностью просматривать значения свойств объектов .Net в отладчике, установки точек останова и др. Никаких дополнительных сложностей по сравнению с другими методами я придумать не могу.
5. Василий Демидов (Душелов) 22.05.09 15:48
(4) >ВК предназначен, прежде всего, для программистов 1С мало знакомых с другими языками программирования (C# и C++).

Как, мало знакомый с другими языками программист 1С напишет код, приведенный здесь в качестве примера?
6. Василий Демидов (Душелов) 22.05.09 15:54
(5) На самом деле все разработки имеют право на существование, но вот мое лично мнение, что это не взлетит в качестве платной разработки.
7. Сергей Карташев (Elisy) 23.05.09 11:25
(5) В примере нет никаких новых для 1С конструкций. Обычные объявление переменных, вызов функций и обращение к свойствам. Знание же объектной модели и назначения функций – это дело практики. .Net framework предоставляет полное описание своих классов на русском языке. Например, не знаю я, что такое FillEllipse – открою хелп на русском: http://msdn.microsoft.com/ru-ru/library/2t63kk0t.aspx, прочитаю. Внизу найду пример и по аналогии напишу его для 1С. Количество книг по .Net и C# больше, чем по программированию на 1С. Изучение объектов .Net даром не пропадет, так как фактически вы изучаете новые технологии (C#, VB.Net, Asp.Net, Silverlight, Mono).
Мало кто с нуля пишет программы. Ищут подходящий шаблон-пример и дорабатывают его для себя. Elisy .Net Bridge включает в себя уже около 10 примеров использования, планируется, что количество примеров будет расширяться.
8. Василий Демидов (Душелов) 23.05.09 11:57
(7) А в чем проблема взять шаблон ВК на C#, взять примеры, доработать под себя и будет нужная ВК?
9. Аркадий Кучер (Abadonna) 23.05.09 14:21
(8)>А в чем проблема взять шаблон ВК на C#
А в чем проблема взять шаблон ВК на Дельфи, в коей компонент, как собак нерезанных, а не хватит - и дописать можно :) Потом взять WinAPI, и т.д...
И ваще .Net не нужен ;)
10. vip (vip) 23.05.09 19:35
> ВК предназначен, прежде всего, для программистов 1С мало знакомых с другими языками программирования (C# и C++).
Кгрхм... Позволю себе не согласиться.

(7) Да дело совсем не в шаблонах, а, скорее, в отходе от шаблонов.
Эти "шаблоны" писали тоже живые люди и это, в свое время, было откровением идля них, и для других.

А реализация... Тов. Abadonna в (9) высказывает абсолютно правильную мысль - все языки не более, чем обертка над API (который, в свою очередь, обеертка еще над чем-то).
И .Net не панацея. Это иллюзия, что .Net-программы невелики по размерам.
За этой невеликостью стоит такое лишнее поедание ресурсов...
Но удобно.
11. Аркадий Кучер (Abadonna) 23.05.09 19:46
(10)>Тов. Abadonna
Товарищи все в Париже, у нас - господа ;)
12. Сергей Карташев (Elisy) 25.05.09 15:07
(6) Профессия у нас такая – с большими рисками. Только 50% проектов в информационных технологиях считаются успешными. Если говорить конкретно о Elisy .Net Bridge, то есть много задумок, которые еще не реализованы в текущей версии проекта. Для успеха нужен стимул, которым может стать плата за программу, чтобы проект не заморозился в начальном состоянии и радовал пользователей новыми версиями. Политика в ценообразовании такая: для разработчиков компонент бесплатный, он платный только для конечных пользователей. Неприятно, конечно, что есть плата, но 1С сама по себе платная и с этим пользователи уже давно смирились.
Разработчики, пользуясь бесплатной версией, могут ближе познакомиться с платформой .Net, а также придумать на базе компонента свои платные решения. Прибыль с пользователей можно получить как за работу, так и за компонент, который в таком случае разработчикам поставляется с 40% скидкой.
Еще приятно удивляет количество скачиваний за несколько дней. Это говорит о том, что компонент востребован. Хотелось бы, конечно, видеть побольше отзывов и предложений. Может, кому-то недостает конкретных примеров использования.
13. Сергей Карташев (Elisy) 30.05.09 12:04
Интересная статья, посвященная шифрованию и защите информации в 1С с использованием компонента Elisy .Net Bridge:
http://www.richmedia.us/post/2009/05/shifrovaniye-zashita-informacii-1c-predpriyatiye.aspx
14. Василий Демидов (Душелов) 30.05.09 13:29
(13) А что с этой информацией делать? Убираем проверку на валидность цифровой подписи из 1С-ки и все...
15. Сергей Карташев (Elisy) 01.06.09 07:09
(14) Я суть вопроса не понял. Статья по ссылке (13) приводит примеры, как из скрипта 1С выполнять шифрование/расшифровку/подписывание, обращаясь к .Net Framework. Все с подробными комментариями.
16. Алексей Серебряков (mselling) 03.06.09 14:08
на чем только не пытаются делать деньги...
17. Стас (Salvador Limones) 03.06.09 14:16
18. Сергей Карташев (Elisy) 04.06.09 07:20
(17) Я знаю об этой разработке. Ее основные недостатки в основном такие же, как в 1й версии Elisy .Net Bridge. Это:
а) Сложность отладки - не поставишь точку останова на строку в переменной СтрокаДляКомпиляции, также не посмотришь значения свойств объектов. Хорошо, когда пример простой, как в статье, а если нет - намучаешься.
б) Компонент (17) требует прадварительную регистрацию в реестре, для этого операцию нужно выполнять на каждом клиенте.
в) На вход из 1С в компонент (17) можно подать и вернуть только элементарные типы: bool, string, числовые. Enum, например, он не поддерживает. Проблемы возникнут с классами с неустановленными атрибутами ComVisible или ComVisible=false.
Самое главное - на Elisy .Net Bridge можно организовать всю функциональность (17) прямо из кода 1С.

19. Игорь Исхаков (Ish_2) 06.06.09 12:58
На взгляд дилетанта подход, изложенный в теме, представляется перспективным.
Не вызывает возражений и :

"Вся проблема в том, что проект на C# - это ненужный посредник-враппер, дублирующий функциональность .Net Framework и добавляющий свои ошибки."

Осталось ожидать от "1с" реализации этих возможностей как встроенных в платформе 8.2.
На радость пользователям и ,возможно , к огорчению разработчиков
Elisy .Net Bridge .
20. Сергей Карташев (Elisy) 08.06.09 07:14
(19) Мы сами ожидали от 8.2 такой функциональности и выпустили .Net Bridge только после того, как узнали, что в новой версии 1С такой функционал не заложен.
Логично предположить, что 1С не спешит добавить такие возможности в свой продукт из-за того, что пользователи смогут сравнивать 1С с .Net framework и сделают выбор в будущем не в пользу первой технологии. Или будут требовать от 1С фичи из .Net.
21. Андрей Скляров (coder1cv8) 08.06.09 08:31
Почитал примеры использования компоненты, так и не понял, чего я (как простой одинэсник) не смогу сделать без вашей ВК...
Продоваться не будет, я думаю это очевидно. А так молодцы!
22. Игорь Исхаков (Ish_2) 08.06.09 08:46
(21) Действительно, хотелось бы убедительного примера от разработчиков :
" Чего не достает простому одинэснику в 1с и как компонент Elisy .Net Bridge
ему в этом поможет "
23. Игорь Исхаков (Ish_2) 08.06.09 09:21
+ 22 Для продаж недстаточно приведенного примера с рожицей.
Нужна демонстрацонная внешняя обработка , чтобы одинэсники могли сравнить , оценить , ахнуть : " Как мы жили без компонента Elisy .Net Bridge ?!!".
24. Сергей Карташев (Elisy) 08.06.09 10:48
(22) Elisy .Net Bridge создавался изначально для иностранцев, как я понял, с целью интеграции 1С с зарубежными системами. Я подозреваю, что это Microsoft Dynamics CRM, которая имеет .Net API. В принципе, это .Net Bridge - хороший вариант для использования в таких ситуациях.
1c-ников сложно чем-то удивить. Мы работаем над примерами. Сейчас уже доступны примеры на шифрование/расшифровку данных, регулярные выражения и рисование, конвертация форматов изображений.
Чтобы ахнули 1С-ники сначала нужно определиться, чего 1с-никам не достает в глобальном смысле. Если есть нерешенные задачи 1C, пишите. Мы постараемся предложить свое решение через примеры к Elisy .Net Bridge.
25. Игорь Исхаков (Ish_2) 08.06.09 11:22
(24) Из цитаты :

"Elisy .Net Bridge создавался изначально для иностранцев, как я понял, с целью интеграции 1С с зарубежными системами. Я подозреваю, что это Microsoft Dynamics CRM, которая имеет .Net API."

следует что Вы не являетесь разработчиком Elisy .Net Bridge ?

Цитата :
"Сейчас уже доступны примеры на шифрование/расшифровку данных, регулярные выражения и рисование, конвертация форматов изображений."

Здесь пока не выложены эти примеры в виде внешних обработок.

Цитата :
"Чтобы ахнули 1С-ники сначала нужно определиться, чего 1с-никам не достает в глобальном смысле... пишите ."

Вы продвигаете свой продукт ? Вы хотите его продать ?
Почему кто-то должен Вам писать , чтобы помочь Вам продать Ваш продукт ?
Пока простые одинэсники просто недоумевают (21) и считатют ,что
запросто обойдутся без Вашего продукта.
MaxUniversal; xpym-xpym; bashta.aleksey; +3 Ответить 1
26. Сергей Карташев (Elisy) 08.06.09 13:47
(25) Ish_2:

Добрый день.
Ответьте сначала на вопрос вы - вы представитель конкурирующей фирмы ?
Просто не совсем понятно откуда родилась такая гневная отповедь. Прямо распяли и сожгли. Но давайте по порядку:

Цитата:
"следует что Вы не являетесь разработчиком Elisy .Net Bridge ?"

Мы являемся. И если честно то не вижу сути претензии. Вы разговариваете только с разработчиками ?

Цитата:
"Здесь пока не выложены эти примеры в виде внешних обработок."

Мы над этим работаем. в чем суть обвинения ? Вы считаете что мы выдаем желаемое за действительное и разводим "простых одинэсников" ? это не так, банально не хватает времени. если же вам не нравится скорость нашей работы - вы можете стать спонсором и мы обязуемся что примеры появятся в ближайший срок. А то не совсем понятно кто кого в попытке "навариться за чужой счет" обвиняет.

Цитата:
"Вы продвигаете свой продукт ? Вы хотите его продать ?
Почему кто-то должен Вам писать , чтобы помочь Вам продать Ваш продукт ?"

Пожалуйста, говорите только от своего имени. Если же вы представляете консорциум 1с программистов - то пожалуйста представьтесь. По существу вопроса отвечаю - мы не в коем случае никого не заставляем. Колхоз это дело добровольное. Имеется ввиду такая ситуация когда программисту необходима подобная система но он хочет убедится что он все правильно понял и получит то что и ожидает за свои деньги. все по честному. В крайнем случае мы продукт
дорабатываем. Если вас беспокоит тот факт что ваши уникальные идеи будут использованы в корыстных целях - то просто не делитесь ими. Уверен что некоторые будут с Вами солидарны.

Цитата
"Пока простые одинэсники просто недоумевают (21) и считатют ,что
запросто обойдутся без Вашего продукта."

?? Нет, всетаки конкурирующая фирма :-)
xpym-xpym; +1 Ответить
27. Игорь Исхаков (Ish_2) 08.06.09 14:04
Как на духу : нет здесь конкурирующей фирмы.
Вы отреагировали на показавшийся резким тон.
Почему бы не предположить , что это тон выражающегося без обиняков Вашего сторонника ?
Способ продвижения Вашего продукта вызывает большие сомнения.
Судя по всему продвижением занимаются не менеджеры , а сами программисты.
Явление распространенное и печальное. Отсюда и непонимание между нами.
Но успехов я Вам все равно пожелаю.
28. Андрей Скляров (coder1cv8) 08.06.09 14:05
Нда... Я вот лично, без притензий, просто хотел полюбопытствовать зачем мне может понадобится Ваша ВК, а в результате кроме "шифрования, регулярных выражений и конвертации изображений" - того что можно сделать проще и используя свободное ПО - я так ничего и не услышал...
29. Сергей Карташев (Elisy) 08.06.09 14:24
(27) Я рад что наша переписка не переросла в кровавый антогонизм. За пожелания - спасибо, а насчет менеджеров - да, критика уместна. Мы стараемся, но пока идей больше чем успевают записать руки, от этого возникает некоторая путаница.

30. dushelov (Душелов) 08.06.09 14:27
+28, как я и писал, зачем людям, которые могут писать на C# использовать Вашу ВК, если проще написать свою, специализированную, да еще и бесплатно.
31. Игорь Исхаков (Ish_2) 08.06.09 14:28
(29) Мне как дилетанту приятно было походить чуток в конкурирующих фирмах.
32. Аркадий Кучер (Abadonna) 08.06.09 14:32
>если проще написать свою, специализированную, да еще и бесплатно.
А, главное, интереснее ;). И без .Net Framework (бе-бе-бе тебе, Василий ;))
33. Аркадий Кучер (Abadonna) 08.06.09 14:41
Всё хотел спросить C# - это же до-диез, а почему не ре-бемоль? Нота-та та же ;)
34. dushelov (Душелов) 08.06.09 14:52
(32) У нас тут разговор про C#, так что дельфятникам тут не место :)))
35. Аркадий Кучер (Abadonna) 08.06.09 14:55
(34)
Ну это вы, хохлы, уси,
Программируете на Си,
А мы, все москали,
Программируем на паскали
:))))
xpym-xpym; +1 Ответить
36. Сергей Карташев (Elisy) 08.06.09 15:00
(30) Я с трудом представляю себе самописную специализированную ВК для обращения к SQLServer 2005 через .Net API. Это что, на каждый класс, структуру и Enum делать свой враппер?
37. Сергей Карташев (Elisy) 08.06.09 15:02
(31) Если интересуют вопросы этой статьи, то я бы не говорил о таком человеке, как о дилетанте. Конкурирующая фирма - к слову пришлось.
38. dushelov (Душелов) 08.06.09 15:17
(36) Ну через АДО из 1С люди-то работают с SQL-ем и не парятся особенно...
39. Аркадий Кучер (Abadonna) 08.06.09 15:38
(37,+38) Блин, всю жизнь через ADO со скулем работаю, и даже в голову не приходило ВК использовать. Зачем? ВК надо там, где уж НИКАК не обойдешься
coder1cv8; +1 Ответить
40. Сергей Видякин (badboychik) 08.06.09 15:53
еще камень в огород - регулярные выражения давно использую вот так:
РВ = Новый COMОбъект("VBScript.RegExp");
РВ.Pattern = Шаблон;
try
myMatches = РВ.Execute(Текст);
except
message("Error occurred while executing regexp: "+ErrorDescription()); return;
endtry;
ClearMessages();
if myMatches.Count = 0 then message("No matches was found");return; endif;
For Each myMatch in myMatches do
Message("Finded: '"+myMatch.Value+"'");
if myMatch.SubMatches.Count>0 then
for each sub in myMatch.SubMatches do
Message(" Sub: '"+sub+"'");
enddo;
endif
enddo;
// Замечание - русские буквы не подпадают под \w, их надо указывать как [А-я]

Хотя бесспорно, что в .NET есть ооочень много интересных возможностей... К счастью многое есть уже в 1С 8 (веб,хмл,хтмл,изображения,сжатие,DOM,диаграммы и т.д.). Вот для 7.7 было бы актуально, но там уже итак понаписано дополнений
cleaner_it; +1 Ответить
41. serno (Sergey.Noskov) 05.08.09 22:22
Из примера:
AttachAddIn("AddIn.ElisyNetBridge");
AddIn = New("AddIn.ElisyNetBridge");
net = AddIn.New("Elisy.NetBridge", "Elisy.ElisyNetBridge");
emailregex = net.New("System.Text.RegularExpressions.Regex", "(?<user>[^@]+)@(?<host>.+)");

А как установить свойства Multiline и IgnoreCase одновременно? Пока получается использовать только какое то одно из свойств.
42. serno (Sergey.Noskov) 06.08.09 16:53
Вот такая ошибка вываливается:
{Форма.Форма(1311)}: Ошибка при вызове метода контекста (get_Item): Произошла исключительная ситуация (Elisy.NetBridge.dll): System.MissingMethodException: Не найден метод "System.Text.RegularExpressions.MatchCollection.get_IsReadOnly".
в System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
в System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args)
в Elisy.ElisyNetBridge.InvokeMethod_Internal(Object instance, String method, Object[] args)
в CDispatchExWrapper.InvokeEx(CDispatchExWrapper* , Int32 id, UInt32 lcid, UInt16 wFlags, tagDISPPARAMS* pdp, tagVARIANT* pVarRes, tagEXCEPINFO* pei, IServiceProvider* pspCaller)
ИндексОкончания = РезультатПоискаОкончания.get_Item(индекс).Index + РезультатПоискаОкончания.get_Item(индекс).Length;
по причине:
Произошла исключительная ситуация (Elisy.NetBridge.dll): System.MissingMethodException: Не найден метод "System.Text.RegularExpressions.MatchCollection.get_IsReadOnly".
в System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
в System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args)
в Elisy.ElisyNetBridge.InvokeMethod_Internal(Object instance, String method, Object[] args)
в CDispatchExWrapper.InvokeEx(CDispatchExWrapper* , Int32 id, UInt32 lcid, UInt16 wFlags, tagDISPPARAMS* pdp, tagVARIANT* pVarRes, tagEXCEPINFO* pei, IServiceProvider* pspCaller)

Строка кода 1С:
ИндексОкончания = РезультатПоискаОкончания.get_Item(индекс).Index + РезультатПоискаОкончания.get_Item(индекс).Length;
Причем довольно много итераций (код выполняется в цикле) ошибки не появляется, это ограничения ознакомительной версии?
При отладке в 1С, такое свойства как Index иногда принимает значение COMОбъект.
43. Сергей Карташев (Elisy) 10.08.09 07:33
(42) В ознакомительной версии ограничений никаких не предусмотрено. Скорее всего на какой-то итерации РезультатПоискаОкончания.get_Item(индекс) равен NULL. В этом случае невозможно обратиться к его свойствам .Index и .Length. Нужно попробовать написать так:
Если РезультатПоискаОкончания.get_Item(индекс) <> Неопределено Тогда
ИндексОкончания = РезультатПоискаОкончания.get_Item(индекс).Index + РезультатПоискаОкончания.get_Item(индекс).Length;
КонецЕсли;
44. Сергей Карташев (Elisy) 10.08.09 07:58
(41) Мы решали схожую проблему использования Enum помеченных FlagsAttribute в виде:

//Преобразовать в числовой тип и выполнить суммирование в 1С
regexOptions = net.CallStatic("System.Convert", "ToInt32", net.New("System.Text.RegularExpressions.RegexOptions").IgnoreCase);
regexOptions = regexOptions + net.CallStatic("System.Convert", "ToInt32", net.New("System.Text.RegularExpressions.RegexOptions").Multiline);
regexOptions = regexOptions + net.CallStatic("System.Convert", "ToInt32", net.New("System.Text.RegularExpressions.RegexOptions").CultureInvariant);

//Преобразование числа обратно в Enum
types = net.CallStatic("System.Enum", "ToObject", net.New("System.Text.RegularExpressions.RegexOptions").GetType(), regexOptions);
45. Сергей Карташев (Elisy) 28.09.09 16:07
На infostart добавлен проект распознавания штрихкодов, использующий функциональность Elisy .Net Bridge (http://www.infostart.ru/public/57091/)
46. Сергей Карташев (Elisy) 12.10.09 07:03
Добавлена статья по определению .Net классов из 1С: richmedia.us
48. Сергей Карташев (Elisy) 19.10.09 08:06
На Инфостарт выложен последняя ознакомительная версия компонента Elisy.NetBridge 2.3. По сравнению с предыдущей версией улучшена производительность и устранена ошибка при одновременной работе компонента и "сборщика мусора".
49. Serj (Serj1C) 21.05.10 11:39
Новости фирмы "1С" 20.05.2010
Продукт "Elisy .Net Bridge" фирмы Elisy Software Design получил сертификат "Совместимо! Система программ 1С:Предприятие"
http://1c.ru/news/info.jsp?id=11871
50. Армен Арабханян (Arabo_xv) 28.06.10 18:39
(36) Вы про Reflection надеюсь слышали. Пару легких движений руки и VasiaPupkin.NetBridge для работы с SQL2005 готов.
(47) Нарушение лицензионного соглашения по платформе 1С:Предприятие
(49) Хм это значит если я копаюсь в данных ИБ непосредственно в SQL то это 1С:Совместимо !? Мдас круто у 1С стоит вопрос сертификации.
51. Сергей Карташев (Elisy) 29.06.10 06:57
(50)
Вы про Reflection надеюсь слышали. Пару легких движений руки и VasiaPupkin.NetBridge для работы с SQL2005 готов.

Если было бы все так просто, Инфостарт и другие 1С-порталы были бы завалены такими разработками. Чтобы не быть голословным - начните делать и поймете.

Нарушение лицензионного соглашения по платформе 1С:Предприятие

Прочтите обновленную статью: "Демонстрация прямого чтения данных 1С:Предприятие через LINQ" раздел "Кто в данных хозяин" и поймете: лицензия противоречит законодательство РФ. Для вас что важнее - закон или лицензия?

Хм это значит если я копаюсь в данных ИБ непосредственно в SQL то это 1С:Совместимо !?

Elisy .Net Bridge самостоятельно не предоставляет функциональности прямого доступа к данным. А прикладным решениям на основе компонента этого никто запретить не может, также как и другие операции, например: форматирование диска, снятие процессов, спам-рассылки, перезагрузка компьютера. То, что делают прикладные решения пусть остается на их совести. Net framework очень гибкий и предоставляет возможности для бесконечного количества сценариев.
52. Сергей Карташев (Elisy) 29.06.10 07:06
(50) Вот еще один образец уникального пока применения .Net Bridge для работы с DirectX и 3d-графикой в 1С через "богатую графику" WPF:
1C.Net:Предприятие + DirectX = 3D-графика на формах 1С:Предприятие
Мне кажется достойно для 1С:Совместимо.
53. Армен Арабханян (Arabo_xv) 29.06.10 11:30
(50)
Если было бы все так просто, Инфостарт и другие 1С-порталы были бы завалены такими разработками. Чтобы не быть голословным - начните делать и поймете.

Уже делал потому и говорю. Написал внешнюю компоненту для 1С, обёртку над своей библиотекой. А то что их нет лишь говорит что незачем писать прокси объекты (конечно бывают исключения) когда можно непосредственно сам оригинал использовать.
Лицензия противоречит законодательство РФ

Если использовать прямое чтение как штатный механизм то закон о правах потребителя вам не поможет. Вы сами нарушаете закон обходя ограничение на количество одновременных соединений с 1С. Фактически воруете у 1С.
Elisy .Net Bridge самостоятельно не предоставляет функциональности прямого доступа к данным. 


Для работы механизмов LinqToSql необходимы специальные .Net – классы, которые генерируются компилятором автоматически на основе DBML-файла. DBML-файл – это XML-файл с определением соответствий между названиями таблиц, полей и названиями .Net-классов. DBML-файл можно посмотреть визуально:


Для облегчения генерации DBML-файла была создана внешняя обработка Elisy.LinqTo1CSql.81.epf для 1С:Предприятие. Поставляется она в составе с Elisy .Net Bridge SDK, так как обращается к функциональности .Net framework из 1C:Предприятие.

После указания строки подключения к СКЛСерверу, имени выгружаемого файла, имен выгружаемых объектов обработка Elisy.LinqTo1CSql на выходе получает dbml- и cs-файлы. CS-файл содержит все необходимые описания классов и может быть вставлен в .Net-проект. На DBML-файл можно смотреть из редактора Visual Studio.

Взято из "Демонстрация прямого чтения данных 1С:Предприятие через LINQ".

Похоже что именно вы представляете инструменты обхода лицензий 1С.
54. Сергей Карташев (Elisy) 29.06.10 12:09
(53)
Уже делал потому и говорю. Написал внешнюю компоненту для 1С, обёртку над своей библиотекой. А то что их нет лишь говорит что незачем писать прокси объекты (конечно бывают исключения) когда можно непосредственно сам оригинал использовать.

Я не первый год в этой теме и хорошо знаю достониства существующих ВК, врапперов и их недостатки. Кроме того работаю с реальными клиентами, которые далеко не новички в .Net, C# и 1С. Исходя из этого, я по достониству горжусь продуктом .Net Bridge за его оригинальную архитектуру и возможности. В технические детали вдаваться не буду - найдите в поисковиках по запросу "Elisy .Net Bridge".

Если использовать прямое чтение как штатный механизм то закон о правах потребителя вам не поможет. Вы сами нарушаете закон обходя ограничение на количество одновременных соединений с 1С. Фактически воруете у 1С.

Что за обвинения? Я ничего не должен 1С, также как и 1С не должна мне.
Elisy .Net Bridge продвигает 1С, добавляя в нее функциональность. В этом и в большинстве наши взгляды с компанией 1С совпадают. Но взгляды могут и расходиться. Примером этому является прямое обращение к данным. Почитайте законы и поймете, в чем. И я не имею ввиду Закон о правах потребителя, а речь идет ГК РФ.
Для вашего сведения MS SQL Server не принадлежит 1С никоим образом - это продукт совершенно другой компании Microsoft. И обращаться к БД MSSQL я буду таким образом, каким посчитаю нужным. А ваши выкрики сейчас сродни "пользователи Linux воруют у Microsoft, потому что не ставят ОС Windows" или "пользователи солнечных батарей воруют у ЭС, обходя стороной их услуги". И заметьте, что я не послал вас после всего сказанного вами только потому, что настроение у меня сегодня хорошее и продолжаю надеяться, что вы одумаетесь и любые обвинения будете подтверждать фактами. Согласитесь, что обвинения в воровстве - серьезные обвинения.
Похоже что именно вы представляете инструменты обхода лицензий 1С.

Я не обхожу лицензии 1С - я обращаюсь к MSSQL и читаю данные, собственником которых я являюсь по Закону, наиболее удобным мне способом. Почувствуйте разницу. Мир не сошелся клином на 1С - есть масса других достойных решений.
55. Армен Арабханян (Arabo_xv) 29.06.10 12:32
Что за обвинения? Я ничего не должен 1С, также как и 1С не должна мне.
Elisy .Net Bridge продвигает 1С, добавляя в нее функциональность. В этом и в большинстве наши взгляды с компанией 1С совпадают.

Тут я с вами согласен.


Но взгляды могут и расходиться. Примером этому является прямое обращение к данным. Почитайте законы и поймете, в чем. И я не имею ввиду Закон о правах потребителя, а речь идет ГК РФ.Для вашего сведения MS SQL Server не принадлежит 1С никоим образом - это продукт совершенно другой компании Microsoft. И обращаться к БД MSSQL я буду таким образом, каким посчитаю нужным


1 - Я не проживаю в РФ, но прекрасно осведомлён о ГК РФ. (так же знаком со многими прецедентами его использования в РФ)
2 - Как только вы используете Elisy.LinqTo1CSql вне 1С системы вы будете нарушать лицензионное соглашение, а так же нарушите авторское право 1С. (в законодательстве о правах потребителя есть несколько статей которые вам дают возможность прямо использовать SQL но если у вас количество соединение с SQL базой превысит количество ключей вы попали на не хилую сумму + под статью УК ФР)


А ваши выкрики сейчас сродни "пользователи Linux воруют у Microsoft, потому что не ставят ОС Windows" или "пользователи солнечных батарей воруют у ЭС, обходя стороной их услуги".

Ну тут вы слегка теряете связь с реальностью. Мы немного о других вещах говорим.

И заметьте, что я не послал вас после всего сказанного вами только потому, что настроение у меня сегодня хорошее и продолжаю надеяться, что вы одумаетесь и любые обвинения будете подтверждать фактами. Согласитесь, что обвинения в воровстве - серьезные обвинения.

1 - Оскорбление не менее серьёзны. В преть прежде чем кого-то посылать или говорить "... я не послал вас после всего сказанного вами только потому ..." подумайте насколько это выглядит красиво.
2 - Я вас предупредил (и не только вас) что используя некоторые возможности вашей библиотеки вы легко нарушите УК РФ.

PS а зачем нужна Elisy.HwndHost.dll ?
56. Сергей Карташев (Elisy) 29.06.10 13:39
2 - Как только вы используете Elisy.LinqTo1CSql вне 1С системы вы будете нарушать лицензионное соглашение, а так же нарушите авторское право 1С. (в законодательстве о правах потребителя есть несколько статей которые вам дают возможность прямо использовать SQL но если у вас количество соединение с SQL базой превысит количество ключей вы попали на не хилую сумму + под статью УК ФР)

Elisy.LinqTo1CSql и ее использование никоим образом не нарушает лицензионное соглашение 1С и каких-либо законов. На входе обработки - метаданные, полученные средствами 1С, на выходе dbml- и cs- файлы. Прямой доступ обеспечивают встроенные в .Net framework механизмы LINQ. Вам следует обратиться с официальным письмом в Microsoft, чтобы запретили свои фичи обращения к MSSQL.
Я не призываю, мало того - являюсь противником, при использовании выходных файлов Elisy.LinqTo1CSql в Asp.Net или .Net-приложении превышать разрешенное число подключений к MSSQL. Но подчеркиваю - это двухстороннее дело компании Microsoft и конечного пользователя, а то что между ними происходит не должно волновать компанию 1С.
2 - Я вас предупредил (и не только вас) что используя некоторые возможности вашей библиотеки вы легко нарушите УК РФ.

Если ведете предметный разговор, то, пожалуйста, указывайте ссылки на конкретные статьи законов с цитатами, как это сделал я в статье, упомянутой вами, а не грозите "страшной карой".
PS а зачем нужна Elisy.HwndHost.dll ?

Это то новое, что дает неоспаримое преимущество .Net Bridge по отношению к традиционным ВК. Судя по началу нашего диалога можно предположить, что вы работник прокуратуры, ищущий состав преступления в моих действиях. В Elisy.HwndHost.dll ничего противозаконного тоже нет. Думаю, оно вам не пригодится.
57. Сергей Карташев (Elisy) 23.07.10 14:38
В галерею добавлены 2 изображения-демонстрации технологии WPF в 1С:
Использование WPF-компонента Dynamic Data Display
Обрезка фотографий, основанная на WPF
58. Сергей Карташев (Elisy) 05.01.12 13:38
Выпущена новая NFR-версия Elisy .Net Bridge 4.0.3. Дистрибутив для скачивания размещен в публикации.
60. Я Османов (Яшар) 18.02.12 12:28
Добрый день.
Ответьте сначала на вопрос вы - вы представитель конкурирующей фирмы ?
Просто не совсем понятно откуда родилась такая гневная отповедь. Прямо распяли и сожгли. Но давайте по порядку:

Цитата:
"следует что Вы не являетесь разработчиком Elisy .Net Bridge ?"

Мы являемся. И если честно то не вижу сути претензии. Вы разговариваете только с разработчиками ?

Цитата:
"Здесь пока не выложены эти примеры в виде внешних обработок."

Мы над этим работаем. в чем суть обвинения ? Вы считаете что мы выдаем желаемое за действительное и разводим "простых одинэсников" ? это не так, банально не хватает времени. если же вам не нравится скорость нашей работы - вы можете стать спонсором и мы обязуемся что примеры появятся в ближайший срок. А то не совсем понятно кто кого в попытке "навариться за чужой счет" обвиняет.

Цитата:
"Вы продвигаете свой продукт ? Вы хотите его продать ?
Почему кто-то должен Вам писать , чтобы помочь Вам продать Ваш продукт ?"

Пожалуйста, говорите только от своего имени. Если же вы представляете консорциум 1с программистов - то пожалуйста представьтесь. По существу вопроса отвечаю - мы не в коем случае никого не заставляем. Колхоз это дело добровольное. Имеется ввиду такая ситуация когда программисту необходима подобная система но он хочет убедится что он все правильно понял и получит то что и ожидает за свои деньги. все по честному. В крайнем случае мы продукт
дорабатываем. Если вас беспокоит тот факт что ваши уникальные идеи будут использованы в корыстных целях - то просто не делитесь ими. Уверен что некоторые будут с Вами солидарны.

Цитата
"Пока простые одинэсники просто недоумевают (21) и считатют ,что
запросто обойдутся без Вашего продукта."

?? Нет, всетаки конкурирующая фирма


РЕБЯТА ЗАЙМИТЕСЬ ДЕЛОМ А НЕ ВЫЯСНЕНИЕМ ЧТО ДА КАК...КОМУ НРАВИТСЯ ТОТ И ВОЗЬМЕТ))
61. Сергей Карташев (Elisy) 18.02.12 12:45
(60) Яшар,
Вы привели цитату 2х-годичной давности. С тех пор много времени прошло, а дело все это время живет и процветает :)
62. Сергей Вн (EmpireSer) 08.08.12 23:51
А как же кроссплатформенность?
Сервер 1С 8.2 может работать на линукс системах. А 8.3 и клиент на линуксе написали.
Как какой же может быть тогда .NET ? Проект Mono отстаёт от развития .NET на Windows и даже не гарантирует работоспособность.
Получается что можно убить кучи времени, разработать множество красивых и очень функциональных вещей (обработок, функционал и т.д.), а вот захочет клиент сервер на линуксе (клиент-серверная архитекрута) и всё. Только "&НаКлиенте" будет работать и ни каких поблажек серверу.
Ведь намного выгоднее организовать, для конфигураций на управляемых формах, сервер на линуксе и работать через браузер.
И даже если сервер делать на Windows, то, например, Silverlight применить не получится, так как, как я помню, только под IE он работает, а популярность Google Chrome и Mozilla Firefox нельзя не учитывать (именно в данном контексте)

Если подытожить, то у меня складывает мнение, что это здорово, функционально и удобно, но не оптимально для полномасштабного использования в конфигурации.
63. Сергей Карташев (Elisy) 09.08.12 08:00
(62) EmpireSer,
Спасибо за комментарий. Кроссплатформенность для 1С сейчас - это миф. Windows для 1С будет еще актуальным лет 10-20 вот по каким причинам:
1. Все предыдущие версии до 8.3 были прочно завязаны на Windows из-за слабой поддержки Linux. Значит за все серверные и клиентские ОС деньги уплачены и нет никакого смысла переводить ОС на Linux. Значит теоретически если будут появляться Linux-сервера или клиенты, то для новых компаний.
2. Многие предприятия все еще работают на 7.7 и только думают о переходе на 8.х. Соответственно они будут работать на Windows. Связано это с консерватизмом бухгалтеров, соответственно и ОС они будут менять с неохотой.
3. Все внешние компоненты до этого, например, популярные драйвера устройств были написаны под Windows. Это значит, что под Linux они не заработают просто так. А портировать их под Linux и поддерживать 2 набора исходных кодов очень ресурсоемко. Портировать же их под браузеры для веб-клиента еще сложнее - это уже 4*2=8 наборов (4 популярных браузера на 2 платформах). Это еще не все - новый стандарт написания внешних компонентов ущербный и по функционалу сильно уступает COM-технологии написания внешних компонент.
4. Доля рынка C# в последнее время неуклонно растет благодаря популяризации .Net framework. Java - конкурент .Net была выкуплена Oracle и коммерциализируется, доля его снижается и будет снижаться.
5. Опыт Запада, по которому движется развитие 1С показывает, что на большинстве средних предприятий преобладают Windows-клиенты и стоят несколько серверов на Windows и Linux.
6. Все 1С-ники осваивали всегда Windows и привыкли работать с ним. Поэтому настройщиков Linux сейчас найти сложно. Даже если все предприятие перейдет на Linux, нужно найти людей, которые будут его конфигурировать и обслуживать. Реально это будет сделать только в крупных городах.
invertercant; +1 Ответить 1
64. Сергей Вн (EmpireSer) 09.08.12 13:12
(63) Elisy, хм:

1. Кучи компаний даже не пытались использовать клиент-серверную архитектуру работы 1С. Но это не значит, что нужно программистам быть глупыми и не продумывать выполнения своего кода (в 1С) под такой архитектурой.
А причины не перевода сервера 1С на линукс как раз не дальновидность разработчиков конфигураций и внешних компонент! А если с этим в порядке - то уже не компетентность администраторов. Правильно настроенные линукс сервера позволяют в разы сэкономить на железе самого сервера, а переход на управляемые формы (при хороших админах) позволит провести оптимизацию клиентского места (Windows, Linux, MacOS) под максимальную сетевую производительность.

2. У многих предприятиях и Windows 2000 и ниже бывает и их это устраивает.
На данный момент и переход с 7.7 на 8.х может вызвать море проблем и несовместимость некоторых решений (т.к. программисты игнорируют другие технологии).
Вот из-за совокупности неопределённостей, которые возникнут при обновлении/апгрейде/оптимизации и творится такое на рынке.
Я встречал клиентов, которые готовы выделить не малы деньги, что бы "всё летало реально", а спецов по этому делу нет. Админы не компетентные и положительный результат апгрейда железа, у этих клиентов, вскоре становится в ноль из-за "изобилия мусора". И проблем добавляют программисты 1С, которые поступают, как раз как вы говорите, "а зачем?" и связывают руки уже другим.

3. Если компонент писался в концепции ООП и не делались какие-то платформенные извращения, то содержать версии Windows, Linux, BSD, MacOS и мобильные тоже - становится почти элементарно.
Вот у нас в конторе програмят на Delphi, а Delphi многие функции доступа к данным ОС делает кросплатформеными. Думаю для С++ уже давно есть библиотеки практически абсолютна кросплатформенные.
А тестировать это - тоже элементарно: Unit тесты. Пишешь тесты и использует автоматизированые средства для их проведения. Мы, например, использует TeamCity для этой работы и всё "круто": сам забирает обновления с SVN, сам компилирует, сам тестирует и логирует и собирает кучи статистики.
"Всё придумано до нас" (с) - только пользуйтесь.

4. "Доля рынка" - не показатель. Это маркетинговые войны. Сейчас вообще появились "облака" и мобильные клиенты и Windows Azure и Windows Mobile на них в меньшинстве. "Доля рынка" изменчивый показатель.

5. Опыт запада так же показывает всю мощь SAP и ни какая 1С им не нужна. А SAP кросплатформенный. А 1С, в России, конкуренцию составить некому. Иначе уже со времён версии 5-6 1С была бы кросплатформеной.

6. А все высокопроизводительные сервера работают на BSD и Unix. Колличество специальстов в Linux тоже не мало, просто, в среде программистов 1С их намного меньше (может из-за того, что 7-ка и ниже не работали на линуксах). Если контора, разрабатывающая конфигурацию 1С, хочет не просто "урвать кусок", а сделать конкурентноспособный и долго "играющий", на рынке, продукт - то она, по моему мнению, должна в первую очередь подумать об астрагировании от ОС и от БД, что бы не навязывать клиенту дополнительные расходы.
Если почитать море спецификаций Java EE, то Вы уведите, что программист может абстрагироваться не только от ОС (что даёт Java), не только от БД (за счёт jbdc и ORM), а ещё и от сервера приложения, где его компоненты развёрнуты. Это даёт почти абсолютную волю заказчику ставить ваше приложения на что угодно поддерживающее технологию Java EE, подключать любую БД (хоть XML базы, хоть Access) и, конечно же, ставить всё это на любую ОС.

Вот, по моему мнению, к чему должен стремиться каждый программист прикладного решения. А не становится "винтиком" в маркетинговых войнах.

Вы всё замечательно реализовали и вот поэтому я опасаюсь, что море программистов 1С, используя Ваши разработки, сведут на "нет" все попытки разработчиков платформы 1С сделать её кроплатформенной.
65. Сергей Карташев (Elisy) 10.08.12 08:36
(64) EmpireSer,

Спасибо за теплые слова о нашем продукте.
Спор о том, кто победит Linux или Windows идет давно, но Windows не стал менее популярным за это время. Мы с вами высказали свои точки зрения. Где-то они совпадают, где-то расходятся.
Мои прогнозы такие - Windows будет актуальным в ближайщее время и 10 лет минимум. А что потом будет - сложно предсказать.
Если бы была возможность развивать продукт .Net Bridge в сторону Linux, мы бы это начали делать. Но в настоящее время 1С не предоставляет технических возможностей, чтобы получить изящное решение (в Native API не поддерживаются объекты наподобие IDispatch да и смешанный код тоже не поддерживается).
Поэтому мы для себя наметили несколько перспективных на наш взгляд направлений, основанных на .Net Bridge:
Веб-сервер внутри 1С
Прямая работа с конфигурацией, декомпилирование и защита информации
Прямой доступ к данным 1С на СУБД
66. Сергей Вн (EmpireSer) 10.08.12 17:41
(65) Elisy,

Из документации

Хотя в 1С:Предприятие 8.2 была анонсирована технология внешних компонент NativeAPI, но пока использовать ее не предоставляется возможным.

А вы собираетесь сделать её поддержку вообще? И в пределах каких сроков? И почему Вы реализовали на неуправляемом С++ библиотеку "Elisy.HwndHost.dll", а "Elisy.NetBridge.dll" не смогли?
И ещё: а для чего нужна библиотека "IPHLPAPI.DLL" ?
67. Сергей Карташев (Elisy) 11.08.12 08:00
(66) EmpireSer,
А вы собираетесь сделать её поддержку вообще? И в пределах каких сроков? И почему Вы реализовали на неуправляемом С++ библиотеку "Elisy.HwndHost.dll", а "Elisy.NetBridge.dll" не смогли?
И ещё: а для чего нужна библиотека "IPHLPAPI.DLL" ?

Мы работали над поддержкой Native API, но столкнулись с проблемой: Новая версия 1С:Предприятие 8.2 конфликтует с C# и .Net framework Скорее всего возникает LoaderLock. Может и можно было бы найти обходные пути, но исследования решили отложить, так как в Native API не предусмотрена поддержка объектов (как IDispatch в COM). Без этой возможности использование .Net Bridge будет некрасивым (фактически ограничится компиляцией исходного кода C#/VB.Net "на лету" и вызовом оттудастатических методов).
Библиотека Elisy.HwndHost.dll действительно на неуправляемом С++, так как не смогли ее встроить в Elisy.NetBridge.dll. Это уже проблема Microsoft конфликта ATL и управляемого кода. Решили оставить их раздельно, так как HwndHost требуется намного реже.
IPHLPAPI.DLL скорее всего нужна при использовании алгоритмов защиты и активации .Net Bridge, поэтому инсталлятор потащил ее за собой по зависимостям.
68. Сергей Вн (EmpireSer) 11.08.12 16:10
(67) Elisy,
А можно ещё вопросик?
А как Вы решили проблему с перегрузкой методов? в 1С большинство преобразований примитивных типов происходит "за кадром", а в NET тип параметра очень важен.
Вот Ваш механизм сможет понять, что я делаю или тут, как обычно, "программист сам дурак"? :

public class Klass {
  public void Privet(string param1)
  { ... }
  public string Privet(Integer param1)
  { ... return "приветики" }
}
...Показать Скрыть


В библиотеках NET могут встречаться такие методы и для них потребуются программисту 1С принудительно вызывать "Число(Параметр1)" или "Строка(Параметр1)".

Если это так, то думаю нужно это упомянуть в документации (так же делают такие упоминания в PHP).
69. Сергей Карташев (Elisy) 13.08.12 07:23
(68) EmpireSer,

По умолчанию работает преобразование на усмотрение .Net Bridge. Например, 1С тип Дата преобразуется в DateTime, строка в String (и наоборот) и т.д.
Если же необходима строгая типизация, то предусмотрен параметр StrictMode класса Elisy.NetBridge.Environment в .Net Bridge 4. В документации этот момент отражен (см. Свойство StrictMode) с примерами для System.Convert.

По поводу "вымирания" Windows есть еще один момент, который всплыл буквально в выходные. На Linux сейчас нет нормального механизма достучаться к 1С извне, как это можно сделать через COM на Windows. А такой механизм часто востребован, например, из Интернет-магазинов.
70. Сергей Вн (EmpireSer) 14.08.12 01:10
(69) Elisy,

По поводу "вымирания" Windows...

Нет нет, я не говорил о вымирании Windows. Я лишь подчеркнул нишу, которою занимает windows, о конкурентах и о других нишах IT сферы.
Жалко, конечно, что 1C Native API ещё сыроват. Если он был бы Open Source, то, полагаю, к нему давно бы прикрутили "ноги": ведь все классы 1С уже поддерживают управление памятью через реализацию шаблона интерфейсов microsoft (с её 3-мя обязательными методами) и получается, что для коммуникации клиент-сервера через 1C Native API можно было бы использовать любую технологию (COM, CORBA, HTTP, RMI (T3) и т.п.).

По умолчанию работает преобразование...

Я так и предпологал, т.к. это логично.
Просто я встречал в коде конфигураций 1С 8.2 в некоторых методах принудительное приведение параметров. Т.е. методу без разницы что ему передали, в коде метода просто принудительно приводили параметр к нужному. Т.к. такой код может спокойно "кушать" почти любой тип - то и в других методах программисты не заморачиваются приведением типов для передачи их в такие методы.
Не привыкший к строгой типизации программисты могут очень долго "ловить странные баги" :-))) Я как человек привыкший к строгой типизации долго адаптировался к PHP и 1С. Я до сих пор кое где вставляю шаблон кода, который гарантирует моему методу "правильный" тип параметра.

Немного вдохновлённый Вашим трудом мне тоже захотелось развить такое-же удобное решение, только используя Delphi и/или Java.
Java тоже очень богат различными реализациями разных решений. А в Delphi намного легче взаимодействовать на низком уровне с разными элементами ОС и оборудования.
71. Сергей Карташев (Elisy) 04.10.12 09:24
(70) EmpireSer,
Нет нет, я не говорил о вымирании Windows. Я лишь подчеркнул нишу, которою занимает windows, о конкурентах и о других нишах IT сферы.
Жалко, конечно, что 1C Native API ещё сыроват. Если он был бы Open Source, то, полагаю, к нему давно бы прикрутили "ноги": ведь все классы 1С уже поддерживают управление памятью через реализацию шаблона интерфейсов microsoft (с её 3-мя обязательными методами) и получается, что для коммуникации клиент-сервера через 1C Native API можно было бы использовать любую технологию (COM, CORBA, HTTP, RMI (T3) и т.п.).

Задумавшись о ваших комментариях и высказываниях критиков .Net bridge/.Net framework за его несовместимость решили выпустить кроссплатформенное решение для Java/Mono/.Net framework:
Замена в 1С:Предприятие 8.2 COM/OLE для доступа из Linux и других операционных систем
Как и .Net bridge новый продукт - это средство интеграции, но работает в противоположном направлении. Позволяет из других платформ получить доступ в 1С.
72. Сергей Вн (EmpireSer) 05.10.12 00:13
(71) Elisy, Рад был помочь :))))

P.S. Кстати, тут http://www.1csoftware.com/dotnet/ указано: "ограниченная поддержка 7.7/8.0/8.2" - может для 8.2 это утверждение не верно?

P.S.2. А тут http://proxy.1csoftware.com/demo_ma/ru_RU/ у Вас что-то упало...
73. Сергей Карташев (Elisy) 05.10.12 12:17
(72) EmpireSer,
P.S. Кстати, тут http://www.1csoftware.com/dotnet/ указано: "ограниченная поддержка 7.7/8.0/8.2" - может для 8.2 это утверждение не верно?

Документация на странице относится к версии 3. Планируем обновить ее до версии 4.

P.S.2. А тут http://proxy.1csoftware.com/demo_ma/ru_RU/ у Вас что-то упало...

Были жалобы на открытие страницы от некоторых пользователей. Проблему у себя не смогли воспроизвести - было предположение, что на стороне веб-браузера стоит софт, который режет баннеры.
74. Гость 05.06.13 20:31
(47) Elisy, Так все таки.. Elisy .Net Bridge работает и до сих пор использует Linq?
Если использовать внешние веб сервисы, подключаемые к бд через linq с запросами к базе написанными на встроенном языке 1с, будет ли это нарушение прав? Ведь, по сути создаются и используются методы 1с.
75. Сергей Карташев (Elisy) 05.06.13 20:53
(74) Гость,
Elisy, Так все таки.. Elisy .Net Bridge работает и до сих пор использует Linq?
Если использовать внешние веб сервисы, подключаемые к бд через linq с запросами к базе написанными на встроенном языке 1с, будет ли это нарушение прав? Ведь, по сути создаются и используются методы 1с.

Нет, вы что-то путаете. Elisy .Net Bridge и Elisy LinqTo1C - разные продукты. У Elisy .Net Bridge статус 1С:Совместимо, внутри продукт не использует прямой доступ к данным.
Прямой доступ же к данным не является нарушением законодательства. Потому что методы, способы не являются объектами авторского права, так как не несут в себе элемента творчества.
76. Гость 05.06.13 21:07
А, хорошо понял ошибку с Elisy LinqTo1C. Но вы непосредственно SQL запросы к бд создаете. А у меня функции и процедуры в 1с прописаны, можно ли считать что эти процедуры и функции являются легальными?

И можно еще вопрос, не было ли у вас прений с 1с с 2009 года?

Во всех остальных случаях лицензионное соглашение позволяет использовать для построения решений только штатные средства платформы. В частности, можно обращаться к данным информационной базы только при помощи объектов "1С:Предприятия", специально предназначенных для работы с данными (запросы, справочники, документы и т.д.).
77. Сергей Карташев (Elisy) 05.06.13 21:31
(76) Гость,
На эту тему не было разговора с представителями 1С. Штатные средства они имеют ввиду - внешние источники данных.
78. Сергей Харламов (zatoichi) 02.03.15 11:46
кто-нибудь пробовал эту компоненту? может посоветуете что-нибудь по-дешевле?
79. Сергей Карташев (Elisy) 02.03.15 12:49
(78) zatoichi,
Есть совсем бесплатный вариант - написать внешний компонент на C#.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа