|
Чтение и запись данных из удаленной базы 1С, опубликованной в WEB | ☑ | ||
---|---|---|---|---|
0
Vladal
20.07.15
✎
10:42
|
Вообще возможно ли такое, и каким способом?
Есть клиент, у которго база заказов опубликована в 1С:Предприятие 8.3 (8.3.5.1186). Простенькая самописка для того, чтобы клиент сам создавал заказы. Мне нужно автоматизировать загрузку и выгрузку наших заявок в их базу. Есть логин и пароль, на веб-морду захожу без проблем, ручками создаю новый документ прямо в их базе 1С и сохраняю. Также могу просмотреть все свои прежние заявки. А возможно ли программно подключиться к такой базе и программно прочитать существующие (свериться, чего мы там поназаказывали вчера с бодуна) или создать новые документы? Права на создание документа Заявка есть, на чтение тоже. Вопрос - как подклюбчиться и как читать/писать? |
|||
1
Лефмихалыч
20.07.15
✎
10:51
|
(0) как минимум, ты можешь использовать v83.Application
|
|||
2
Лефмихалыч
20.07.15
✎
10:52
|
но я бы попросил http- или soap- сервис - это системнее и сделает всю эту халабуду с обоих концов лучше
|
|||
3
DmitrO
20.07.15
✎
10:56
|
(1)поправлю Лефмихалыча: V83С.Application
|
|||
4
Остап Сулейманович
20.07.15
✎
10:58
|
(3) V83С.Application на удаленной машине? А оно там есть?
|
|||
5
Vladal
20.07.15
✎
10:59
|
(1) v83C.Application уже начал ковырять.
А по HTTP авторизацию не проходит. Пример: ВебСервис = Новый WSопределения("http://адрес/ws.1cws?wsdl","Логин","Пароль",30); Прокси = Новый WSпрокси(ВебСервис,"http://Адрес","ws","wsSoap"); Прокси.Пользователь="Логин"; Прокси.Пароль="Пароль"; ПарольХЭШ = ХЭШСтроки("Пароль"); Результат = Прокси.auth("Пароль",ПарольХЭШ); Если Результат.Result_code <> 0 Тогда //Получили ошибку аутентификации предупреждение(Результат.result_text); Иначе ... КонецЕсли Вот на исключении попадает и ругается на то, что авторизация не прошла. ЧЯДНТ? |
|||
6
Остап Сулейманович
20.07.15
✎
11:02
|
То, что ты написал в (5) никакого отношения к Аппликейшн не имеет. Ты пытаешься подключиться к ВЕБ-сервису.
Опять же. Тот же вопрос : "а оно ТАМ опубликовано"? |
|||
7
Vladal
20.07.15
✎
11:02
|
Пробовал пример из Книга знаний: Использование внешних web-сервисов в 1С:Предприятие 8
Но тоже не помогло - ссылка не та, что-ли или вообще она не XDTO. Хотя разрабы той базы дали пример, в браузере XML вываливается, а программно нет. |
|||
8
Vladal
20.07.15
✎
11:03
|
(6) Да. Тот сервис опубликован. Я v83 аппликейшен пока не доковырял. Использовал приведенный разрабами пример.
По примеру я вручную вставляю в браузере адлрес, ввожу логин и пароль в диалоге авторизации и получаю XML. А программно - нихт. |
|||
9
DmitrO
20.07.15
✎
11:03
|
(4)какой еще, блин, удаленной? )
|
|||
10
Лефмихалыч
20.07.15
✎
11:04
|
(5) а с хрена ли она должна проходить-то? Там же вебсервисов ни каких не опубликовано
|
|||
11
Остап Сулейманович
20.07.15
✎
11:05
|
(7) Выдохни на секунду. Ответь на вопросы.
Все, что написано в (0) "на веб-морду захожу без проблем" - в браузере или в тонком? |
|||
12
Лефмихалыч
20.07.15
✎
11:05
|
база, опубликованная на веб-сервере, и веб-сервис - это намного более разные две вещи
|
|||
13
Остап Сулейманович
20.07.15
✎
11:06
|
(9) Общепринято называть систему "удаленной", если она не принадлежит локальной сети клиента. Странно, что пользователи форума не всегда владеют терминологией...
|
|||
14
Vladal
20.07.15
✎
11:07
|
(10) А в браузере открывается, значит опубликовано?
(11) Открывается webприложение 1С, по сути тонкий клиент. Для тонкого клиента один логин и пароль, для веб-сервиса другой адрес, другой логин и пароль. Я взял примеры разработчиков - пишут, что к веб-сервису подключаемся так-то и получаем XML, который есть XDTO. Но он не работает, я вот и думаю - может как-то по тонкому клиенту подключиться? v83c.application? |
|||
15
Vladal
20.07.15
✎
11:09
|
(12) Если один путь не получается преодолеть, я решил пойти другим путём.
|
|||
16
DmitrO
20.07.15
✎
11:10
|
(13)боже, создавать объект автоматизации тонкого клиента где простите вы подумали?
|
|||
17
Лефмихалыч
20.07.15
✎
11:10
|
(14) да, значит база опубликована на вебсервере. Это значит, что, когда ты к вебсерверу по определенному порту обратишься с правильным логином и паролем, он тебе будет отвечать html-страничкой с управляемыми формами.
Веб-сервис - это, когда веб-сервис отвечает xml-документами, содержащими заведомо понятные объекты, перечисленные в файле ws. У тебя тут, как я понимаю, ни каких вебсервисов не пахнет |
|||
18
Остап Сулейманович
20.07.15
✎
11:11
|
(14) "по сути тонкий клиент." Вопрос не "по сути", а конкретно тонкий или в браузере.
Если тонкий - тогда вполне можешь юзать Аппликешн. Если в браузере - нужен ВЕБ-сервис, опубликованный "там" с описанием его свойств и методов. |
|||
19
Лефмихалыч
20.07.15
✎
11:12
|
короче, ответ в (3). Не телепи своё айпи и используй OLE
|
|||
20
Лефмихалыч
20.07.15
✎
11:12
|
(18) Остап Сулейманович, у вас, по моему, жар
|
|||
21
Vladal
20.07.15
✎
11:13
|
(18) Конкретно в браузере.
(19) Дык я ж и хочу ОЛЮ позвать, а она гне понимает HTTP базу или я ей плохо объяснил, что хочу. |
|||
22
DmitrO
20.07.15
✎
11:13
|
(17)это все мозгоблудие началось из-за того, что 1С начала SOAP-сервисы называть слишком общим понятием "веб-сервис".
|
|||
23
Остап Сулейманович
20.07.15
✎
11:14
|
(21) У тебя 1С версии 8.3.5.1186, которая установлена локально имеется?
|
|||
24
Vladal
20.07.15
✎
11:15
|
(23) локально только 8.3.3.721. Других нет и процедура установки ПО забюрократизирована.
|
|||
25
Лефмихалыч
20.07.15
✎
11:16
|
(21) в (5) ты не олю пользуешь
|
|||
26
Остап Сулейманович
20.07.15
✎
11:16
|
(24) Забудь за Аппликешн. Программно пробиться на "ту" базу возможно только через ВЕБ-сервис.
|
|||
27
Vladal
20.07.15
✎
11:17
|
(22) Так СОАП в (5) я и использую? Или нет?
Прокси = Новый WSпрокси(ВебСервис,"http://Адрес","ws","wsSoap"); (25) Так точно! Поэтому результат того эксперимена я и не выкладываю - беру то,что дали разрабы. |
|||
28
Лефмихалыч
20.07.15
✎
11:17
|
(24) кстати, да, платформа там, где ты коннектиться по оле будешь, должна совпадать с платформой там, куда ты коннектиться собрался. А нет ножек, нет варенья.
|
|||
29
Лефмихалыч
20.07.15
✎
11:17
|
(27) >Так СОАП в (5) я и использую? Или нет?
мля! с той стороны его нет! |
|||
30
Vladal
20.07.15
✎
11:17
|
(28) Это я в курсе, потому как сервер скажет "релиз не тот, дай мне тот релиз, что у меня". Так что только веб-сервис....
|
|||
31
Остап Сулейманович
20.07.15
✎
11:22
|
(30) Разбирайся с авторизацией.
1. Из (5) Прокси.Пользователь="Логин"; Прокси.Пароль="Пароль"; Действительно используется имя пользователя "Логин" с паролем "Пароль"? |
|||
32
Лефмихалыч
20.07.15
✎
11:22
|
вот так пробовал?
|
|||
33
Vladal
20.07.15
✎
11:23
|
Да. с вебморды этот логин и пароль подходят
|
|||
34
Лефмихалыч
20.07.15
✎
11:23
|
там, с ковычкам подковырка, но я в тебя верю
|
|||
35
Vladal
20.07.15
✎
11:23
|
(34) Сейчас попробую.
|
|||
36
Остап Сулейманович
20.07.15
✎
11:33
|
Вообще в (5) какая-то лабуда написана.
Вот классика : Функция ПолучитьПрокси(ПользовательЦБ, Пароль, ИмяСервиса, ТекстОшибки = "") Экспорт ТекстОшибки = ""; Адрес = "http://"+АдресЦентральнойБазы + "/ws/ws1.1cws?sdl"; Попытка Определения = Новый WSОпределения(Адрес, ПользовательЦБ, Пароль, 60); Исключение // Сообщим пользователю о том, что не получилось получить определение сервиса ТекстОшибки = НСтр("ru = 'Не удалось установить соединение с сервером. Повторите попытку позже.'", "ru"); Возврат Неопределено; КонецПопытки; URI = "http://LocalHost/" + ИмяСервиса; //Можно вообще любую лабуду написать Прокси = Новый WSПрокси(Определения, URI, ИмяСервиса, ИмяСервиса + "Soap"); Прокси.Пользователь = ПользовательЦБ; Прокси.Пароль = Пароль; Возврат Прокси; КонецФункции |
|||
37
EugeniaK
20.07.15
✎
11:39
|
Не надо ничего добавлять.
Есть специально предназначенный для этого REST-интерфейс, который позволяет делать все, что угодно. |
|||
38
Vladal
20.07.15
✎
11:41
|
(37) Есть пример подключения?
|
|||
39
Остап Сулейманович
20.07.15
✎
11:43
|
Он есть, если его специально опубликовали.
|
|||
40
Vladal
20.07.15
✎
12:58
|
Получилось!
Определение = Новый WSопределения("http://Адрес/ws.1cws?wsdl",Пользователь,Пароль,30); Прокси = Новый WSпрокси(Определение,"http://Адрес","ws","wsSoap"); Прокси.Пользователь = Пользоатель; Прокси.Пароль = Пароль; Хотя... В сравнении с утренним выс... кодом в (5) абсолютно идентично. |
|||
41
Vladal
20.07.15
✎
14:50
|
Там, похоже. свои внутренние ошщибки были - сейчас генерится
HTTP Error 500.0 - Internal Server Error |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |