Имя: Пароль:
1C
1С v8
Замена веб-сервисов/COM/OLE в 1С:Предприятие 8.2
, ,
0 Elisy
 
21.12.12
11:42
Предлагаю для информации метод обращения к 1С извне на замену веб-сервисам и COMу.
http://www.1csoftware.com/connector/ru-ru
http://infostart.ru/public/153679/

Интересно мнение сообщества о целесообразности и перспективах.

Метод позволяет связываться с опубликованными информационными базами 1С:Предприятие на Apache/IIS и в облачных сервисах.
Проект на финальной стадии. Библиотеки напрямую интегрируются пока только в Java/Mono/.Net.


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

Преимущества Business Connector перед COM/OLE:
1. Кроссплатформенность и поддержка разных операционных систем. COM/OLE-приложения нацелены только на Windows.
2. Совместимость с 64-разрядными Windows-приложениями. Одна сборка .Net/Mono/Java может работать на 32- и 64-разрядных приложениях. Технология COM/OLE требует различных версий библиотек для 32- и 64-разрыдных приложений.
3. Большая доступность на виртуальных машинах, облачных системах, сервисах SaaS и мобильных устройствах.
4. Нет привязки к аппаратному ключу защиты.
1 Lexusss
 
21.12.12
11:48
Не читал, но осуждаю. web-сервисы чудесно и кроссплатформенно работают в оба направления: 1С <-> внешние системы и винь <-> линь. Накой нужен кому то не типовой велосипед - незнамо мне.
2 Elisy
 
21.12.12
11:53
(1) В связи с кроссплатформенностью веб-сервисов есть несколько сомнений
а) Есть данные, что SOAP не такой уж кроссплатформенный
http://www.1c-galaxy.ru/forum4/topic333030/
http://www.pcmag.ru/solutions/detail.php?ID=45081

б) Не разу не сталкивался, но дадут ли возможность на серверах SaaS типа 1cfresh пользователям настраивать веб-сервисы на свои проекты? Предусмотрены ли там такие настройки?
3 kiruha
 
21.12.12
11:54
Про это поподробнее можно ?
"А в перспективе выполнение клиентского кода 1С перенести на C# или Java-клиент."
4 kiruha
 
21.12.12
11:56
В смысле будет некий транслятор или вручную ?
5 Elisy
 
21.12.12
11:57
(3) у опубликованной 1С-базы есть 2 режима запуска скриптов: на сервере (функции помечены в конфигураторе &НаСервере) и на клиенте (&НаКлиенте).
В случае &НаКлиенте байт-код передается на клиента. И его можно выполнить. Многие уже поняли, что из себя представляет байт-код 1С и теоретически его можно выполнить на клиенте средствами Java и .Net.
6 Lexusss
 
21.12.12
11:57
(3) Веб-клиент 1С не устраивает?
7 Elisy
 
21.12.12
12:05
(4) Есть готовый транслятор-декомпилятор байт-кода 1С. Но это малая часть дела. Клиентский код 1С работает со встроенными объектами 1С. Чтобы все работало, их нужно реализовывать на Java/Net. Это трудоемко, поэтому указана теоретическая возможность.
8 Balonbl4
 
21.12.12
12:08
(1) МУХОХА, вам просто повезло, поддержка SOAP в 1С далека от полной.
9 Serginio1
 
21.12.12
12:11
(2) Это проблема не Soap а 1С, тем более 8.1.
Сам писал прослойку на Net, для доступа к таким сайтам.
То есть ты подключаешься как  вэб клиент?
10 Elisy
 
21.12.12
12:17
(8) Можете вкратце перечислить, с какими проблемами пришлось сталкиваться в веб-сервисах? Доступ из какой среды был к 1С?
11 Elisy
 
21.12.12
12:19
(9) Да, подключение идет как веб-клиент. Но, думаю, можно и протокол тонкого клиента разобрать со временем. Различие в том, что веб-клиент работает через JSON, а тонкий клиент через XML.
12 Balonbl4
 
21.12.12
12:33
(10) Проблемы с подключением ИЗ 1С в веб=сервисам, сделанным с помощью Oracle Fusion Middleware,например. Причем wsdl - валидные, а 1С просто пишет "Ошибка формата" и все
13 sapphire
 
21.12.12
12:34
(0) Ну мы на ИС уже поняли что вы web-клиент эмулируете или что-то в этом духе :)
14 sapphire
 
21.12.12
12:38
(12) Тоже лечится использованием MW а-ля ESB
15 Serginio1
 
21.12.12
12:42
(11) Интересно. А чего не пошли по пути нетовских динамиков?
Там кстати удобно через IDynamicObject
http://intellitect.com/dynamically-typed-objects-with-c-4-0/
16 Elisy
 
21.12.12
12:48
(12) Получается, что SOAP не гарантирует кроссплатформенность. Веб-сервисы на уровне протокола SOAP еще отлаживать/мониторить тяжело, так как формат очень пухлый.
17 Широкий
 
21.12.12
12:54
(0)"сервер 1С обрабатывает серверные вызовы для одной сессии последовательно"
Подробнее плз
18 Asmody
 
21.12.12
12:55
(2) только за ссылку на сайт, ворующий контент, вас следует забанить на долгие годы на этом форуме
19 Elisy
 
21.12.12
13:04
(15) Сначала была реализация парсера JSON на dynamic. Но хотелось универсального интерфейса для .Net и Java. Поэтому пришлось .Net проект урезать до функционала Java, который не поддерживает dynamic. Еще кое с чем пришлось попрощаться. Сделали двойную работу, но зато есть небольшая гарантия, что интерфейс будет схожим и для других систем разработки Delphi/PHP. И требование .Net уменьшили до 3.5, что дало доступность в PowerShell без доп.настроек.
20 Elisy
 
21.12.12
13:21
(17) веб-сервисы инициализируют новое соединение с базой 1С при каждом вызове.
В случае с Business Connector соединение/сессия инициализируются один раз и все вызовы модулей происходят в одной сессии. Думаю, это можно применить, сохранив объект во временное хранилище на сервере, при первом обращении и прочитав его во втором вызове. В случае с веб-сервисами сессии будут разными в разных вызовах и временное хранилище нельзя расшарить между ними.
Может еще для чего-нибудь пригодится.
21 Elisy
 
21.12.12
13:29
(18) я не сильно разбираюсь, кто у кого ворует контент. Ссылку нашел в Гугле ранее и использовал в другом обсуждении в схожей теме:
http://forum.infostart.ru/forum24/topic75705/
Надеюсь, ИС можно упоминать ))))
А так много еще есть поводов заблокировать мой ник надолго: редко появляюсь здесь, появляюсь с идеями, которые можно отнести к пиару и т.д.
22 Serginio1
 
21.12.12
13:41
(20) Соединения кэшируются, так что потери времени практически нет. А соединение нужно держать и все данные, что не всегда нужно и удобно.
23 Serginio1
 
21.12.12
13:42
(21) Внутри то Вэб сервиса используется ComConnector
24 Serginio1
 
21.12.12
13:48
(19) Не знаю, что хорошего в таком синтаксисе
GlobalContext gc = new GlobalContext(connection);
string serverValue = gc.GetServerModule("ВзаиморасчетыСервер").Invoke("ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками", null).ToString();

Проще
var gc = new GlobalContext(connection);
var serverValue = gc.GetServerModule.ВзаиморасчетыСервер.ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками();
25 Elisy
 
21.12.12
14:24
(22) (23) Возможно кэшируется. Имелось ввиду, что на сервере 1С при каждом вызове операции веб-сервиса выполняется один и тот же код инициализации, например в модуле сеанса УстановкаПараметровСеанса
26 kiruha
 
21.12.12
14:26
27 Elisy
 
21.12.12
14:36
(24) синтаксис, согласен, мог бы быть красивее. Но такой синтаксис совместим с др. языками. Например, на C# и Java - только регистры первых букв методов отличаются. Delphi и PHP тоже будут иметь схожий с этим синтаксис, так как вызов методов, наверняка, поддерживают, а вот индексные свойства и динамические типы (из C#) - не поддерживают.

C#
GlobalContext gc = new GlobalContext(connection);
string serverValue = gc.GetServerModule("ВзаиморасчетыСервер").Invoke("ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками", null).ToString();

Java
GlobalContext gc = new GlobalContext(connection);
String serverValue = gc.getServerModule("ВзаиморасчетыСервер").invoke("ПолучитьТекстЗапросаДокументыРасчетовСПоставщиками", null).toString();
28 Elisy
 
21.12.12
14:42
(26) Действительно контент одинаковый. Были смутные сомнения, что очень уж похоже на Мисту, но, думал, может Миста для раскрутки еще один сайт запустила с целью SEO.
Если же это нарушение, думаю, правильнее через хостера решать того сайта вопрос о закрытии клона.
29 Valerik0101
 
21.12.12
14:49
Так а цена этой вещи примерно какая будет?
30 Valerik0101
 
21.12.12
14:51
Есть ещё одно решение, которое пробую на замену веб-сервисами http://infostart.ru/public/142730/
И если тут получиться как-то прикрутить кроссплатформенность - порадуюсь, на будущее пригодится.
31 Elisy
 
21.12.12
15:02
(29) Цену не определили еще. Не совсем ясен спрос и целевая аудитория. Ориентировочно диапазон 100-200 Евро на организацию без учета числа подключений с традиционной 40% скидкой для разработчиков и 20% скидкой для дистрибьюторов.
32 Valerik0101
 
21.12.12
15:15
(31)Ну со своей стороны могу сказать что интернет-магазину подобная вещь пригодилась бы, но не полностью понятен функционал - демку бы потом какую-нибудь или пример подробный.
С другой стороны без поддержки php или python мне особо и не найти применения.
Но в целом идея хорошая, и интересно что получится!
33 Bugmenot
 
21.12.12
15:46
(0) Не нужно это все не кому... Кроссплатформенность, ориентация на модные технологии - это просто слова. По факту, за свою большую практику скрещивания самых разнообразных ежей и ужей, ни разу не сталкивался с какими-нибудь недостатками веб-сервисов (при условии, что веб-сервис был применим для решения, в принципе).
34 Elisy
 
21.12.12
15:48
(30) Интересная технология, но вижу ее недостатки в следующем:
1. Нет интерактивности - COM/веб-сервисы и Business Connector работают по требованию
2. Привязка к Windows - пример в статье регистрирует C#-сборку.
3. Сложность в настройке и использовании. Вся документация на английском. Понятия подписчики, маршрут,
4. Сложность протокола AMQP сравнима с SOAP. AMQP - бинарный. Вернее, AMQP планировался как транспортный протокол, на основе которого может быть SOAP.

Проще с тем же успехом сделать аналогичный обмен через xml и FTP, думаю. Тоже нет интерактивности, но FTP достаточно легко поднять под любой операционной системой и у него родной клиент в 1С.
35 Elisy
 
21.12.12
16:04
(32) Согласен, что мало интернет-магазинов на основе asp.net. Как минимум нужно поддержкой охватить PHP. Но нужно еще вспомнить, как на нем программировать )))))))
Примеры будут позже. Для наглядности - подключение к http://demo-ma.1c.ru/trade из кода 1C и PowerShell.
36 Valerik0101
 
21.12.12
17:03
(34)Протокол AMQP удобен и развивается. Есть удобные очереди с широкими возможностями обработки. Веб программисты говорят к нему есть библиотеки на python (актуально для компании)
Сложностей не боимся а интерактивность зависит от задач)) - под некоторые специфические наши задачи подходит оч хорошо. А под некоторые можно допилить - вызов функций в 1с не проблема, синхронизацию можно делать доп заголовком каким-нибудь в сообщении.
Пока только тестю все это дело.
Минус что сборка готовая под Винды - это да, согласен.
Подключение погляжу, спасибо. интересно.
А PHP, да, очень пригодился бы в вашей программе
37 Serginio1
 
21.12.12
17:46
(27) Вэб сервисы удобно использовать именно из-за удобства их испльзования. Так генерятся классы с сериализацией десериализацией. И у каждого языка уже есть свой генераторы обертки. В таком виде крайне неудобно использовать. Но вот если бы вы сделали доступ через IDispatch по аналогии
v8: Объекты Net в IDispatch
То вы получили бы ту же совместимость.
38 Krendel
 
21.12.12
17:53
Ребята, пока вы еще не ушли отмечать конец света, вопрос:

1. Как оптимальнее сделать обмен с сайтом без участия пользователя, какуб теху использовать, на что обратить внимание.
2. Если возможно- можно ли ограничится внешней обработкой
3. Какие ограничения будет иметь данное решение

Пасип за ответы, всех с наступившей эрой водолея
39 Serginio1
 
21.12.12
17:56
Я понимаю, что вами движет кроссплатформенность, но учитывая выход вин RT, то может проще на Net и сосредоточится. Я лично предпочту Вэб сервисы, чем писать так. В свое время хватило C# без динамиков.
40 Elisy
 
22.12.12
11:16
(33) Вы можете прокомментировать, исходя из практики, как публикуются веб-сервисы на SaaS-серверах 1С (1cfresh), в ЦОД 1С? Есть такая возможность? Ведь настройка связана с безопасностью и администрированием на уровне системы. Очень хотелось бы узнать, но информации не нашел.
41 Elisy
 
24.12.12
11:04
(37) IDispatch/COM/OLE/ActiveX уходят в историю. На замену выходят .Net и Java, как отдельные равноценные технологии. Java популярнее из-за большего возраста.
42 Serginio1
 
24.12.12
12:44
(41) Угу. Тот же WinRt API это СОМ, что предоставляет возможность скрещивания натива и сейв кода. Пока до истории им далековато.
http://rsdn.ru/forum/dotnet/4454968
http://rsdn.ru/forum/rsdn/5006004

Да суть даже не в этом. Написать оболочку к объектам через Idispatch и ими будут все пользоваться на любых языках под вин.
Кстати реализация IReflect не все методы видит
http://rsdn.ru/forum/dotnet/4320177
43 Elisy
 
24.12.12
13:36
(39)(42) Не совсем понятно, зачем нужно гнаться за WinRT? Какие преимущества он дает?
При разработке Business Connector не было никакого желания ограничиваться только Windows.

По поводу IReflect. Реализация любой оболочки на C# не дает нужной гибкости. Гибкость дает только использование С++. Там еще куча моментов может повылазить, кроме вызова ToArray, начиная с особенностями ComVisible и индексными свойствами, заканчивая перечислениями и универсальными типами.
Такая оболочка у нас реализована и развивается уже 4 года под отдельным проектом .Net Bridge
http://www.1csoftware.com/dotnet/ru-ru/
Проблем в частности с вызовом ToArray на нашем продукте нет.
44 Serginio1
 
24.12.12
13:54
(43) Да эта проблема решается. Интересно, как ваша разработка доступна например из отличных от  1С языков не реализующих ILanguageExtender или при исполнении кода на сервере 1С?
45 Serginio1
 
24.12.12
14:07
(43) Да суть в том, что бы писать в стиле VB а не шарпа без динамиков. Пример WinRT в том, что люди пошли на компромисс между нативным кодом и сейвами. В шарпе есть динамики и возможность реализации IDynamicObject , что бы доступ к данным был по аналогии с IDispatch. Тут форум 1С которые в таком стиле привыкли писать. А вот с явой это уже их проблемы.
46 Serginio1
 
24.12.12
14:08
44 относится к IReflect против .Net Bridge
47 Ахиллес
 
24.12.12
14:14
Вопрос к топик стартеру. Фирма 1С не натянет тебя по самые помидоры? Лицензионное соглашение в части "нельзя получать доступ к базе сторонними средствами... бла, бла, бла..."
48 Ахиллес
 
24.12.12
14:16
Ещё вопрос. Из одной базы 1С можно получить доступ к другой? Ну не нравится мне ОЛЕ, бизнес коннектор этот можно использовать ему на замену?
49 regniws
 
24.12.12
14:21
Про нарушение лицензионного соглашения уже говорили?
50 Serginio1
 
24.12.12
14:31
(47) Вообще то 1С самим нужно давать такой доступ. При подключении Вэб клиента все равно лицензия используется. А вот в отличие от Вэб сервиса, где лицензия нужна только на вызов.
51 regniws
 
24.12.12
14:32
(50) причем тут защита? разговор про "лицензионное соглашение"
52 Serginio1
 
24.12.12
14:40
(51) А где я говорил про защиту. Какая разница какой доступ если он идет через интерфейс 1С? А конкретно Вэб клиента?
Доступ по ОЛЕ не является же нарушением? Самое главное, что бы лицензия использовалась.
53 regniws
 
24.12.12
14:45
(52) "При подключении Вэб клиента все равно лицензия используется. "
" Самое главное, что бы лицензия использовалась"

Причем тут лицензия вообще?
54 Serginio1
 
24.12.12
14:48
(53) ОЛЕ это стороннее средство?
55 Serginio1
 
24.12.12
14:49
(53) Он к Базе 1С не подключается, он подключается к 1С.
Хотя с другой строный интерфейс протокола Вэб клиента и не открыт
56 Elisy
 
24.12.12
14:55
(44)(46) .Net Bridge одновременно работает как ВК для 1С и как COM-сервер. Поэтому допустимо на сервере создать COM-объект. Еще помогает на управляемых формах при создании визуальных объектов через IE тоже через COM-объект.
57 Elisy
 
24.12.12
15:02
(45)Динамики - не панацея. Оправданное использование динамиков видел только в 2х случаях: обращение к COM-объектам вместо многочисленных и непонятных invoke'ов и в Asp.Net MVC при генерации страницы.
В остальных случаях вижу динамики как зло в изначально строго типизированном языке. Ни ошибки на этапе компиляции проверить, ни IntelliSense воспользоваться.
58 Serginio1
 
24.12.12
15:13
(56) Ну а Ком то работает уже работает через IDispatch?
GetIdsOfNames переопределяете. IReflect проще.
Я проблемой с ToArray не занимался, нашел другие пути например через InvokeMember внутри сома все работает.
Ну это не суть.
(57) Так сам же и предлагаешь многочисленные Invoke без типизации. Бедные 1С как же они без типизации то обходятся.
Правда я сторонник псевдо типизации типа ДиспИнтерфейсов или по аналогии с типизацией Open Conf //:ТаблицаЗначений
она же утинной типизацией. Просто на шарпе нужно генерить объект специального класса. А вот псевдоинтерфейсы нужны были бы как подсказка и контроль типов.
59 Serginio1
 
24.12.12
15:22
(0) Кстати премущество Вэб сервиса это использование лицензии на вызов. У меня было куча запросов в секунду к вэб сервису, при этом количество использованных лицензий у Вэб мдуля было 1 или 2. То есть была очередь.
60 Elisy
 
24.12.12
15:25
(47) Пока не нашел противоречия с лицензией 1С. Прямого доступа к БД нет. Есть момент про мультиплексирование вызовов, но он к Business Connector не подходит, т.к. на одно соединение выделяется одна лицензия.
61 Demiurg
 
24.12.12
18:01
(60) позиция 1С - все что не описано явно в их документации - не законно, читайте внимательнее их ЛС
62 oleg_km
 
24.12.12
22:57
(61) Читайте ГК часть 4. Императивная норма, задолбался уже таким упертым цитировать. Повесьте чтоли в базу знаний: законный обладатель программы имеет право декомпилировать, диззасемблировать, иметь прямой доступ к данным и все прочее, что запрещают разработчики
63 oleg_km
 
24.12.12
23:01
Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ

1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:
1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем;
2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей или для замены правомерно приобретенного экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных не может быть использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и должна быть уничтожена, если владение экземпляром таких программы или базы данных перестало быть правомерным.
2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения изучать, исследовать или испытывать функционирование такой программы в целях определения идей и принципов, лежащих в основе любого элемента программы для ЭВМ, путем осуществления действий, предусмотренных подпунктом 1 пункта 1 настоящей статьи.
3. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий:
1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников;
2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию;
3) информация, полученная в результате декомпилирования, может использоваться лишь для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, не может передаваться иным лицам, за исключением случаев, когда это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, а также не может использоваться для разработки программы для ЭВМ, по своему виду существенно схожей с декомпилируемой программой для ЭВМ, или для осуществления другого действия, нарушающего исключительное право на программу для ЭВМ.
4. Применение положений, предусмотренных настоящей статьей, не должно наносить неоправданный ущерб нормальному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного правообладателя.
64 Demiurg
 
25.12.12
02:04
(62) скажи ты такой умный, а фирма 1С может тебе отказать в продаже продукта, если ты не согласен с ее ЛС? ЛС - это защита от тех, кто думает что свобода это когда можно делать все что хочешь
65 Demiurg
 
25.12.12
02:08
мой ответ про ЛС http://vk.com/video8507976_161737120?hash=06d53c89a9f7eb63 61 минута, 35 секунда
66 oleg_km
 
25.12.12
09:27
(64) Закон суров, но он закон
67 Elisy
 
25.12.12
13:15
(48) Сейчас из одной базы можно будет получить доступ к другой базе 1С через elisy.businessconnector.dll + .Net Bridge.
Думаю, можно в будущем разработать модуль 1С без использования сторонник компонентов с подключением к другой базе 1С, опубликованной через веб. Но здесь есть нехорошие моменты:
Метод настолько очевиден и гибок, что с вероятностью 70-90% компания 1С сама реализует его в будущих версиях платформы 1С. В связи с этим реализация модуля своими силами приведет к потери времени, так как фича от 1С перечеркнет всю работу. Более того, зная стиль работы 1С, идея через реверс инжиниринг перекочует в платформу )))))))
Исходя из этого, мы за собой оставили метод доступа извне внутрь 1С, т.к. эта область с большой вероятностью не будет охвачена компанией 1С.
68 Elisy
 
25.12.12
13:26
(49)(51) Вы можете внятно написать пункт, который нарушается использованием Business Connector?

Сопутствующие вопросы:
Данный метод доступа теоретически можно реализовать средствами 1С через http-запросы. Были ли прецеденты признания любого кода 1С нарушением лицензионного соглашения?
Business Connector - это техническое средство для работы с http из ряда аналогичных средств работы с http-трафиком: браузер, плагины к браузеру, анализаторы http-трафика, прокси-сервера, веб-сервера. Возможно ли запретить все тех.средства работы с http-трафиком, если они явно нигде не описаны в документации 1С?
Кому принадлежит Http-пакет (json/xml) после отправки от веб-сервера? Имеет ли право 1С претендовать на него?

Сомневаюсь, что можно дать адекватные ответы на эти вопросы. Это увеличивает шанс на существование любой технологии работы с 1С через веб-сервер.
69 ДенисЧ
 
25.12.12
13:28
(68) совершения третьими лицами следующих действий без специального письменного разрешения Правообладателя:


доступ к информационной базе ПРОГРАММНОГО ПРОДУКТА и построение систем на основе ПРОГРАММНОГО ПРОДУКТА с помощью средств и технологических решений, не предусмотренных в сопроводительной документации;
70 oleg_km
 
25.12.12
13:37
(69) Эта норма прямо нарушает закон. С каких это пор ЛС стали выше ГК? Поэтому в первую очередь вопрос к 1С: с какой стати ее ЛС нарушает закон?
71 ДенисЧ
 
25.12.12
13:37
(70) ээээ... Какой именно?
72 Elisy
 
25.12.12
13:41
(59) При тестировании Business Connector повылазили интересные моменты, которые можно отнести ко всем методам доступа к 1С из Веб.
Параллельные вызовы внутри одной сессии 1С через веб приводят к последовательному выполнению команд на стороне 1С. Распараллелить процесс не получается.
Параллельные вызовы из рызных сессий также выполняются последовательно, кроме варианта, когда 1С работает в режиме сервера в трехзвенной архитектуре.

Если есть такие же исследования для веб-сервисов, интересно было бы на них посмотреть. Есть подозрение, что веб-сервисы также ведут себя, выстраивая параллельные запросы последовательно.
73 Serginio1
 
25.12.12
13:48
(72) Ну у меня было много одновременно выполняемых запросов. Во всяком случае в консоли висело несколько одновременно выполняющихся задач. Там наверняка элементарно трид пул задействован
74 Elisy
 
25.12.12
13:51
(60) Паранойя какая-то, часто встречающаяся: нарушение ЛС 1С. В носу ковырять тоже нельзя при использовании 1С, явно не разрешили же? А чихать?
(62)(63) Правильные ссылки дает oleg_km . ЛС не может стоять выше ГК РФ. При любом судебном разбирательстве пункты ЛС будут отменены, как противоречащие законодательству РФ.
Я от души посмеюсь, когда попробует 1С заикнуться перед европейскими пользователями на англоязычном 1c-dn.com, что им запрещены общепринятые средства доступа: напрямую к БД, через http.
75 Elisy
 
25.12.12
14:34
(65) "сапоги должен тачать сапожник". При всем уважении комментарий по ЛС от юриста был бы более ценен, чем от технаря. Можно вкратце, что происходило на 61 минуте, чтобы не смотреть все видео и не загружать себя лишней информацией про MSSQL?
76 Elisy
 
26.12.12
14:15
(69) Как же меня достали цитаты из ЛС 1С. На заборе тоже много чего написано.
Есть 2 подхода: цивилизованный и нецивилизованный.
При цивилизованном подходе в цивилизованной стране нормы о запрете способов доступа в базу 1С никогда бы не появились, а 1С признали бы монополистом. Вспомните огромные штрафы для Microsoft от Евросоюза. В таких странах можно исполнять законы, они для людей.
Раз эти нормы появились, значит испульзуем нецивилизованный подход - формальный с игнорированием незаконных пунктов ЛС от 1С.
77 Elisy
 
26.12.12
14:26
(73) "трид" пул - это какой? В смысле thread? На сервеном варианте подключения или файловом?
В веб-подключении тоже возможно несколько потоков, но только на серверном варианте.
78 Serginio1
 
26.12.12
14:31
(77) Всмысле ThreadPool QueueUserWorkItem.
Кстати, а в файловом варианте нет зависимости от серверности ОСИ? Я работал только с серверным вариантом с 8 мью ядрами.
79 Elisy
 
26.12.12
15:06
(78) Понятно по поводу ThreadPool.
Серверный в смысле серверность 1С. В файловом варианте 1С возможна одновременная поддержка веб-сервисов или только в клиент-серверном?
80 Serginio1
 
26.12.12
15:15
Нет, там как ISA работает в серверном варианте ос и не серверной. По сути севисы очень похожи на ком. Там тоже есть кэширование соединенй. Хотя регламентные задания в файловом варианте не работают.
81 sapphire
 
26.12.12
15:37
(30) Это всего лишь MQ-транспорт, хоть и писан на Erlang-е.
82 sapphire
 
26.12.12
15:43
(4) у нас тоже есть нечто подобное, и тож на C#
83 sapphire
 
26.12.12
15:44
(82) к (7)
84 Elisy
 
27.12.12
15:14
(82) Я и говорю, написать простейший декомпилятор 1С сейчас не проблема. Байт-код там элементарный.
Если хотите новогодних приключений от 1С, можете выложить свой декомпилятор в открытый доступ )))
85 Elisy
 
04.01.13
10:21
Создано обновление 1.1 для Java. Обращение будет примерно таким:

import net.elisy.businessconnector.*;
import net.elisy.businessconnector.types.*;
import net.elisy.businessconnector.vm.*;


     Connection connection = new Connection(connectionString);
       connection.open();
       connection.login();
       connection.getLicenseManager().activate(serialNumber, companyName, activationKey);
       GlobalContext globalContext = new GlobalContext(connection);

       StructureType s = new StructureType(globalContext);
       s.put("null", new NullType());
       s.put("undefined", new UndefinedType());
       
       StringType st = new StringType();
       st.setValue("String1");
       s.put("string", st);
       NumberType nt = new NumberType();
       nt.setValue(12345.678);
       s.put("number", nt);
       DateType dt = new DateType();
       dt.setValue(new Date());
       s.put("date", dt);
       BooleanType bt = new BooleanType();
       bt.setValue(true);
       s.put("boolean", bt);

       StringBuilder script = new StringBuilder();
       script.append("result = new Structure();\n");
       script.append("result.insert(\"null\", parameters.null);\n");
       script.append("result.insert(\"undefined\", parameters.undefined);\n");
       script.append("result.insert(\"string\", parameters.string);\n");
       script.append("result.insert(\"number\", parameters.number);\n");
       script.append("result.insert(\"date\", parameters.date);\n");
       script.append("result.insert(\"boolean\", parameters.boolean);\n");
       StructureType result = (StructureType)globalContext.getServerModule("ElisyBusinessConnector").invoke("Invoke", new Object[] { script.toString(), s });
86 Elisy
 
10.01.13
10:03
(48) Написал статью, как из одной базы 1С получить доступ к другой базе по этой технологии:
http://infostart.ru/public/168755/
http://www.richmedia.us/post/2013/01/10/access-to-1c-enterprise-82.aspx
87 Elisy
 
07.02.13
12:08
Выложена библиотека для Java
http://www.1csoftware.com/forums/viewtopic.php?f=9&t=719&p=1812#p1812