Интеграция 1С и Node.js

понедельник, 25 июля 2022 г.

Мы будем использовать SOAP модуль для связи нашего сервера на node.js с программой 1С. Для этого воспользуемся командой:

npm install soap

Далее нам нужно пройти авторизацию в клиенте, после чего сможем получить доступ к web-сервисам  WSDL. В нашем главном файле app.js пишем:

Вариант с использованием require:

// подключение express
const express = require("express");
// создаем объект приложения
const app = express();

// определяем обработчик для маршрута "/"
app.get("/", function(request, response){
    
// подключаем модуль SOAP, определяем в переменные URL адрес веб-сервиса 1С, переменные для авторизации, переменные для выполнения пользовательской функции
let soap = require('soap'),
url = 'https://URL.1cws?wsdl',
args = {'RequestDATA':[{'PARAMETER': "VALUE"}]},
auth = "Basic " + Buffer.from("LOGIN" + ":" + "PASSWORD").toString("base64");

let client = soap.createClient(url, { wsdl_headers: { Authorization: auth } }, (err, client) => {
client.setSecurity(new soap.BasicAuthSecurity("LOGIN","PASSWORD"))
if (err) {
throw err;
} else {
// обращаемся к нашей пользовательской функции GetSettings
client.GetSettings(args, function(err, result) {
// получаем данные и работаем с ними дальше
console.log(result);
return;
});
}
});
return;

});
// начинаем прослушивать подключения на 3000 порту
app.listen(3000);

Современный вариант с использованием import (ES6):

// подключение express
import express from "express";
// подключаем модуль SOAP
import soap from "soap";
// создаем объект приложения
const app = express();

// определяем обработчик для маршрута "/"
app.get("/", function(request, response){
    
// определяем в переменные URL адрес веб-сервиса 1С, переменные для авторизации, переменные для выполнения пользовательской функции
let url = 'https://URL.1cws?wsdl',
args = {'RequestDATA':[{'PARAMETER': "VALUE"}]},
auth = "Basic " + Buffer.from("LOGIN" + ":" + "PASSWORD").toString("base64");

let client = soap.createClient(url, { wsdl_headers: { Authorization: auth } }, (err, client) => {
client.setSecurity(new soap.BasicAuthSecurity("LOGIN","PASSWORD"))
if (err) {
throw err;
} else {
// обращаемся к нашей пользовательской функции GetSettings
client.GetSettings(args, function(err, result) {
// получаем данные и работаем с ними дальше
console.log(result);
return;
});
}
});
return;

});
// начинаем прослушивать подключения на 3000 порту
app.listen(3000);

Fullstack-разработчик в Москве
Александр
Fullstack-разработчик в Москве

Профессиональная разработка веб-приложений на Node.js с использованием Express. Создание, продвижение, поддержка и обслуживание Веб-проектов. Эффективно, прибыльно.