Пример организации 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С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

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

36000 руб.

03.08.2020    21800    31    24    

25

SALE! 15%

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

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

17280 14688 руб.

20.12.2024    4017    20    2    

21

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

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8721    7    5    

10

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

Обмен данными с "Порталом поставщиков" zakupki.mos.ru Москвы и Московской области с целью создания оферт для закупок государственными учреждениями. Модуль устраняет рутину, минимизирует ошибки и помогает выигрывать больше закупок. Работает строго по требованиям 44-ФЗ.

14400 руб.

13.12.2016    41321    54    39    

37

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

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

5196 руб.

28.04.2016    98256    111    218    

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

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