Имя: Пароль:
1C
1С v8
Чтение и запись данных из удаленной базы 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&quot;);

(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
вот так пробовал?

База = Новый COMОбъект("v83c.Application");
База.Connect(ws="https://adres.kuda.ti/brouserom_konnectishsya&quot;);
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&quot;);
Прокси.Пользователь = Пользоатель;
Прокси.Пароль = Пароль;

Хотя... В сравнении с утренним выс... кодом в (5) абсолютно идентично.
41 Vladal
 
20.07.15
14:50
Там, похоже. свои внутренние ошщибки были - сейчас генерится
HTTP Error 500.0 - Internal Server Error