Имя: Пароль:
1C
1С v8
Нужна помощь по интеграции с внешней БД через WEB API
,
0 SurFace
 
15.01.14
18:03
SOAP интерфейса нет.
результат возвращается в XML|JSON

С чего можно начать воплощать в реальность, до этого использовал только функционал SOAP.
1 Apokalipsec
 
15.01.14
18:06
С прочтения документации, Ваш КО.
2 SurFace
 
15.01.14
18:11
Все что можно прочитал ))

Есть два метода через НТТPсоединение или через COMОбъект("WinHttp.WinHttpRequest.5.1"), какой будет правильнее?
3 oleg_km
 
15.01.14
19:37
Какая платформа и ОС? Если не Вин, то единственный вариант: НТТPсоединение. Начни на встроенном, будут проблемы - спросишь. Если что - перепишешь на COMОбъект("WinHttp.WinHttpRequest.5.1").
4 Torquader
 
15.01.14
22:31
(2) Если Win, то будет объект ServerHttpXmlRequest - он будет "интереснее" и "умнее".
Если уж очень сложно, то вкладку VbScript или сценарий на php через Socket-ы - можно сделать всё, что угодно.
5 SurFace
 
16.01.14
14:14
Платформа: WinSRV

Забугорцы прислали пример обращения к своему сервису:

        private static HttpWebRequest CreateTokenServiceCall(WebServiceClientModuleInstance clientModule)
        {
            var request = (HttpWebRequest)WebRequest.Create(Singleton.Instance.GetTokenContext());
            request.Method = WebRequestMethods.Http.Get;
            request.Headers.Add(AuthenticationConstants.CompanyTokenKeyName, GetTokenByColumnName(CompanyToken, clientModule));
            return request;
        }

Можно ли это прикрепить к 1С не изменяя, по сути вроде это .NET?

Ну и подобие WinHttpRequest
6 Serginio1
 
16.01.14
14:26
7 Asmody
 
16.01.14
14:39
(0) всё можно сделать через HTTPСоединение без всяких левых компонент
8 Serginio1
 
16.01.14
14:51
(7) Не компонента, а COM сервера. Зачем переписывать если можно использовать готовые решения, особенно когда объем этого кода значителен.
9 Asmody
 
16.01.14
14:59
(8) затем, что это не нативно
10 oleg_km
 
16.01.14
15:09
(9) Нативность - это эталон программирования?

(5) Это вроде легко можно сделать на НТТPСоединение, поднимать ради этого дот.НЕТ я бы не стал
11 Serginio1
 
16.01.14
15:22
(10) Угу вручную разбирать JSON. Да и нужно еще подгружать xsd для преобразования XML. Если там много методов и классов то не факт что проще.
12 SurFace
 
16.01.14
17:18
(6) Спасибо, попробуем.
13 SurFace
 
16.01.14
17:28
(7) У тебя нет случаем примеров обращения к сервису через HTTPсоединение с подстановкой параметров (в данном прмере CompanyTokenKeyName) и получением результата (желательно не в файл) - я нашел только такой пример v8: JSON Яндекс.Директ API
14 SurFace
 
16.01.14
17:40
ну и что из .. перспективнее, универсальнее (чтобы не придумывать велосипед...всякие парсирования) и масштабируемый.
15 oleg_km
 
16.01.14
17:53
(11) Ну в примере был простой GET. А так скорее всего ты прав.
16 SurFace
 
16.01.14
18:42
а что вы скажете на счет WinHttp.WinHttpRequest.5.1?
17 Torquader
 
16.01.14
21:12
(16) Объект, который умеет работать с http-запросами.
Что ещё от него надо ?
18 Torquader
 
16.01.14
21:13
19 oleg_km
 
16.01.14
21:51
(16) В твоем случае на мой взгляд полный эквивалент HTTPсоединение
20 SurFace
 
17.01.14
11:48
Так, а по производительности что эффективнее?
Объемы большие, ежедневно пару десятков тысяч строк передаются. В строке параметров 30.
Soap в принципе справлялся.
21 SurFace
 
17.01.14
11:49
т.е. ежедневно получение 600 000 значений.
22 Джинн
 
17.01.14
11:52
(2) НТТPсоединение работает. Но очень много геморроя поимеете в связи со своеобразной реализацией 1С его.
23 Джинн
 
17.01.14
11:52
(16) На кой ляд костыль внешний?
24 oleg_km
 
17.01.14
12:05
(20) Еще раз повторяю: для вашего случая абсолютно эквивалентно, в случае с КОМ может еще и потеряете на взаимодействии с КОМом. КОМ лучше когда нужна авторизация клиента сертификатом, нужны заголовки ответа, еще там вроде какие-то фичи. А главное, вы хорошо разбираетесь в КОМ.

А впрочем делайте как хотите.
25 sapphire
 
17.01.14
12:08
(0) ESB типа mule
26 Serginio1
 
17.01.14
12:55
(21) Используй то, что тебе понятней или в чем хочешь разобраться.
Для внутреннего сервера COM 600 000 это копейки. Чай не 20 лет назад живем.

Если использовать NET то берешь готовое решение у забугорных товарищей и используешь через NetObjectToIDispatch45. Минимум движений. Но при этом нужно знать .Net, что бы разбираться в исключительных ситуаций.
Второй способ создавать свое решение.
Что тебе понятней то и бери.