- PVSM.RU - https://www.pvsm.ru -
Elisy Business Connector [1] позволяет взаимодействовать с системами 1С: Предприятие через Интернет-технологии. Решение является кроссплатформенным и более эффективным, чем традиционный доступ через COM/OLE.
Elisy Business Connector [1] – это связующий компонент. Он позволяет связываться с опубликованными информационными базами 1С: Предприятие на Apache/IIS и в облачных сервисах. Для отправки запросов и получения ответов используется http-протокол и форматы JSON/XML. В решение вошли многие разработки команды Elisy Software Design в области интеграции с 1С: .Net Bridge [2], MdInternals [3], Decompiler [4], Proxy [5].
Используемый подход является кроссплатформенным: он не только позволяет обращаться к системам 1С: Предприятие, работающим на Windows и Linux, но также к системам, размещенным на облачных сервисах. Через Java и Mono поддерживаются мобильные и другие операционные системы. Сейчас компонент доступен для Java, .Net framework, Silverlight и Mono. Архитектура Business Connector устроена так, что в будущем позволит перенести компонент на другие популярные фреймворки. Внутри семейства систем 1С: Предприятие компонент доступен на Windows через технологию 1C.Net: Предприятие [2].
Business Connector является более эффективным, чем COM/OLE-доступ к 1С: Предприятие через тонкий клиент. Преимущества достигаются за счет архитектуры, спланированной для кроссплатформенной и многопоточной работы. На компьютере, с которого осуществляется доступ, можно не устанавливать 1С: Предприятие. Доступ можно организовать из любой операционной системы.
Планируется, что основное применение компонент получит при интеграции Интернет-проектов с конфигурациями 1С: Предприятие, такими как: Бухгалтерия и Управление Торговлей. Это могут быть Интернет-магазины или билинговые системы.
С выходом ознакомительной версии 1С: Предприятие 8.3 стала ясна четкая направленность компании 1С на кроссплатформенность: на одновременную поддержку Windows и Linux.
Это значит, что в будущем традиционно используемые в 1С Windows-технологии должны быть пересмотрены в сторону универсальности и общей доступности как из Windows, так и из Linux. В первую очередь это касается удобной COM/OLE-технологии. В системах 1С, начиная с 7.7, COM использовался в основном в 2х случаях:
Решение для первой проблемы не может впечатлить своей универсальностью и эффективностью с точки зрения разработчика. Так как всеобъемлющее Native API-приложение должно быть скомпилировано для Windows, Linux, (MacOS в 8.3), а также для популярных браузеров: IE, FireFox, Chrome, Opera, Safari. Число поддерживаемых проектов увеличивает вероятность ошибок из-за специфики каждой из поддерживаемых ИТ-архитектур.
Вторая проблема не славится стандартными решениями. Задания, генерирующие файлы-флаги, запускаются только по расписанию, а не по требованию. А веб-сервисы требуют вмешательства в конфигурацию, сложны конфигурированием и ограничены SOAP-стандартом.
Более универсальный подход для решения второй проблемы, положенный в основу Elisy Business Connector, состоит в следующем. Опубликованная через веб-браузер конфигурация 1С версии 8.2 и выше рассматривается как набор веб-сервисов с доступом по http/https. Используемые форматы JSON и XML обеспечивют универсальное подключение более легкое, чем через SOAP.
Насколько перспективен Linux для 1С: Предприятие в ближайшее время? Скорее всего, доля Linux в локальных сетях коммерческих компаний возрастет не сильно в ближайшие 10-20 лет. Но всю картину меняют облачные сервисы 1С, которые с вероятностью 99% будут строиться не на основе Windows Azure. Это значит, что значительная часть типовых конфигураций будет размещена на Linux с экономией на поддержке и сисадминах. Какую конкретно долю займут облачные сервисы сказать трудно.
Простые примеры демонстрируют возможности версии 1.0, которая доступна для Java, Mono, Net framework, Silverlight. Это первая версия, предназначенная для ознакомления сообщества с технологией. На основе полученных отзывов и замечаний будет планироваться расширение функциональности конечного продукта и расширение или сокращение поддерживаемых платформ.
Доступная функциональность:
Особенности программирования для Java:
Особенности программирования для Silverlight:
Пример возвращает строку, полученную при запуске серверной функции ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками
модуля ВзаиморасчетыСервер
:
string connectionString = "ws="http://demo-ma.1c.ru/trade";Usr="АфанасьевВМ (руководитель отдела оптовых продаж)";Pwd="";L="ru_RU"";
Connection connection = new Connection(connectionString);
connection.Open();
connection.Login();
GlobalContext gc = new GlobalContext(connection);
string serverValue = gc.GetServerModule("ВзаиморасчетыСервер").Invoke("ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками", null).ToString();
connection.Close();
Данный пример получает в массив users
всех пользователей информационной базы из списка при запуске 1С:
string connectionString = "ws="http://demo-ma.1c.ru/trade";Usr="АфанасьевВМ (руководитель отдела оптовых продаж)";Pwd="";L="ru_RU"";
Connection connection = new Connection(connectionString);
connection.Open();
string[] users = connection.GetUserList();
Расширенные примеры будут доступны в обновлении 1.1, над которым начата работа. В первую очередь будет выполнена реализация для .Net framework и Mono, которые стали лидерами по числу скачиваемых библиотек.
Запланировано в версии 1.1:
Комплексный пример для инициализации структуры с простейшими типами и вызов серверной процедуры Invoke в серверном модуле ElisyBusinessConnector
, возвращающий эту же структуру. Считается, что подключение Сonnection
уже создано (см. предыдущие примеры).
StructureType s = new StructureType(GlobalContext);
s["null"] = new NullType();
s["undefined"] = new UndefinedType();
s["string"] = new StringType() { Value = "String1" };
s["number"] = new NumberType() { Value = 12345.678 };
s["date"] = new DateType() { Value = DateTime.Now };
s["boolean"] = new BooleanType() { Value = true };
GlobalContext = new GlobalContext(Connection);
var result = GlobalContext.GetServerModule("ElisyBusinessConnector").Invoke("Invoke", new object[] { "result = parameters;", s }) as StructureType;
Пример выполняет запрос и возвращает предопределенный элемент из справочника Организации. Используется процедура Query
в серверном модуле ElisyBusinessConnector
:
StructureType parameters = new StructureType(GlobalContext);
IBaseType ref = GlobalContext.PredefinedValue("Справочник.Организации. УправленческаяОрганизация");
parameters["Ссылка"] = ref;
var record = GlobalContext.GetServerModule("ElisyBusinessConnector").Invoke("Query", new object[] {
@"ВЫБРАТЬ Справочник.Ссылка КАК Ref, Справочник.Наименование КАК Name
ИЗ Справочник.Организации КАК Справочник
ГДЕ Справочник.Ссылка = &Ссылка",
parameters
}).OfType<StructureType>().FirstOrDefault();
Автор: Elisy
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/15893
Ссылки в тексте:
[1] Elisy Business Connector: http://www.1csoftware.com/connector/
[2] .Net Bridge: http://www.1csoftware.com/dotnet/
[3] MdInternals: http://habrahabr.ru/post/135762/
[4] Decompiler: http://www.1csoftware.com/dotnet/ru-ru/decompiler
[5] Proxy: http://proxy.1csoftware.com
Нажмите здесь для печати.