Замена веб-сервисов/COM/OLE в 1С:Предприятие 8.2

07.02.13

База данных - Инструменты администратора БД

Elisy Business Connector позволяет взаимодействовать с системами 1С:Предприятие через Интернет-технологии. Решение является кроссплатформенным и более эффективным, чем традиционный доступ через веб-сервисы/COM/OLE. Elisy Business Connector – это связующий компонент. Он позволяет связываться с опубликованными информационными базами 1С:Предприятие на Apache/IIS и в облачных сервисах. Для отправки запросов и получения ответов используется http-протокол и форматы JSON/XML. В решение вошли многие разработки команды Elisy Software Design в области интеграции с 1С: .Net Bridge, MdInternals, Decompiler, Proxy.

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

Наименование Файл Версия Размер
Elisy Business Connector 1.0 Java 1.6
.zip 18,51Kb
38
.zip 18,51Kb 38 Скачать
Elisy Business Connector 1.0 Mono 2.8
.zip 16,47Kb
5
.zip 16,47Kb 5 Скачать
Elisy Business Connector 1.0 .Net framework 4.0
.zip 16,41Kb
15
.zip 16,41Kb 15 Скачать
Elisy Business Connector 1.0 Silverlight 4
.zip 16,30Kb
7
.zip 16,30Kb 7 Скачать
Elisy Business Connector 1.1 Java 1.6
.zip 40,53Kb
13
.zip 40,53Kb 13 Скачать

Замена в 1С:Предприятие 8.2 COM/OLE для доступа из Linux и других операционных систем

Логотип Elisy Business Connector для 1С:Предприятие
Elisy Business Connector позволяет взаимодействовать с системами 1С:Предприятие через Интернет-технологии. Решение является кроссплатформенным и более эффективным, чем традиционный доступ через COM/OLE.
Elisy Business Connector – это связующий компонент. Он позволяет связываться с опубликованными информационными базами 1С:Предприятие на Apache/IIS и в облачных сервисах. Для отправки запросов и получения ответов используется http-протокол и форматы JSON/XML. В решение вошли многие разработки команды Elisy Software Design в области интеграции с 1С: .Net Bridge, MdInternals, Decompiler, Proxy.

 

Преимущества

Преимущества Business Connector перед веб-сервисами:

  • Кроссплатформенность, ориентация на платформы разработки. Ориентация на протокол SOAP в веб-сервисах не гарантирует совместимость между платформами.
  • Наличие совместимого API и использование родных объектов для популярных платформ Java/Mono/.Net. Веб-сервисы поддерживают стандарт SOAP, реализация которого может отличаться у популярных платформ разработки.
  • Последовательные обращения в Business Connector проходят в одной сессии. Каждое обращение к веб-операции через веб-сервис создает отдельный сеанс.
  • Кэширование возвращаемых значений модулей с повторным использованием. Для веб-сервисов не предусмотрен параметр «Повторное использование».
  • Большая доступность технологии за счет протокола http. Доступность и настройка веб-сервисов может быть ограничена или затруднена на сервисах SaaS. Настройка веб-сервисов происходит сложнее, чем публикация 1С на веб-сервере.

Преимущества Business Connector перед COM/OLE:

  • Кроссплатформенность и поддержка разных операционных систем. COM/OLE-приложения нацелены только на Windows.
  • Совместимость с 64-разрядными Windows-приложениями. Одна сборка .Net/Mono/Java может работать на 32- и 64-разрядных приложениях. Технология COM/OLE требует различных версий библиотек для 32- и 64-разрыдных приложений.
  • Большая доступность на виртуальных машинах, облачных системах, сервисах SaaS и мобильных устройствах.
  • Нет привязки к аппаратному ключу защиты.

Используемый подход является кроссплатформенным: он не только позволяет обращаться к системам 1С:Предприятие, работающим на Windows и Linux, но также к системам, размещенным на облачных сервисах. Через Java и Mono поддерживаются мобильные и другие операционные системы. Сейчас компонент доступен для Java, .Net framework, Silverlight и Mono. Архитектура Business Connector устроена так, что в будущем позволит перенести компонент на другие популярные фреймворки. Внутри семейства систем 1С:Предприятие компонент доступен на Windows через технологию 1C.Net:Предприятие.
Business Connector является более эффективным, чем COM/OLE-доступ к 1С:Предприятие через тонкий клиент. Преимущества достигаются за счет архитектуры, спланированной для кроссплатформенной и многопоточной работы. На компьютере, с которого осуществляется доступ, можно не устанавливать 1С:Предприятие. Доступ можно организовать из любой операционной системы.
Планируется, что основное применение компонент получит при интеграции Интернет-проектов с конфигурациями 1С:Предприятие, такими как: Бухгалтерия и Управление Торговлей. Это могут быть Интернет-магазины или билинговые системы.

 

Идея создания

С выходом ознакомительной версии 1С:Предприятие 8.3 стала ясна четкая направленность компании 1С на кроссплатформенность: на одновременную поддержку Windows и Linux.
[more]
Это значит, что в будущем традиционно используемые в 1С Windows-технологии должны быть пересмотрены в сторону универсальности и общей доступности как из Windows, так и из Linux. В первую очередь это касается удобной COM/OLE-технологии. В системах 1С, начиная с 7.7, COM использовался в основном в 2х случаях:

  • Внешние компоненты по технологии COM. Частным случаем является создание и использование зарегистрированных в реестре COM-серверов сторонних разработчиков, таких как: генераторы штрихкодов, VBScript с регулярными выражениями, сокеты и др. В 1С 8.2 был представлен альтернативный Native API-интерфейс, который доступен из Linux. Но при этом Native API более урезан по функциональности, чем COM-доступ, например, не предусмотрен аналог IDispatch-объектов. Также урезанной альтернативой Linux станет вызов через командную строку приложений и обработка файлов на их выходе.
  • Внешний доступ к приложению 1С:Предприятие через COM/OLE. Урезанная альтернатива – запуск скриптов 1С по расписанию с генерированием файлов-флагов, а также написание и публикация специализированных SOAP веб-сервисов.

Решение для первой проблемы не может впечатлить своей универсальностью и эффективностью с точки зрения разработчика. Так как всеобъемлющее Native API-приложение должно быть скомпилировано для Windows, Linux, (MacOS в 8.3), а также для популярных браузеров: IE, FireFox, Chrome, Opera, Safari. Число поддерживаемых проектов увеличивает вероятность ошибок из-за специфики каждой из поддерживаемых ИТ-архитектур.
Третья проблема не славится стандартными решениями. Задания, генерирующие файлы-флаги, запускаются только по расписанию, а не по требованию. А веб-сервисы требуют вмешательства в конфигурацию, сложны конфигурированием и ограничены SOAP-стандартом. Все это сопровождается известными нерешаемыми проблемами в Интернете при публикации и нераспознаваемыми SOAP-пакетами (случай с Java).
Универсальный подход для решения третьей проблемы, положенный в основу 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 1.6 SE, .Net framework 4, Silverlight 4, Mono 2.8

Особенности программирования для Java:

  • Названия методов для Java начинаются с прописной буквы. Например, Open, Close и GetUserList следует писать как open, close и getUserList.

Особенности программирования для Silverlight:

  • 1. Политика безопасности запрещает в Сильверлайте междоменные обращения. Поэтому необходимо создать файл clientaccesspolicy.xml или crossdomain.xml в корневом каталоге домена, к которому выполняется обращение. Соответственно, нельзя обращаться к приложениям с демо-сервера 1С так как таких файлов там нет.
  • 2. Приведенный выше код нужно запускать в отдельном потоке, так как Сильверлайт очень трепетно относится к основному GUI-потоку и асинхронные вызовы, задействующие основной поток дают некорректные результаты (Например, HttpWebResponse.EndGetResponse(), запущенный в основном потоке возвращает null).

Пример возвращает строку, полученную при запуске серверной функции ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками модуля ВзаиморасчетыСервер:

  1. string connectionString = "ws=\"http://demo-ma.1c.ru/trade\";Usr=\"АфанасьевВМ (руководитель отдела оптовых продаж)\";Pwd=\"\";L=\"ru_RU\"";
  2. Connection connection = new Connection(connectionString);
  3. connection.Open();
  4. connection.Login();
  5. GlobalContext gc = new GlobalContext(connection);
  6. string serverValue = gc.GetServerModule("ВзаиморасчетыСервер").Invoke("ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками", null).ToString();
  7. connection.Close();

Данный пример получает в массив users всех пользователей информационной базы из списка при запуске 1С:

  1. string connectionString = "ws=\"http://demo-ma.1c.ru/trade\";Usr=\"АфанасьевВМ (руководитель отдела оптовых продаж)\";Pwd=\"\";L=\"ru_RU\"";
  2. Connection connection = new Connection(connectionString);
  3. connection.Open();
  4. string[] users = connection.GetUserList();

Расширенные примеры

Расширенные примеры будут доступны в обновлении 1.1, над которым начата работа. В первую очередь будет выполнена реализация для .Net framework и Mono, которые стали лидерами по числу скачанных библиотек.
Запланировано в версии 1.1:

  • Распознавание простейших типов: строка, число, дата, булево, неопределено
  • Распознавание составных типов: структура, массив
  • Распознавание ссылочных типов: справочник
  • Состояние соединения: открыто, разорвано, закрыто, поломано

Комплексный пример для инициализации структуры с простейшими типами и вызов серверной процедуры Invoke в серверном модуле ElisyBusinessConnector, возвращающий эту же структуру. Считается, что подключение Сonnection уже создано (см. предыдущие примеры).

  1. StructureType s = new StructureType(GlobalContext);
  2. s["null"] = new NullType();
  3. s["undefined"] = new UndefinedType();
  4. s["string"] = new StringType() { Value = "String1" };
  5. s["number"] = new NumberType() { Value = 12345.678 };
  6. s["date"] = new DateType() { Value = DateTime.Now };
  7. s["boolean"] = new BooleanType() { Value = true };
  8.  
  9. GlobalContext = new GlobalContext(Connection);
  10. var result = GlobalContext.GetServerModule("ElisyBusinessConnector").Invoke("Invoke", new object[] { "result = parameters;", s }) as StructureType;

Пример выполняет запрос и возвращает предопределенный элемент из справочника Организации. Используется процедура Query в серверном модуле ElisyBusinessConnector:

  1. StructureType parameters = new StructureType(GlobalContext);
  2. IBaseType ref = GlobalContext.PredefinedValue("Справочник.Организации. УправленческаяОрганизация");
  3. parameters["Ссылка"] = ref;
  4. var record = GlobalContext.GetServerModule("ElisyBusinessConnector").Invoke("Query", new object[] {
  5.     @"ВЫБРАТЬ Справочник.Ссылка КАК Ref, Справочник.Наименование КАК Name
  6.     ИЗ Справочник.Организации КАК Справочник
  7.     ГДЕ Справочник.Ссылка = &Ссылка",
  8.     parameters
  9. }).OfType().FirstOrDefault();

Многопоточность

Организация многопоточности возможна только в серверном режиме работы 1С на разных сессиях. Опыты показали, что выигрыша в производительности в файловом режиме работы 1С нет. Нет выигрыша также в серверном режиме на одной сессии – сервер 1С обрабатывает серверные вызовы для одной сессии последовательно.

// //

См. также

Автоподбор ролей для профилей и групп доступа в любых типовых базах 1С УТ 11, КА 2, ERP2, Розница 2/3, УНФ 16/3, БП 3, ЗУП 3 и подобных (УФ, Платформа 8.3.14+)

Инструменты администратора БД Роли и права 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 15.12.2023, версия 1.1.

12000 руб.

06.12.2023    2757    11    1    

30

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    3246    10    1    

31

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177341    1070    0    

846

Ускоренное проведение документов (x4), устранение ошибок 60/62 счетов и зачет авансов (Бухгалтерия 3.0)

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    27155    78    146    

59

"Менеджер потоков 2.1": УПП: "Восстановление партий"

Инструменты администратора БД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет Управленческий учет Платные (руб)

Как оптимизировать то, что, считалось, не поддается оптимизации? Как повысить доступность базы данных? Как проводить самую «времяемкую» операцию не по паре раз в неделю, а по несколько раз в день*? Ответ есть!

20000 руб.

12.09.2019    11706    5    9    

7

Брандмауэр для сервера 1С Предприятие 8 - внешнее управление сеансами

Инструменты администратора БД Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

3600 руб.

06.02.2017    31041    31    18    

47

Система хранения присоединенных файлов в томах на диске

Инструменты администратора БД Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    61228    87    59    

72

Хранилище файлов на SQL

Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Управленческий учет Платные (руб)

Привязка файлов / сканов к объектам 1С с сохранением их на SQL-сервере

12000 руб.

09.10.2019    10894    5    8    

9
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. alexqc 150 03.10.12 11:04 Сейчас в теме
Чем это лучше встроенного в 1С механизма веб-сервисов?
2. Elisy 948 03.10.12 15:42 Сейчас в теме
(1) alexqc,
Чем это лучше встроенного в 1С механизма веб-сервисов?

Проще в настройке и использовании, выше уровень интеграции с 1С и больше возможностей.
На стороне Java и C# работа ведется родными объектами, понятными в 1С типами, например, ссылки, хранилище значения. Нет ограничений в типах входных параметров и выходных значений. Это значит, что, добавив в серверный модуль метод с командой ВЫПОЛНИТЬ, можно на клиенте выполнять любые серверные методы, не трогая каждый раз конфигурацию. А в перспективе выполнение клиентского кода 1С перенести на C# или Java-клиент.
3. DimaP 63 03.10.12 19:15 Сейчас в теме
КРУТЬ! ))
Какие на текущий момент подводные камни?
4. Elisy 948 04.10.12 09:55 Сейчас в теме
(3) DimaP,
Какие на текущий момент подводные камни?

1. Пока не достает функциональности. Но это проблема роста. Сейчас цель публикации- ознакомить с новой технологией. В обновлении 1.1 будут включены часто выполняемые операции и поддержка основных типов 1С. Сейчас в процессе разработки и покрытия юнит-тестами.
2. При отладке, если не выполняется close()-метод (например, после исключения) может наступить момент, когда все лицензии будут розданы 1С. Но в реальном отлаженном приложении этой проблемы нет.
3. До конца непонятна ниша применения и необходимость в поддерживаемых платформ. Например, изначально запланированная Silverlight-платформа, скорее всего не будет востребована и от ее поддержки будем отказываться. Но, возможно, стоит подумать о поддержке PHP.
4. Платность разработки. Разработка запланирована как платная, что отпугнет некоторых пользователей.
5. EmpireSer 05.10.12 00:02 Сейчас в теме
(4) Класс!
Про Silverlight - согласен. Даже создатели Моно от его поддержки отказались.
За Java - рад. По моему мнению - это верное направление для интеграции с Java EE. Сами осваиваем Oracle Weblogic и некоторым клиентам может быть интересен такой механизм, т.к. он в реализации удобнее, чем заморочки с web сервисами. А при правильной реализации и с безопасностью будет всё хорошо (Только не это (2) ). Может Вам потом и свои EAR модули с EJB контейнерами создать.
А вот рынок PHP, как мне кажется, Вам нужно предварительно как то оценить. У меня сложилось впечатление, что PHP и ASP сайтам за глаза хватает возможности впихивать управляемые формы в свои страницы.

P.S. Хоть парочку (желательно десяточек) $m подкинули бы, раз я, своими комментариями, Вас подтолкнул к этой идеи :)))))
6. Elisy 948 09.10.12 15:48 Сейчас в теме
(5) EmpireSer,
P.S. Хоть парочку (желательно десяточек) $m подкинули бы, раз я, своими комментариями, Вас подтолкнул к этой идеи :)))))

Спасибо всем нашим пользователям за конструктивные комментарии и предложениям, всегда рады отзывам. Только конструктивные отзывы позволяют сделать продукт более качественным и востребованным.
Всем нашим пользователям мы не сможем помочь $m, но вам выслали )))).
7. Elisy 948 07.02.13 12:10 Сейчас в теме
Выложена библиотека Business Connector 1.1 для Java 1.6
9. alexlion12 13.02.13 09:51 Сейчас в теме
(7) для php будут библиотеки?
Особенно интересует подключение по REST с передачей в JSON.
Кстати, как авторизация на стороне сервера решается?

P.S. Пик Короны на аве уж больно красив, снова туда захотелось, хотя бы на коронские стоянки. Фото с хижины Рацека сделано?
11. Elisy 948 13.02.13 13:04 Сейчас в теме
(9) alexlion12,
Elisy, для php будут библиотеки?
Особенно интересует подключение по REST с передачей в JSON.
Кстати, как авторизация на стороне сервера решается?

Для PHP запланировано после .Net и Java. Но точного срока нет.
Авторизацией на стороне сервера занимается сама 1С своими штатными средствами. Business Connector эмулирует веб-трафик между веб-браузером и сервером 1С.

P.S. Пик Короны на аве уж больно красив, снова туда захотелось, хотя бы на коронские стоянки. Фото с хижины Рацека сделано?

))))) Фото сделано с Адыгине - выше кладбища Альпинистов.
12. alexlion12 13.02.13 14:39 Сейчас в теме
(11) с Адегине до короны далековато, значит фото с зумом )
8. alexlion12 13.02.13 09:48 Сейчас в теме
1. На мой взгляд если говорить о веб-сервисах, то сайтов на php настолько большой процент, что это обязательная составляющая веб, и решений под веб тоже.

2. Вопрос следующий: в рекомендациях по настройке кластера 1с рекомендуется выделять под каждый процесс 1-1.5 гига озу. Веб-сервисы в несколько потоков сожрут оперативку мигом, и все повиснет. Ваше решение тоже потребует много процессов на 1С ? Что с оперативкой в 1С при этом происходит по факту?

3. Вопрос лицензий 1С. WS при подключении все равно ищет свободную лицензию и использует ее и учетку. Много потоков = много лицензий?
10. Elisy 948 13.02.13 12:54 Сейчас в теме
(8) alexlion12,

2. Вопрос следующий: в рекомендациях по настройке кластера 1с рекомендуется выделять под каждый процесс 1-1.5 гига озу. Веб-сервисы в несколько потоков сожрут оперативку мигом, и все повиснет. Ваше решение тоже потребует много процессов на 1С ? Что с оперативкой в 1С при этом происходит по факту?

Метод ведет себя точно также, как опубликованная через веб информационная база при подключении к ней клиента через веб-браузер. В данном случае веб-браузер - это Business Connector.
Предполагается, что решение можно использовать через пул подключений - держать сразу фиксированное число подключений открытыми и выполнять с ними операции. В простейшем случае - это одно подключение.

3. Вопрос лицензий 1С. WS при подключении все равно ищет свободную лицензию и использует ее и учетку. Много потоков = много лицензий?

В Business Connector одно подключение требует одну лицензию на стороне сервера.
13. quick 583 30.04.14 16:14 Сейчас в теме
все это конечно здорово, но ставить .NET на невообразимом зоопарке клиентов сразу ставят крест на идее использования.
14. Elisy 948 02.05.14 07:14 Сейчас в теме
(13)
У каждого подхода есть свои достоинства и недостатки. Java-клиент доступен для всех ОС.
.Net доступен на всех ОС под управлением Windows, Mono-вариант для Linux.
И есть области, где Business Connector незаменим. Например, облака. Когда нет возможности публиковать веб-сервисы. Возможно, 1С сможет обойти этот момент в будущем через REST.
15. acanta 24.04.19 07:02 Сейчас в теме
В любом случае думать придется.
Оставьте свое сообщение