Пример организации HTTP сервиса на 1С: Документооборот. Источник 1С: ЕРП => Приемник 1С: Документооборот

13.05.21

Интеграция - WEB-интеграция

Статья - пример для разработчика, как можно, не используя подсистему Интеграция с Документооборотом, управлять процессами, а именно на нашем примере прерывать выполнение процессов в 1С: Документооборот. Используя данный пример, можно организовать http-сервис в любой конфигурации 1С, которая поддерживает механизм HTTP сервисов.

1. Создаем HTTP-сервис с типом POST в 1С ДО, обзываем его МСУ_BusinessProcess.

Указываем название для Корневого URL, указываем название шаблона и метод обработки(наш обработчик на языке 1С).


 

 

 

 

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

Вернем результат запроса туда, откуда он пришел, в нашем случае в 1С: ЕРП.

Возвращаться может все, что угодно (текст, XML, json и т.д.), мы вернем текст в json

 

//обработчик указанный нами в http-сервисе
Функция ПрерываниеПроцессаПрерываниеПроцесса(Запрос)   

    Строка = "Все ОК"; //если обработка успешна, вернем как результат прерывания процесса в виде сообщения в 1С ЕРП
        
    Возврат Новый HTTPСервисОтвет(ПрочитатьJSON(Запрос, Строка));

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


//Обработаем запрос и вернем результат обработки в источник
Функция ПрочитатьJSON(Запрос,Строка) Экспорт
    
     СтрокаJSON = Запрос.ПолучитьТелоКакСтроку(); //вытащим то, что указано в теле запроса
    
     ЧтениеJSON = Новый ЧтениеJSON();
     ЧтениеJSON.УстановитьСтроку(СтрокаJSON);
     
     Массив = ПрочитатьJSON(ЧтениеJSON); //тут должны содержаться идентификаторы предметов, которые нам передали из 1С ЕРП

     Для Каждого СтрокаМассива Из Массив Цикл
         Предмет = Справочники.ВнутренниеДокументы.ПолучитьСсылку(Новый УникальныйИдентификатор(СтрокаМассива)); 
         Если НЕ Предмет.Пустая() Тогда
         ПрерватьПроцессПоПредмету(Предмет);
         КодОтвета = "200";
         Иначе
         Строка = "Не найден Документ с Идентификаторм "+СтрокаJSON;
         КодОтвета = "404";
         КонецЕсли;
     КонецЦикла;
     
     Ответ = Новый HTTPСервисОтвет(КодОтвета);
     
     ЗаписьJSON = Новый ЗаписьJSON();
     ЗаписьJSON.УстановитьСтроку();

     ЗаписатьJSON(ЗаписьJSON, Строка);

     Ответ.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());
     

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

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


Сохраняем наши изменения в базу.

Публикуем созданный нами http-сервис из конфигуратора (вебсервер, естественно, должен быть уже развернут).

3. В другой базе, например, 1С: ЕРП создаем обработку вида


 

4. На кнопку обработки Post вешаем обработчики
 

&НаКлиенте
Процедура Post(Команда)
    PostНаСервере();
КонецПроцедуры


&НаСервере
Функция PostНаСервере()
    //нужно что то сообщить нам как всё прошо при передачи запроса в 1С ДО
    Сообщение = Новый СообщениеПользователю; 
    
    //полные параметры соединения
    Соединение = Новый HTTPСоединение(
        "SRV-1C" // Имя сервера (хост), иногда указывается внутри домена как SRV-1C.Local
        ,80     // порт, по умолчанию для http используется 80, для https 443
        ,"User"    // пользователь для доступа к серверу (если в базе 1С к которой коннектимся есть хотя бы 1 пользователь)
        ,"Parol"    // пароль для доступа к серверу (если в базе 1С к которой коннектимся есть хотя бы 1 пользователь)
        ,// здесь указывается прокси, если он есть
        ,// таймаут в секундах, 0 или пусто - не устанавливать
         //Новый ЗащищенноеСоединениеOpenSSL()  - если соединение через https 
        );
 
    
    //каталог публикации базы + обязательно "hs" + корневой каталог + Шаблон
    // Полная строка для браузера выглядит так: SRV-1C/doc_work/hs/BusinessProcess/abort_bp/
    АдресРесурса = "/doc_work/hs/BusinessProcess/abort_bp/";
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "text/plain;charset=UTF-8"); //можно передать не текст а эксемель "application/xml" 
    
    HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, Заголовки);    
    
    СтрокаJSON = ПолучитьJSONСтроку(); //Сформируем JSONСтроку для передачи ее в теле запроса. Это по стути те данные, которые мы хотим передать.
    
    HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON);
    
    Попытка  //отправляем данные
        Результат = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
        Сообщить(Результат.ПолучитьТелоКакСтроку());
    Исключение
        Сообщение.Текст = ОписаниеОшибки();
        Сообщение.Сообщить();
        Возврат Ложь;
    КонецПопытки;
    
КонецФункции

&НаСервере
Функция ПолучитьJSONСтроку()
    
    Массив = Новый Массив;
    Массив.Добавить(Строка(Заявка.УникальныйИдентификатор()));
    ЗаписьJSON = Новый ЗаписьJSON();
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, Массив);
    
    Возврат ЗаписьJSON.Закрыть();

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


Итогом данной организационной модели реализации взаимодействия двух программ становится передача в теле JSON строки с уникальным идентификатором предмета в виде Заявки на расходование денежных средств.

При обработке запроса http-сервис выполнит процедуру прерывания процессов в базе 1С ДО и вернет результат обработки запроса.

Пример можно использовать как на передачу, так и на получение запросов на исполнение, и реализовывать свои модели http-сервисов между различными системами и не только 1С<>1С но и сторонними микросервисами. 

HTTP сервис запрос REST

См. также

Оптовая торговля Розничная торговля WEB-интеграция 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

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

57600 руб.

26.11.2024    1237    1    1    

4

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    18356    20    22    

18

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23): 1С:Управление торговлей, 1С:Управление Нашей фирмой 3, 1С:Комплексная автоматизация 2, Объединенное решение: Модуль 1С:CRM 3 (3.0.21.3) +1С:ERP Управление предприятием 2. При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20565    13    19    

18

WEB-интеграция Программист Бизнес-аналитик Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

14400 руб.

20.12.2024    320    2    0    

5

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    2488    1    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. edd_n 17.03.23 20:53 Сейчас в теме
У тебя не отмечено, что передаваться могут и двоичные данные. А это важно!
2. Flover 66 28.03.23 16:26 Сейчас в теме
(1) >>Возвращаться может все, что угодно (текст, XML, json и т.д.), мы вернем текст в json

Просто кто то не умеет читать.
3. edd_n 31.03.23 04:18 Сейчас в теме
(2) Считаю, что важно отметить в предложении именно двоичные данные, потому как складывается впечатление у читающего, что речь идёт исключительно о текстовой информации в том или ином формате. Надо уметь прислушиваться к конструктивной критике со свежим взглядом на старый текст.
4. Flover 66 31.03.23 15:34 Сейчас в теме
из 120 тыс просмотров вы один такой уникальный, остальным это и так понятно.
Оставьте свое сообщение