SOAP-сервисы с предварительной Cookie-аутентификацией

Публикация № 529125

Разработка - Системная интеграция - Интеграция с WEB

soap веб-сервисы аутентификация cookie

16
Платформа 1С не позволяет использовать cookie при работе со статичной WS-ссылкой или WS-прокси. Вследствие этого работа со многими веб-сервисами крупных поставщиков (например, DHL) напрямую невозможна.

Рассмотрим постановку задачи и её решение.

Задача:

Есть soap-сервис крупного поставщика DHL, построенный на ASP.NET. При обращении к сервису веб-сервер поставщика производит 302-редирект на страницу аутентификации:

После ввода логина и пароля открывается wsdl-описание.

Требуется организовать работу с методами данного веб-сервиса из кода 1С.

Типовые объекты WSОпределение и WSПрокси с данным веб-сервисом работать не могут, поскольку не имеют возможности указания произвольных заголовков HTTP-запроса для передачи значения cookie-аутентификации.

Решение:

План таков:

1. Получим страницу аутентификации GET-запросом и сохраним предварительно устанавливаемое в cookie случайное значение. Это значение впоследствии используется для идентификации сеанса.

2. POST-запросом проведём отправку данных формы аутентификации. В ответе сервера получим cookie-аутентификации.

3. С методами веб-сервиса будем работать с помощью POST-запросов, устанавливая полученные cookie.

4. Чтобы упростить сборку требуемых для методов сервиса soap-запросов, воспользуемся XDTO-описанием параметров и результатов методов, полученным от поставщика.

Пример SOAP-запроса и ответа:

Запрос:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
<soap:Body> 
<GetPtsList xmlns="http://tempuri.org/"> 
<auth> 
<Login>string</Login> 
<Password>string</Password> 
</auth> 
<startDate>dateTime</startDate> 
<endDate>dateTime</endDate> 
</GetPtsList> 
</soap:Body> 
</soap:Envelope>

Ответ:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetPtsListResponse xmlns="http://tempuri.org/">
      <GetPtsListResult>
        <PtsItemInfo>
          <DealerReceiveDate>dateTime</DealerReceiveDate>
          <PickupDate>dateTime</PickupDate>
          <ReferenceNumber>string</ReferenceNumber>
          <RegistrationDate>dateTime</RegistrationDate>
          <PtsNumber>string</PtsNumber>
          <VinNumber>string</VinNumber>
          <DhlStation>string</DhlStation>
          <DestinationDhlStation>string</DestinationDhlStation>
          <Dealer>string</Dealer>
          <Model>string</Model>
          <Gtd>string</Gtd>
          <Brand>string</Brand>
          <PtsStatus>string</PtsStatus>
          <BrandCode>string</BrandCode>
          <DealerCode>string</DealerCode>
          <Awb>string</Awb>
        </PtsItemInfo>
      </GetPtsListResult>
    </GetPtsListResponse>
  </soap:Body>
</soap:Envelope>

Для удобной генерации XML запроса и ответа создадим XDTO-пакет с описанием объектов GetPtsListauthGetPtsListResponseGetPtsListResultPtsItemInfo с пространством имён http://tempuri.org/ .

Реализация:

1. Получение страницы аутентификации GET-запросом и отправка данных формы (username, password):

Функция АвторизацияНаВебСервере() Экспорт
    
    СтруктураСоединение = Новый Структура("Результат, HTTPСоединение, Заголовки, НастройкиПодключения");
    СтруктураСоединение.Результат = Ложь;
  
    // из регистра сведений получаем сервер, url, логин, пароль для подключения
    НастройкиПодключения = ПолучитьНастройкиПодключения();
    
    Если НастройкиПодключения.Количество()=0 Тогда
        Возврат СтруктураСоединение;
    КонецЕсли;
    
    НастройкаПодключения = НастройкиПодключения[0];
    
    АдресСервера = СокрЛП(НастройкаПодключения.ДопПараметр1);
    АдресАвторизации = СокрЛП(НастройкаПодключения.ДопПараметр2);    
    
    UserName = СокрЛП(НастройкаПодключения.Пользователь);
    Password = СокрЛП(НастройкаПодключения.Пароль);
    
    // данные авторизации - значения параметров формы авторизации, их можно подсмотреть с помощью, например, Advanced REST client
    ДанныеАвторизации = "&UserName="+UserName+"&Password="+Password+"&RememberMe=true&CustomAuthKey=";
    
    Попытка
        Соединение = Новый HTTPСоединение(АдресСервера);
        
        // получим страницу GET-запросом, в Заголовки0 вернутся предварительные cookie
        Заголовки0 = Новый Соответствие;
        Результат0 = ВыполнитьGETЗапрос(Соединение, АдресАвторизации, Заголовки0);    
        
        Если Результат0.Ответ.КодСостояния<>200 Тогда
            Возврат СтруктураСоединение;
        КонецЕсли;
        
        // отправим POST-запросом данные формы для аутентификации, в Заголовки1 вернутся новые cookie, 
        // уже со значением успешной аутентификации. Эти новые cookie мы сохраним и будем использовать 
        // при выполнении методов сервиса
        Заголовки1 = Новый Соответствие;
        Заголовки1.Вставить("Cookie",Результат0.Ответ.Заголовки["Set-Cookie"]);    
        Заголовки1.Вставить("Content-Type", "application/x-www-form-urlencoded");
        
        Результат1 = ВыполнитьPOSTЗапрос(Соединение,АдресАвторизации,Заголовки1,ДанныеАвторизации);
        
        Если Результат1.Ответ.КодСостояния<>302  Тогда
            Возврат СтруктураСоединение;
        КонецЕсли;
        СтруктураСоединение.HTTPСоединение = Соединение;
        СтруктураСоединение.Заголовки = Новый Соответствие;
        
        // в Результат1.Ответ.Заголовки["Set-Cookie"] находится заветный ключ
        СтруктураСоединение.Заголовки.Вставить("Cookie",Результат1.Ответ.Заголовки["Set-Cookie"]);
        СтруктураСоединение.Результат = Истина;
        СтруктураСоединение.НастройкиПодключения = НастройкаПодключения;
        
    Исключение
        ЗаписьЖурналаРегистрации("ИнтеграцияСDHL.АвторизацияНаВебСервере",
                                УровеньЖурналаРегистрации.Ошибка,
                                ,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    КонецПопытки;    
    
    Возврат СтруктураСоединение;
    
КонецФункции

2. Сборка soap-запроса, его выполнение посредством POST-запроса и получение результата в XDTO:

Функция GetMethodName(СтруктураПараметров) Экспорт
    
    ОбъектXDTO = Неопределено;
    
    СтруктураСоединение = АвторизацияНаВебСервере();
    Если НЕ СтруктураСоединение.Результат Тогда
        Возврат ОбъектXDTO;
    КонецЕсли;
    
    ПутьКМетодуСервиса = "urlpart1/Service.asmx?op=GetMethodName";
   
    // предварительно в метаданных опишем XDTO-пакеты для параметров сервиса и для возвращаемых значений.
    ТипGetPtsList = ФабрикаXDTO.Тип("http://tempuri.org/","GetPtsList");
    Типauth = ФабрикаXDTO.Тип("http://tempuri.org/","auth");
    
    ПараметрXDTO = ФабрикаXDTO.Создать(ТипGetPtsList);
    ПараметрXDTO.startDate = СтруктураПараметров.startDate;
    ПараметрXDTO.endDate = СтруктураПараметров.endDate;
    Параметрauth = ФабрикаXDTO.Создать(Типauth);
    Параметрauth.Login = СтруктураСоединение.НастройкиПодключения.Пользователь;
    Параметрauth.Password = СтруктураСоединение.НастройкиПодключения.Пароль;
    ПараметрXDTO.auth = Параметрauth;
    
    Запись = Новый ЗаписьXML;
    Запись.УстановитьСтроку();
    
    // генерируем XML для параметров метода сервиса
    ФабрикаXDTO.ЗаписатьXML(Запись,ПараметрXDTO);
    
    СтрXML = Запись.Закрыть();

    // для указания нужных пространств имён в xml-запросе и ответе применена быстрая и грубая замена подстрок
    СтрXML = СтрЗаменить(СтрXML," xmlns:xs=""http://www.w3.org/2001/XMLSchema"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance""","");
    
    SOAPЗапрос = "<?xml version=""1.0"" encoding=""utf-8""?>
                |<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
                |  <soap:Body>"
                +СтрXML+
                "</soap:Body>
                |</soap:Envelope>";
                
    ФайлЗапроса = ПолучитьИмяВременногоФайла();
    ТекстовыйФайл = Новый ТекстовыйДокумент;
    ТекстовыйФайл.УстановитьТекст(SOAPЗапрос);
    ТекстовыйФайл.Записать(ФайлЗапроса,КодировкаТекста.ANSI);

    ФайлРезультата = ПолучитьИмяВременногоФайла();
    
    ЗаголовокНТТР = Новый Соответствие;
    ЗаголовокНТТР.Вставить("Cookie",СтруктураСоединение.Заголовки["Cookie"]);    
    
    ФайлОтправки = Новый Файл(ФайлЗапроса);
    РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());

    ЗаголовокНТТР.Вставить("Content-Type", "text/xml; charset=utf-8");
    ЗаголовокНТТР.Вставить("Content-Lenght", РазмерФайлаОтправки);

    СтруктураСоединение.HTTPСоединение.ОтправитьДляОбработки(ФайлЗапроса,ПутьКМетодуСервиса,ФайлРезультата,ЗаголовокНТТР);
    
    // Получаем ответ в виде строки

    ТекстовыйФайлОтвет = Новый ТекстовыйДокумент;
    ТекстовыйФайлОтвет.Прочитать(ФайлРезультата,КодировкаТекста.UTF8);
    СтрокаРезультат = ТекстовыйФайлОтвет.ПолучитьТекст();

    // постобработка xml:
    СтрокаРезультат = СтрЗаменить(СтрокаРезультат,"<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema""><soap:Body>","");
    СтрокаРезультат = СтрЗаменить(СтрокаРезультат,"</soap:Body></soap:Envelope>","");
    СтрокаРезультат = СтрЗаменить(СтрокаРезультат, "xmlns=""http://tempuri.org/""","xmlns=""http://tempuri.org/"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xs=""http://www.w3.org/2001/XMLSchema""");
    
    Попытка
        ТипGetPtsListResponse = ФабрикаXDTO.Тип("http://tempuri.org/","GetPtsListResponse");

        Чтение = Новый ЧтениеXML;
        Чтение.УстановитьСтроку(СтрокаРезультат);
        ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(Чтение,ТипGetPtsListResponse);
    Исключение
        ЗаписьЖурналаРегистрации("GetMethodName",
                                УровеньЖурналаРегистрации.Ошибка,
                                ,,ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));    
    КонецПопытки;
    
    // уборка
    Попытка
        УдалитьФайлы(ФайлЗапроса);
        УдалитьФайлы(ФайлРезультата);
    Исключение
        
    КонецПопытки;
    
    Возврат ОбъектXDTO;
    
КонецФункции

Реализация функция GET-запроса и POST-запроса:

// Выполняет прозвольный POST-запрос
Функция ВыполнитьPOSTЗапрос(Соединение, АдресРесурса, ЗаголовкиЗапроса, ДанныеЗапроса) Экспорт
    
    СтруктураРезультат = Новый Структура;

    Запрос = Новый HTTPЗапрос(АдресРесурса,ЗаголовкиЗапроса); 

    Запрос.УстановитьТелоИзСтроки(ДанныеЗапроса); 
    Ответ = Соединение.ОтправитьДляОбработки(Запрос); 
    ОтветВВидеСтроки = Ответ.ПолучитьТелоКакСтроку("UTF-8"); 

    СтруктураРезультат.Вставить("Ответ",Ответ);
    СтруктураРезультат.Вставить("ТекстОтвета",ОтветВВидеСтроки);
    
    Возврат СтруктураРезультат;

КонецФункции

// Выполняет произвольный GET-запрос
Функция ВыполнитьGETЗапрос(Соединение, АдресРесурса, ЗаголовкиЗапроса) Экспорт
    
    СтруктураРезультат = Новый Структура;
    
    ИмяВыходногоФайлаGET = ПолучитьИмяВременногоФайла("txt");
    HTTPЗапросGET = Новый HTTPЗапрос(АдресРесурса,ЗаголовкиЗапроса);
    HTTPОтветGET = Соединение.Получить(HTTPЗапросGET,ИмяВыходногоФайлаGET);
    
    КодСостоянияGET = HTTPОтветGET.КодСостояния;
    ТекстОтветаGET = HTTPОтветGET.ПолучитьТелоКакСтроку();    
    
    ЧтениеФайла = Новый ТекстовыйДокумент;
    ЧтениеФайла.Прочитать(ИмяВыходногоФайлаGET);
    
    ТекстОтвета = ЧтениеФайла.ПолучитьТекст();
    
    СтруктураРезультат.Вставить("Ответ",HTTPОтветGET);
    СтруктураРезультат.Вставить("ТекстОтвета",ТекстОтвета);
    
    Попытка
        УдалитьФайлы(ИмяВыходногоФайлаGET);
    Исключение
        
    КонецПопытки;
    
    Возврат СтруктураРезультат;

КонецФункции

В результате получилось использовать методы soap-сервисов поставщика с предварительной аутентфикацией посредством cookie.

Скорее всего, можно сделать более красивой сборку текста xml-запроса, но это уже в следующей статье!

16

Специальные предложения

Избранное Подписка Сортировка: Древо
В этой теме еще нет сообщений.
Оставьте свое сообщение

См. также

Немного о интеграции с CRM AMO 3

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Немного информации о том, как настроить интеграцию с CRM AMO. Пример функций для подключения к АМО и обновления заказа. Пример на основе API авторизации.

15.11.2019    429    xxxAndricxxx    6       

Ещё немного о ИНН и сервисе DaData 22

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Об использовании сервиса dadata и немного информации о возможностях получать данные по ИНН. Возможно, кому-то будет полезным.

14.11.2019    1505    xxxAndricxxx    17       

Вариант реализации клиента SOAP на примере получения остатков из MERLION 3

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB

В статье приведу пример клиента к сервису SOAP, функции которого принимают несколько значений типа строка или массив строк.

14.11.2019    421    malikov_pro    0       

Разбор любого JSON-объекта в соответствующую структуру 7

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Инструментарий разработчика WEB

Данная публикация предназначена разработчикам 1С, которым приходиться разбирать данные формата JSON. Выложенный пример кода создает объект типа Структура, полностью повторяющий структуру данных формата JSON.

13.11.2019    1141    user665435_al.windstorm    13       

Проверка reCAPTCHA от Google на стороне HTTP-Сервиса 9

Статья Программист Нет файла v8 Россия Бесплатно (free) WEB

Код проверяет переданный токен reCAPTCHA от Google при вызове HTTP-Сервиса. Таким образом проверяем, отправил ли данные на наш HTTP-Сервис робот или реальный пользователь.

06.11.2019    956    AVR    0       

Простой способ опубликовать базу 1C из дома в интернет, когда Ваш провайдер этого не обеспечивает (3G, 4G модем и т.п.) 51

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB Облачные сервисы, хостинг

Если у Вас возникла потребность опубликовать из дома во всемирную паутину базу 1С (например, для тестирования), в т.ч. интерфейс OData, HTTP или Web-сервисы, а интернет-провайдер (например, 3G Мегафон) не предоставляет возможности инициировать соединения извне, то в конце статьи Вы найдете простой, быстрый и условно-бесплатный способ это сделать.

14.10.2019    4025    uno-c    25       

Самый примитивный HTTP-сервис в мире 173

Статья Программист Нет файла v8 Бесплатно (free) WEB

Пошаговый пример создания простейшего HTTP-сервиса, который генерирует HTML-страницу для поиска товара, а также реализует асинхронное получение данных из базы.

12.09.2019    8088    YPermitin    26       

Свой веб интерфейс к 1С: побеждаем CORS на IIS, сохраняя авторизацию 57

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB Администрирование данных 1С

Если "веб морда" расположена не по тому же адресу, что и публикация 1С (что часто бывает, например, при разработке, публикация 1С на http://localhost/1c, а разрабатываемое веб-приложение на http://localhost:8080) или, например, мы заходим на веб приложение то по ip адресу, то по имени сервера, или просто веб сервер и сервер, на котором опубликована 1С - это разные сервера, то для большинства запросов от браузера к 1С срабатывает политика CORS, которая заключается в том, что браузер сначала посылает запрос OPTIONS, на который сервер должен ответить определенным образом, заголовками, содержащими разрешения, а потом уже (если разрешение есть), браузер посылает основной запрос. В случае, когда в публикации 1С (default.vrd) жестко прописан логин и пароль, разрулить ситуацию можно средствами 1С. В случае же, когда нужно сохранить авторизацию (или используется стандартный интерфейс odata), начинаются проблемы.

20.08.2019    3714    Fragster    7       

Вывод отчетов из Штрих-М Торговое предприятие 5 на кассовое ПО Кассир 5 через веб-сервис 3

Статья Системный администратор Программист Нет файла v8 1cv8.cf Розничная и сетевая торговля (FMCG) Россия УУ Windows Розничная торговля Бесплатно (free) WEB

Универсальный механизм вывода отчетов товароучетной системы Штрих-М Торговое предприятие в кассовое ПО Кассир 5 посредством веб-сервиса.

14.08.2019    1494    Van2507    1       

Совсем простой обмен HTTP, 2 функции 60

Статья Программист Нет файла v8 Бесплатно (free) WEB

Функция для вызова рест-сервиса и функция для разбора результата. Быстро, просто, универсально.

12.08.2019    4254    Yashazz    15       

Использование HTTP-сервиса для создания "фронтенда" HTML/CSS/jQuery. Продолжение 53

Статья Программист Расширение (cfe) v8 1cv8.cf Бесплатно (free) WEB

Получение изображений из информационной базы и отправка файлов через "фронт" на HTML/CSS/JS.

08.08.2019    3840    Sedaiko    1       

1Script.Web. Интернет-приложения на языке 1С 120

Статья Программист Нет файла v8 Бесплатно (free) WEB OneScript

Запросы рынка таковы, что любое современное клиент-серверное приложение должно иметь веб-интерфейс. Почему бы не писать такие приложения на языке 1С? Андрей Овсянкин расскажет о возможностях разработки веб-приложений на базе 1Script, рассмотрит перспективы этого направления и в качестве демонстрации покажет «боевое» веб-приложение на новом движке – кроссплатформенную консоль администрирования парка кластеров 1С.

20.05.2019    12714    Evil Beaver    32       

Неверные остатки на сайте битрикс 2

Статья Программист Нет файла v8 УТ11 Бесплатно (free) WEB

Исправление процедуры выгрузки остатков на сайт битрикс из УТ 11

25.04.2019    2231    distorshion    4       

Отправка файлов через SOAP. SOAP with attachments, MTOM 38

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB

В продолжение «своеобразной» поддержки 1С протокола SOAP, описанной в https://infostart.ru/public/965259/, опишу еще одну особенность. 1С не поддерживает возможность отправки файлов-вложений. Для решения этой проблемы пришлось самостоятельно писать формирование пакетов SOAP и разбор ответов сервера.

18.04.2019    3358    mysm    2       

HTML-клиент у конфигурации 1С 143

Статья Программист Нет файла v8 Бесплатно (free) WEB

Приветствую. В этой публикации опишу свой опыт создания html-клиента для конфигурации 1С с помощью http-сервисов. HTML-клиент в этом случае - это frontend (html + css+ js), который генерирует и выдает пользователю конфигурация + backend, который тоже реализован в этой же конфигурации.

17.04.2019    11791    Smaylukk    119       

Парсинг сайтов из 1С на примере ломбарды.рф с помощью XPATH для ДокументDOM 67

Статья Программист Нет файла v8 Бесплатно (free) WEB

На всякую хитрую гайку всегда найдется болт с резьбой (с)

01.04.2019    8100    starik-2005    33       

Логируй больше! 1С + UPD + GELF + Graylog 28

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Администрирование данных 1С WEB Разработка

Наличие производительной платформы управления логами - это жизненно важный элемент в ландшафте систем с высокой активностью. Рассмотрим один из подходов логирования активности систем на платформе 1С в Graylog.

26.02.2019    5873    Lars Ulrich    15       

Создание телеграм бота с гугл авторизацией, обратными вызовами и уведомлениями об обновлении через сервер-маршрутизатор 158

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Статья детально рассказывает обо всех аспектах настройки телеграм бота, работающего через сервер-маршрутизатор посредством обратных вызовов. Приведены примеры работы отправки/исправления сообщений, отправки файлов, работы с внутренними и встроенными запросами. Создание клавиатуры. Авторизация пользователей через gmail.

07.11.2018    18661    🅵🅾️🆇    40       

Мой опыт небольшого проекта с веб-сервисами (Часть 2) 20

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Продолжение публикации по веб-сервису для реализации странички с выводом данных.

05.10.2018    4683    alex_bitti    0       

Как запустить работу Google Maps в поле HTML формы 1С? 25

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

Как справиться с передачей события в поле HTML, если надо передать данные. Переход на новую версию Google Maps.

26.09.2018    6827    Green2    10       

Мой опыт небольшого проекта с веб-сервисами (Часть 1) 23

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Хочу поделиться своим опытом использования веб-сервисов на небольшом проекте, который в принципе расширяем до чего-нибудь более существенного.

08.08.2018    6891    alex_bitti    33       

Создание web-площадки на технологиях 1С, или как Водоканал сделал "Личный кабинет потребителя" 55

Статья Программист Нет файла v8 Энергетика и ЖКХ УУ Управление взаимоотношениями с клиентами (СRM) Дебиторская и кредиторская задолженность Бесплатно (free) WEB

Гончаров Максим делится опытом создания «Личного кабинета потребителя» на сайте водоканала. Он описывает архитектуру системы и объясняет, какую роль в ней играют технологии: «Битрикс», OData, веб-сервисы, «1С:БСП». Также в статье раскрываются возможности использования подсистемы «Анкетирование» в «1С:БСП» как конструктора документов.

25.06.2018    11336    maxx    31       

На что действительно способны HTTP-сервисы 176

Статья Программист Нет файла v8 Бесплатно (free) WEB

В статье я собираюсь не только рассказать вам про HTTP-сервисы 1С, но и показать много прикольных слайдов с картинками. Я думаю, будет весело, и вы найдете для себя что-то полезное.

14.06.2018    24995    dalgaso2010    45       

Подготовка тестового контура с помощью gitlab-ci и Яндекс.Диска 19

Статья Системный администратор Нет файла v8 1cv8.cf Бесплатно (free) WEB

В статье описан пример использования gitlab-ci для копирования продуктовой базы в Яндекс.Диск и разворачивания на другом контуре.

04.05.2018    7628    pallid    0       

Запуск Apache 2.4 с модулем 1С внутри Docker контейнера 87

Статья Системный администратор Программист Нет файла v8 Linux Бесплатно (free) Администрирование данных 1С WEB docker Apache

Про Apache и про Linux слышали, наверное, все. А вот про Docker пока нет, но он сильно набирает популярность последнее время и не зря. Поделюсь своим опытом и дам пошаговую инструкцию настройки веб-сервера Apache с модулем 1С внутри Docker контейнера на Linux хосте. При этом сам сервер 1С может находиться совсем на другой машине и на другой операционной системе. Это не важно, главное чтобы Apache смог достучаться до сервера 1С по TCP. В статье дам подробное пояснение по каждой используемой команде со ссылками на документацию по Docker, чтобы не создавалось ощущение непонятной магии. Также прилагаю git репозиторий с описанием всей конфигурации, можете попробовать развернуть у себя буквально за 10 минут.

04.04.2018    19095    petr.myazin    35       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) ч.6 2

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу. PHP-Скрипт публикации выборки данных сайта работающего на WordPress.

19.03.2018    6330    osivv    0       

Интеграция 1С УТ 11.2 и Битрикс. Настройка выгрузки старой цены для интернет-магазина 8

Статья Программист Нет файла v8 УТ11 Россия УУ Розничная торговля Бесплатно (free) WEB

Настройки позволят вытащить информацию о старой цене из 1С и передать её в CMS Битрикс.

24.01.2018    8374    Consultant_1C    2       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) ч.3 3

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы УУ Windows Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу. PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

09.01.2018    7184    osivv    2       

Готовим Soap для Web-сервисов. Рецепты 133

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) WEB

В статье описаны различные варианты обмена данными с web-сервисами по протоколу Soap, основанные на личном опыте.

28.12.2017    30011    987ww765    27       

УкрПочта - групповая проверка трек-номеров 9

Статья Программист Нет файла v8 Украина Бесплатно (free) WEB

Необходимо в течение относительно небольшого промежутка времени получить актуальное состояние по трек номеру в системе УкрПочта большого количества сообщений? Тогда во второй раз воспользуемся неофициальным парсингом страницы сервиса УкрПочты.

23.10.2017    6536    abavas    2       

1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом (не Битрикс) 5

Статья Программист Нет файла v8 1cv8.cf Автомобили, автосервисы Windows Бесплатно (free) WEB

Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.

16.10.2017    9110    osivv    3       

1С, oauth2, Google API и Google Merchant. Сбор данных и парсинг 18

Статья Программист Нет файла v8 УТ10 Россия Бесплатно (free) Практика программирования WEB

Всем привет. Стала задача, собрать данные с Google Merchants и внести их в 1С, для более детального анализа того, что сейчас показывается, что нет и какие проблемы при этом есть. Если кому это интересно, прошу под кат.

14.09.2017    13636    Mi11er    8       

Отслеживание почтовых сообщений парсингом страницы (УкрПочта) 5

Статья Программист Нет файла v8 Украина Бесплатно (free) WEB

Когда официальное API есть, но по факту не работает. Возвращаемся к старому способу - парсинг страниц.

17.07.2017    8161    abavas    2       

XPath и пространства имен на примере разбора файла ответа сервиса геокодирования Яндекс 35

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования WEB

Есть некоторые нюансы разбора с помощью Xpath xml-файла, в котором используются несколько пространств имен. Приведен разбор такого файла на примере файла ответа сервиса геокодирования Яндекс.

14.04.2017    10165    brr    6       

PHP OData драйвер 18

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) WEB

Удобный доступ к OData данным через SQL синтаксис

03.04.2017    8626    virtex3    4       

Online телефонный справочник из 1С: Зарплата и управление персоналом 34

Статья Системный администратор Программист Нет файла v8 ЗУП3.x Россия Управление персоналом (HRM) Бесплатно (free) WEB

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    19703    ruha    14       

Веб-сервисы и 1С: «Здравствуй, Name», время-деньги и «Жизнь» 78

Статья Программист Нет файла v8 Бесплатно (free) WEB

Несколько статей о создании веб-сервисов на платформе 1С

09.03.2017    21919    hayroff    11       

Интерактивный ввод капчи 26

Статья Программист Нет файла v8 Бесплатно (free) WEB

Краткое описание того, что делать, если нужно получить некоторые данные с определенного сайта, требующего от пользователя ввода текстовой капчи.

17.02.2017    8896    gaabora    3       

Отправка PUT запроса средствами 1С 8.3 66

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования WEB

HTTP запрос с использованием метода PUT средствами 1С 8.3 на практике - проблема и решение

16.02.2017    21070    hspeed79    16       

Нагрузочное тестирование сервера 1С при использовании WEB сервисов 51

Статья Системный администратор Программист Нет файла v8 ИТ-компания Бесплатно (free) Производительность и оптимизация (HighLoad) Внешние источники данных WEB

Проведение нагрузочного тестирования WEB-сервисов, развернутых на платформе 1С. Целью тестирования является ознакомление с возможностями платформы 1С при работе с большим количеством запросов через опубликованные WEB сервисы на IIS 7.5

01.02.2017    23548    BraunAlex    34       

Еще немного об обмене на web-сервисах 18

Статья Программист Нет файла v8 Россия Бесплатно (free) WEB Перенос данных из 1C8 в 1C8

Расскажу о собственном опыте по передаче данных через web-сервисы

26.08.2016    11029    savostin.alex    8       

HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие 124

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB Практика программирования Универсальные функции

Статья о том, как можно быстро создать HTTP-сервис в 1С:Предприятие и как выполнять его отладку.

25.07.2016    40794    serg_infostart    19       

Google Analytics API, Oauth2.0 и 1c8 51

Статья Системный администратор Нет файла v8 1С:Франчайзи, автоматизация бизнеса Windows Бесплатно (free) Практика программирования WEB

Обращение к Google Analytics API, Протокол Oauth 2.0 и запросы от 1С:8 без авторизации пользователя

02.05.2016    22259    Ольга_tmp    18       

HTTP-сервисы для тех, кто ничего не понимает в WEB 431

Статья Программист Нет файла v8 Windows Бесплатно (free) WEB

Если вы ничего не понимаете в WEB технологиях и такие слова, как json, get, post и прочее для вас ничего не значат и вы просто заядлый 1С-ник до мозга костей, но вам кровь из носу надо подружить 1С со сторонними приложениями или сайтом, то эта статья для вас

21.04.2016    104325    YAGolova    55       

Дай дернуть-2! Обращение к веб-сервисам с помощью подручных средств 97

Статья Программист Нет файла v8 Бесплатно (free) WEB

Как показала практика, о веб-сервисах знает почти каждый программист, но о том, как их готовить, - весьма ограниченный круг. Давайте интереса ради замутим сервис и дернем его с помощью простого подручного средства - "Бумеранг"!

21.04.2016    30914    starik-2005    32       

Отладка обмена с web-сайтом на Битрикс 71

Статья Системный администратор Программист Нет файла v8 Windows Бесплатно (free) WEB

Часто возникает необходимость отладки обмена между 1С и web-сайтом на Битрикс. Разберемся, какие инструменты есть для этого...

04.04.2016    15321    vital1c    6