1C.Net:Предприятие – не стесняйтесь программировать на 1С

Elisy .Net Bridge - это набор компонентов и методик для бесшовного подключения .Net framework к 1С:Предприятие 7.7/8.0/8.1/8.2 с целью использования всех передовых разработок .Net. Самое полезное отличие .Net Bridge от существовавших ранее технологий - это собственный механизм преобразования типов, дающий явные преимущества по сравнению с .Net RCW/CCW- механизмами, написанием плагинов/внешних компонент на C# и VB.Net под 1С и открывающий неизвестные ранее в 1С:Предприятие возможности. Упор в проекте сделан на гармоничную интеграцию двух технологий, где ведущую роль играет 1С:Предприятие.

Проект Elisy .Net Bridge (1C.Net)

Цели проекта Elisy .Net Bridge состоят в следующем:

  • Обеспечить быстрое подключение существующих .Net-компонентов и приложений к 1С:Предприятие;
  • Существенно расширить объектную модель 1С:Предприятие стандартными классами .Net framework;
  • Существенно расширить возможности программирования на 1С:Предприятие;
  • Популяризировать .Net framework среди разработчиков 1С:Предприятие. Показать его эффективность и рациональность использования.

Близкие аналоги

Традиционно в 1С существуют следующие аналоги, расширяющие функциональность 1С:

Проект 1С++ (http://1cpp.ru): ориентирован только на версию 1С 7.7, которая морально устаревает после выхода версий 8.1 и 8.2. В отличие от него .Net Bridge поддерживает все современные версии 1С: 7.7/8.0/8.1/8.2. В 1С++ за основу взяты C++ и система наследования классов. С++ уступает .Net-технологии по скорости написания ПО и его отлаженности, также требует больше профессиональных навыков.

C#/VB.Net –расширения для 1С (http://www.kb.mista.ru/article.php?id=56): до выхода Elisy .Net Bridge традиционным было написание плагинов для 1С по "технологии написания внешних компонент для 1С". Традиционный подход уступает подходу, принятому в .Net Bridge, ограниченным набором передаваемых типов. Например, невозможно передать Enum, а также использовать типы .Net, не помеченные как ComVisible = true. В случае с Elisy .Net Bridge собственный механизм преобразования типов между 1С и .Net "прозрачный" и так не ограничен.

COM-обращения: традиционно сложилось, что у каждого 1С-разработчика есть арсенал dll-библиотек, решающих узкий круг задач. Эти библиотеки написаны разными разработчиками, многие уже не поддерживаются. Например, обращение к системным функциям выполняется через dynwrap.dll, шифрование – через capicom.dll, рисование через JScript и т.д. .Net Framework через .Net Bridge в отличие от них предоставляет все функции одним пакетом, опираясь на единую систему типов и стиль API.

Основные возможности

Ключевой библиотекой проекта является Elisy.NetBridge.dll. Она предоставляет следующие преимущества:

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

Ниже сравнивается код C# и соответствующий ему код скрипта 1С с использованием Elisy .Net Bridge:

Код C#Код 1С:Предприятие
private SeriesCollection getVolumeData()
{
    SeriesCollection SC = new SeriesCollection();
    Random myR = new Random(1);
    for(int i = 0; i < 1; i++)
    {
        Series s = new Series();
        s.Name = "Volume";
        double startPrice = 50;

        DateTime startDT = new DateTime(2000,1,1);
        for(int b = 0; b < 75; b++)
        {
            Element e = new Element();
            e.XDateTime = startDT;
            startDT = startDT.AddDays(1);
            e.YValue = myR.Next(100);
            s.Elements.Add(e);
        }

        SC.Add(s);
    }

    return(SC);
}
Function getVolumeData()

    SC = net.New("dotnetCHARTING.WinForms.SeriesCollection");
    myR = net.New("System.Random", 1);
    for a = 0 to 0 do

        s = net.New("dotnetCHARTING.WinForms.Series");
        s.Name = "Volume";
        startPrice = 50;

        startDT = net.New("System.DateTime", 2000, 1, 1);
        for b = 0 to 74 do

            e = net.New("dotnetCHARTING.WinForms.Element");
            e.XDateTime = startDT;
            startDT = startDT + 1*60*60*24;
            e.YValue = myR.Next(100);
            s.Elements.Add(e);
        enddo;

        SC.Add(s);
    enddo;

    return SC;
EndFunction

История создания

Компонент Elisy .Net Bridge существует уже около года. За это время накоплены положительные отзывы от разработчиков, использующих компонент на практике. Исторически выпуск релизов происходил следующим образом:

  • 2 Апреля 2009 вышла первая альфа-версия Elisy .Net Bridge;
  • 5 Мая 2009 вышел релиз первой версии компонента;
  • Май 2009 – сентябрь 2009 выпущены версии 2.1-2.3;
  • 17 октября выпущена утилита LinqTo1CSQL для визуализации внутренней структуры данных 1С и прямого доступа к ним;
  • 2 ноября 2009 появилась альфа-версия 3й версии компонента;
  • 16 января 3я версия перешла в бета-стадию;

Лицензирование и цены

Компонент Elisy .Net Bridge является платным компонентом с бесплатной ознакомительной версией. Ознакомительная версия не накладывает никаких ограничений на функциональность. Существующая система лицензирования предполагает приобретение отдельной лицензии на каждый компьютер. Цена колеблется от 50 до 9 Euro в зависимости от числа копий и партнерского статуса.

Факты и результаты

За 9 месяцев существования проекта было выпущено 4 релиза компонента Elisy .Net Bridge (версии 1, 2.1, 2.2, 2.3), а 3я версия находится в бета-стадии;

Выпущена бета-версия LinqTo1C-обработки, которая генерирует dbml-файлы для 1С и дает возможность прямого обращения к базе данных 1С 8.x на MS SQL. Готовится выпуск Asp.Net MVC –примера, поддерживающего такой доступ.

Пользователями было скачано порядка 300 копий ознакомительной версии и около 600 копий прикладных примеров;

Были подготовлены развернутые статьи-примеры. Каждая из них вносит элементы новизны и актуальности. Охватывается практически весь .Net framework:

Дополнительные ресурсы

Перечень релизов и описаний изменений:1C:Enterprise forums

Все статьи по Elisy .Net Bridge: richmedia.us

Проект на Инфостарт: infostart.ru

Comments are closed