Заказы на доработку 1С (сервис удаленной работы)

Хранилище

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

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Работа с "Интайм" по API          
DrLivsi Подменю пользователя
сообщение 23.10.17, 10:16
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Всем привет!
Нужна помощь в подключении к апи Интайм. Раньше с таким не сталкивался, не могу понять как выполнить подключение. Или может у кого-то уже есть обработка.
Пока меня хватило на вот такой код:
Процедура Подключение(Форма) Экспорт
Попытка
        WSDLОпределение = Новый WSОпределения("http://esb.intime.ua:8080/services/intime_api_3.0?wsdl");
        WSСервис = WSDLОпределение.Сервисы[0];
        прокси = Новый WSПрокси(WSDLОпределение, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);
    Исключение
        WSDLОпределение = Неопределено;
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

но что дальше с этим делать не пойму.
Конфа самописная 8.3.8.2088 обычные формы. Буду благодарен за любую помощь.

podcast Подменю пользователя
сообщение 23.10.17, 10:28
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 306
Спасибо сказали: 74 раз
Рейтинг: 0

DrLivsi @ Сегодня, 11:16 * ,
Есть конфа CAS вроде называется там Упр.формы, должно помочь, или обработку новой почты, но там сильно накручено.

Bernet Подменю пользователя
сообщение 23.10.17, 10:42
Сообщение #3

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 319 раз
Рейтинг: 0

DrLivsi @ Сегодня, 11:16 * ,
Вот вроде как пример бесплатный даже есть (сам лично не проверял) [необходимо зарегистрироваться для просмотра ссылки]

Сообщение отредактировал Bernet - 23.10.17, 10:49


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

DrLivsi Подменю пользователя
сообщение 23.10.17, 11:02
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Bernet @ Сегодня, 11:42 * ,

Я ее видел, но она для версии API 2.0 а интайм уже работает с API 3.0

На сайте есть описание функций:
[необходимо зарегистрироваться для просмотра ссылки]

но как к ним "достучатся"?

Bernet Подменю пользователя
сообщение 23.10.17, 11:27
Сообщение #5

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 319 раз
Рейтинг: 0

DrLivsi @ Сегодня, 12:02 * ,
Ключ вы получили? Ну в принципе я ничего сложного не вижу, подключаетесь к их веб-сервису и дальше юзаете те функции, которые вам нужны. В документации они параметры описали. Или у вас ещё на этапе создания WSОпределения ругается?


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

DrLivsi Подменю пользователя
сообщение 23.10.17, 12:05
Сообщение #6

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Bernet @ Сегодня, 12:27 * ,
Ключ получил, WSОпределение создает нормально, дальше ругается на первой строке, может я тип не тот указываю

AuthData = Прокси.ФабрикаXDTO.Тип("http://inr.intime.ua/in-time/integration30","AuthData");
ЭлементЗапросаAuthData = WSDLОпределение.ФабрикаXDTO.Создать(AuthData);
            
ЭлементЗапросаAuthData.KEY = АПИКлюч;

DrLivsi Подменю пользователя
сообщение 23.10.17, 14:25
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Вот что сейчас получилось:

Попытка
        Форма.WSDLОпределение = Новый WSОпределения("http://esb.intime.ua:8080/services/intime_api_3.0?wsdl");
        WSСервис = Форма.WSDLОпределение.Сервисы[0];
        Форма.прокси = Новый WSПрокси(Форма.WSDLОпределение, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);
    Исключение
        Форма.WSDLОпределение = Неопределено;
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Если Форма.WSDLОпределение = Неопределено Тогда
        Сообщить("Не удалось подключится");
         Возврат;
    КонецЕсли;
    
    
    WSОперации = WSСервис.ТочкиПодключения[0].Интерфейс.Операции;
        
    ОперацияПолучитьСтраны = WSОперации.Получить("get_country_by_id");
    
    ДанныеXDTO = Форма.WSDLОпределение.ФабрикаXDTO.Создать(ОперацияПолучитьСтраны.Параметры[0].Тип.Свойства.Получить("api_key").Тип, АПИКлюч);
    
    ОтветОтСервера = Форма.прокси.get_country_by_id(ДанныеXDTO); // Вызываем операцию


При выполнении последней строки вылетает ошибка:

При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: DS Code: INCOMPATIBLE_PARAMETERS_ERROR
Nested Exception:-
javax.xml.stream.XMLStreamException: DS Fault Message: Error in 'CallQuery.extractParams', cannot find parameter with type:query-param name:api_key
DS Code: INCOMPATIBLE_PARAMETERS_ERROR
Source Data Service:-
Name: intime_api_3.0
Location: /intime_api_3.0.dbs
Description: N/A
Default Namespace: [необходимо зарегистрироваться для просмотра ссылки]
Current Request Name: get_country_by_id
Current Params: {}

Код ошибки: INCOMPATIBLE_PARAMETERS_ERROR
Техническая информация:
<detail xmlns:axis2ns3335="http://ws.wso2.org/dataservice" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<axis2ns3334:DataServiceFault xmlns:axis2ns3334="http://ws.wso2.org/dataservice">
<axis2ns3334:current_params>{}</axis2ns3334:current_params>
<axis2ns3334:source_data_service>
<axis2ns3334:data_service_name>intime_api_3.0</axis2ns3334:data_service_name>
<axis2ns3334:description>N/A</axis2ns3334:description>
<axis2ns3334:location>/intime_api_3.0.dbs</axis2ns3334:location>
<axis2ns3334:default_namespace>http://ws.wso2.org/dataservice</axis2ns3334:default_namespace>
</axis2ns3334:source_data_service>
<axis2ns3334:ds_code>INCOMPATIBLE_PARAMETERS_ERROR</axis2ns3334:ds_code>
<axis2ns3334:current_request_name>get_country_by_id</axis2ns3334:current_request_name>
</axis2ns3334:DataServiceFault>
</detail>

DrLivsi Подменю пользователя
сообщение 24.10.17, 8:56
Сообщение #8

Завсегдатай
****
Группа: Пользователи
Сообщений: 148
Из: Киев
Спасибо сказали: 19 раз
Рейтинг: 0

Решил. Вот может кому-то пригодится

Попытка
        Форма.WSDLОпределение = Новый WSОпределения("http://esb.intime.ua:8080/services/intime_api_3.0?wsdl");
        WSСервис = Форма.WSDLОпределение.Сервисы[0];
        Форма.прокси = Новый WSПрокси(Форма.WSDLОпределение, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);
    Исключение
        Форма.WSDLОпределение = Неопределено;
        Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Если Форма.WSDLОпределение = Неопределено Тогда
        Сообщить("Не удалось подключится");
         Возврат;
    КонецЕсли;
    
    // Получаем все операци
    WSОперации = WSСервис.ТочкиПодключения[0].Интерфейс.Операции;
    
    //Получаем тип параметра, который передается в метод G
    Форма.WSDLОпределение.ФабрикаXDTO.Пакеты.Получить("http://ws.wso2.org/dataservice").Получить("get_country_by_id");
    
    //Создаем параметр на основе типа и заполняем значение параметра api_key
    WSПараметр       = Форма.Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
    WSПараметр.api_key    = АПИКлюч;
    WSПараметр.id    = "";
    
    //Вызываем метод веб-сервиса, записываем результат в переменную list_of_countries
    list_of_countries = Форма.Прокси.get_country_by_id(WSПараметр);
    
    Для Каждого Country Из list_of_countries.Entry_get_country_by_id Цикл
        Сообщить(Country.code+" "+Country.name_en+" "+Country.name_ru);
    КонецЦикла;


DrLivsi @ Сегодня, 9:48 * ,

Небольшая ошибка в строке
//Получаем тип параметра, который передается в метод G
    Форма.WSDLОпределение.ФабрикаXDTO.Пакеты.Получить("http://ws.wso2.org/dataservice").Получить("get_country_by_id");

нужно вот так:
//Получаем тип параметра, который передается в метод G
    ТипWSПараметра = Форма.WSDLОпределение.ФабрикаXDTO.Пакеты.Получить("http://ws.wso2.org/dataservice").Получить("get_country_by_id");

Спасибо сказали: Alikk, Bernet, Flexy,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.04.24, 5:57
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!