Вход | Регистрация



Простой пример интеграции 1С с API для начинающего

Простой пример интеграции 1С с API для начинающего
Я
   ac13
 
18.09.18 - 17:08
У кого-нибудь есть или кто-нибудь знает где можно посмотреть простые наглядные примеры интеграции 1С с API, чтобы понять логику как это работает для начинающего или для дебила.
 
 
   Вафель
 
1 - 18.09.18 - 17:12
какое именно апи? рест апи? или соап?
   Dmitry1c
 
2 - 18.09.18 - 17:13
Срочно дайте человеку какой-нибудь API
   ac13
 
3 - 18.09.18 - 17:15
например soap
   s03
 
4 - 18.09.18 - 17:15
(0) API - Application Programming Interface, программный интерфейс приложения. Поэтому для каждого приложения будет свой API. Тебе пример интеграции 1С и чего именно надо?
   ac13
 
5 - 18.09.18 - 17:18
(4) Да, я понимаю что у каждого приложения свой API. Мне нужен пример чего угодно, где можно увидеть и понять как это работает и с чего начинать.
   Asmody
 
6 - 18.09.18 - 17:18
Вот тут написано про всякие API http://v8.1c.ru/metod/books/book.jsp?id=288
   ac13
 
7 - 18.09.18 - 17:20
(6) спасибо!
   Вафель
 
8 - 18.09.18 - 17:22
хочешь потренироваться - пиши клиента для реддит
https://www.reddit.com/dev/api/
   ac13
 
9 - 18.09.18 - 17:32
(8) спасибо) теперь нужно понять с чего начинать в 1с
   PR
 
10 - 18.09.18 - 17:38
 
 Рекламное место пустует
   Cyberhawk
 
11 - 18.09.18 - 17:49
Начни с онлайн-сервиса "морфер" и использования его АПИ в 1С
   Cyberhawk
 
12 - 18.09.18 - 17:54
Хотя эти всякие WS могут показаться сложными. Лучше начни с какого-нибудь АПИ на хттп-сервисах. Например, Манго.
   d4rkmesa
 
13 - 18.09.18 - 20:04
(0) Классический пример
https://habr.com/post/148658/
Ну или можно взять сервис проверки контрагента по ИНН/КПП.
   d4rkmesa
 
14 - 18.09.18 - 20:06
Еще с геокодером Яндекса побаловаться интересно:
https://tech.yandex.ru/maps/geocoder/
   DES
 
15 - 18.09.18 - 20:43
(14) а есть чего нибудь примерного в 1с8  по этой темке?
   kumena
 
16 - 18.09.18 - 20:58
(15) С каких то движков 8.3 (а может и раньше, я не следил) в структуре конфигурации появились http сервисы.
Можно сделать базу с вебсервисом, который будет допустим принимать текст запроса и в xml результат возрвращать. Опубликуй её на вебсервере вот тебе и вебсервис, который будет отвечать, api правда будет целиком на 1с, но нам же надо чтобы все было на 1с.
   VS-1976
 
17 - 18.09.18 - 23:53
(16) Это и в 8.1 было
А вообще полезная штука Яндекс диск, попробуй реализовать, там не сложно, единственно нужно генерировать ключ + права дать...
   Чайник1983
 
18 - 19.09.18 - 03:19
Очень хорошая тема тоже интересно)
   ac13
 
19 - 19.09.18 - 08:52
(10), (11), (12) спасибо
(13) отлично, спасибо))
(14) благодарю
попробую еще книженцию (6) по 1с приобрести
кто-нибудь учился по учебникам, есть в них толк?
   bolobol
 
20 - 19.09.18 - 09:19
(19) Я учился. Хорошо превращают неосознанное незнание в осознанное незнание. Не более того.
   ac13
 
21 - 19.09.18 - 09:43
(20) вот и мне изучение теории всегда казалось сомнительным занятием. эффективней всего разбирать конкретные решенные примеры на практике, но не всегда получается найти то, что нужно или более менее доступно для моего понимания
   yavasya
 
22 - 19.09.18 - 10:03
(21) делай интеграцию HTTP . интеграция по api что в ней нового ? выплюнет набор текстовых полей которые нужно разобрать
   yavasya
 
23 - 19.09.18 - 10:04
   kumena
 
24 - 19.09.18 - 10:05
> Это и в 8.1 было 

http появилось только в 8.3, и даже не с начала 8.3
   yavasya
 
25 - 19.09.18 - 10:07
(16) так оно может стучаться к веб сайтам, можно с любого веб сайта стучаться к 1С и получать rest ответ и распознавать как массив.
   ac13
 
26 - 19.09.18 - 10:10
(23) спасибо за ссылку
   yavasya
 
27 - 19.09.18 - 10:25
Функция ПолучитьБанковскиеВыпискиПолучитьБанковскиеВыписки(Запрос)
    
    //Ответ = Новый HTTPСервисОтвет(200);

    //Ответ.УстановитьТелоИзСтроки("Hello");

    //Возврат Ответ;

    УстановитьПривилегированныйРежим(Истина);
    
    date1           = Запрос.ПараметрыURL["date1"];
    date2           = Запрос.ПараметрыURL["date2"];
    guid            = Запрос.ПараметрыURL["guid"];
    inn             = Запрос.ПараметрыURL["inn"];
    kpp             = Запрос.ПараметрыURL["kpp"];
    NameProcedure   = Запрос.ПараметрыURL["NameProcedure"];
    NumberAccount   = Запрос.ПараметрыURL["NumberAccount"]; 
    UIDaccount      = Запрос.ПараметрыURL["UIDaccount"]; 


    Текст64 = XMLСтрока(Новый ХранилищеЗначения(ТаблицаЗначений, Новый СжатиеДанных(9)));
    
    HTTPОтвет = Новый HTTPСервисОтвет(200);
    
    HTTPОтвет.Заголовки.Вставить("Content-Type","text/html; charset=utf-8");
    HTTPОтвет.УстановитьТелоИзСтроки(Текст64);
    
    Возврат HTTPОтвет;

Это база куда подключаемся

Откуда подключаемся

    ДатаНачалаСтрокой = Преобразовать_в_формат_выгрузки(ДатаНачала); 
    
    ДатаОкончанияСтрокой = Преобразовать_в_формат_выгрузки(ДатаОкончания); 
    
    АдресСтраницы = "имя базы/hs/bank/"+ДатаНачалаСтрокой+"/"+ ДатаОкончанияСтрокой + "/" + Организация.УникальныйИдентификатор()
    + "/" + Организация.ИНН + "/" + Организация.КПП + "/" + ИмяДокумента + "/" + РасчетныйСчет.НомерСчета + "/" + РасчетныйСчет.УникальныйИдентификатор();
    
    Хост = "имя хоста";        
    
    HTTPСоединение  = новый HTTPСоединение(Хост);
    
    HTTPЗапрос  = Новый HTTPЗапрос(АдресСтраницы);        
    HTTPЗапрос.Заголовки.Вставить("Authorization", "Basic " + ЗакодироватьЛогинПароль("имя пользователя в базе подключения", "пароль")); 
    
    Результат =  HTTPСоединение.Получить(HTTPЗапрос);
    
    КодСостояния = "код состояния - " + Результат.КодСостояния;
    ОтветHTTPСтрока = Результат.ПолучитьТелоКакСтроку();
    
    ВозвращаемоеЗначение = XMLЗначение(Тип("ХранилищеЗначения"),ОтветHTTPСтрока);
    
    Возврат ВозвращаемоеЗначение.Получить();    

Функция ЗакодироватьЛогинПароль(Логин, Пароль)
    
    ВременныйФайл = ПолучитьИмяВременногоФайла();
    
    Запись = Новый ЗаписьТекста(ВременныйФайл);
    Запись.Записать(Логин + ":" + Пароль);
    Запись.Закрыть();
    
    ДвДанные = Новый ДвоичныеДанные(ВременныйФайл);
    Результат = Base64Строка(ДвДанные);
    
    УдалитьФайлы(ВременныйФайл);
    
    Возврат Сред(Результат, 5);    
    
КонецФункции
   yavasya
 
28 - 19.09.18 - 10:27
получил ТЗ закодировал в строку и обратно раскодировал в ТЗ
   1c-kind
 
29 - 19.09.18 - 10:45
(6) Cпасибо за ссылку! Заказал.
   d4rkmesa
 
30 - 19.09.18 - 10:58
(15) Есть несложный кусок кода, что-то посложнее не нашел сходу. Под 8.2, на 8.3 можно без WinHttp, вроде.

WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");

        WinHttp.Option(2, "utf-8");
        WinHttp.Open("POST", "https://geocode-maps.yandex.ru/1.x/",0);
        WinHttp.setRequestHeader("Content-Language", "ru");
        WinHttp.setRequestHeader("Content-Charset", "utf-8");
        WinHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8");
        ПараметрыПОСТ = "geocode=" + КодированнаяСтрокаАдреса + "&key=" + ЯндексAPI;
        
        ИспользоватьПрокси = ПараметрыСеанса.новаТекущийПользователь.ИспользоватьПрокси;
        Если ИспользоватьПрокси Тогда
            WinHttp.SetProxy(2, ПараметрыСеанса.новаТекущийПользователь.ПроксиАдрес);
            WinHttp.SetCredentials(ПараметрыСеанса.новаТекущийПользователь.ПроксиПользователь, ПараметрыСеанса.новаТекущийПользователь.ПроксиПароль, 1);
        КонецЕсли;
        
        WinHttp.Send(ПараметрыПОСТ);
        Текст = Новый ТекстовыйДокумент;
        Текст.УстановитьТипФайла(КодировкаТекста.UTF8);
        Текст.УстановитьТекст(WinHttp.ResponseText());
        Текст.Записать(КаталогВременныхФайлов()+ВременныйФайл);
   ac13
 
31 - 19.09.18 - 11:08
(27) (30) спасибо


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует