ЦИТК-551 - поддержка МЧД для расширений "Интеграция с ЭДО СБИС/ДИАДОК"

This commit is contained in:
Mikhail Chechnev 2023-12-15 13:35:27 +03:00
parent df6075d4ad
commit b6c8c067f8
2 changed files with 46 additions and 1 deletions

View File

@ -10,13 +10,25 @@
const xml2js = require("xml2js"); //Конвертация XML в JSON и JSON в XML
const _ = require("lodash"); //Работа с коллекциями и объектами
const rqp = require("request-promise"); //Работа с HTTP/HTTPS запросами
const { SMCHD_STORAGE_SYSTEM } = require("./sbis_config"); //Система хранения МЧД
//---------------------
// Глобальные константы
//---------------------
// Список тегов которые должны содержать массив
const tag = ["Вложение", "Редакция", "ДокументОснование", "ДокументСледствие", "Подпись", "Событие", "Этап", "Действие", "Сертификат"];
const tag = [
"Вложение",
"Редакция",
"ДокументОснование",
"ДокументСледствие",
"Подпись",
"Событие",
"Этап",
"Действие",
"Сертификат",
"Доверенность"
];
//------------
// Тело модуля
@ -132,6 +144,28 @@ const beforeDocParse = async prms => {
if (!sToken) return { bUnAuth: true };
//Конвертируем XML из "Парус 8" в понятный "СБИСу" JSON
let obj = await toJSON(prms.queue.blMsg.toString());
//В зависимости от режима загрузки определим наименование узла
switch (obj.method) {
//Подготовка действия
case "СБИС.ПодготовитьДействие":
//Если требуется использовать МЧД
if (obj.params?.Документ?.Этап[0]?.Действие?.Сертификат?.Доверенность !== "undefined") {
obj.params.Документ.Этап[0].Действие.Сертификат.Доверенность.СистемаХраненияМЧД = SMCHD_STORAGE_SYSTEM;
}
break;
//Выполнение действия
case "СБИС.ВыполнитьДействие":
//Если требуется использовать МЧД
if (obj.params?.Документ?.Этап[0]?.Вложение?.Подпись?.Сертификат?.Доверенность) {
obj.params.Документ.Этап[0].Вложение.Подпись.Сертификат.Доверенность.СистемаХраненияМЧД = SMCHD_STORAGE_SYSTEM;
} else if (obj.params?.Документ?.Этап[0]?.Вложение[0]?.Подпись?.Сертификат?.Доверенность !== "undefined") {
for (i = 0; i < obj.params.Документ.Этап[0].Вложение.length; i++) {
obj.params.Документ.Этап[0].Вложение[i].Подпись.Сертификат.Доверенность.СистемаХраненияМЧД = SMCHD_STORAGE_SYSTEM;
}
}
break;
default:
}
//Собираем и отдаём общий результат работы
return {
options: {

11
modules/sbis_config.js Normal file
View File

@ -0,0 +1,11 @@
/*
Сервис интеграции ПП Парус 8 с WEB API
Дополнительный модуль: Интеграция с ЭДО "СБИС" (SBIS) - настройки
*/
//-----------------
// Интерфейс модуля
//-----------------
//Система хранения МЧД
exports.SMCHD_STORAGE_SYSTEM = "https://m4d.nalog.gov.ru/EMCHD/check-status";