From 80f50d43a313a53508ca9f0568c2c4b3b9db2e7e Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Wed, 26 Nov 2025 12:50:32 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A6=D0=98=D0=A2=D0=9A-999=20-=20=D0=94=D0=98?= =?UTF-8?q?=D0=90=D0=94=D0=9E=D0=9A=20-=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB?= =?UTF-8?q?=D0=B5=D0=BC=D0=B0=20=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D1=80=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D0=B8=20=D0=98=D0=9D=D0=9D=20=D0=B2=20=D1=87?= =?UTF-8?q?=D0=B8=D1=81=D0=BB=D0=BE=20=D1=81=20=D0=BF=D0=BE=D1=81=D0=BB?= =?UTF-8?q?=D0=B5=D0=B4=D1=83=D1=8E=D1=89=D0=B8=D0=BC=20=D0=B8=D1=81=D1=87?= =?UTF-8?q?=D0=B5=D0=B7=D0=BD=D0=BE=D0=B2=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20?= =?UTF-8?q?=D0=BB=D0=B8=D0=B4=D0=B8=D1=80=D1=83=D1=8E=D1=89=D0=B5=D0=B3?= =?UTF-8?q?=D0=BE=20=D0=BD=D1=83=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/diadoc.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/modules/diadoc.js b/modules/diadoc.js index cb1e2fd..5bee4ad 100644 --- a/modules/diadoc.js +++ b/modules/diadoc.js @@ -296,6 +296,8 @@ const beforeMessagePost = async prms => { } //Если не достали из контекста токен доступа - значит нет аутентификации на сервере if (!sToken) return { bUnAuth: true }; + //Получим параметры запроса + const optionsData = await toJSON(prms.queue.sOptions); //Конвертируем XML из "Парус 8" в JSON let obj = await toJSON(prms.queue.blMsg.toString()); //Формируем запрос для получения FromBoxId @@ -313,7 +315,7 @@ const beforeMessagePost = async prms => { //Получим идентификатор организации по ИНН/КПП поставщика документа for (let i in serverResp.Organizations) { //Если найдена подходящая организация - запомним идентификатор и выходим из цикла - if (serverResp.Organizations[i].Inn == prms.options.inn_pr && serverResp.Organizations[i].Kpp == prms.options.kpp_pr) { + if (serverResp.Organizations[i].Inn == optionsData.inn_pr && serverResp.Organizations[i].Kpp == optionsData.kpp_pr) { //Сохраняем полученный ответ obj.FromBoxId = serverResp.Organizations[i].Boxes[0].BoxId; break; @@ -321,13 +323,13 @@ const beforeMessagePost = async prms => { } //Не удалось получить ящик отправителя if (!obj.FromBoxId) { - throw new Error(`Не удалось получить ящик текущей организации с ИНН: ${prms.options.inn_pr} и КПП: ${prms.options.kpp_pr}`); + throw new Error(`Не удалось получить ящик текущей организации с ИНН: ${optionsData.inn_pr} и КПП: ${optionsData.kpp_pr}`); } } catch (e) { throw Error(`Ошибка при получении ящика текущей организации: ${e.message}`); } //Получим ящик получателя - organization = await getOrganizationBoxId(prms.service.sSrvRoot, buildHeaders(sAPIClientId, sToken), prms.options.inn_cs, prms.options.kpp_cs); + organization = await getOrganizationBoxId(prms.service.sSrvRoot, buildHeaders(sAPIClientId, sToken), optionsData.inn_cs, optionsData.kpp_cs); obj.ToBoxId = organization.BoxId; //Если не заполнен идентификатор подразделения и при получении ящика удалось его подобрать if ((!obj.ToDepartmentId) && (organization.DepartmentId)) { @@ -454,6 +456,8 @@ const beforeEvent = async prms => { } //Если не достали из контекста токен доступа - значит нет аутентификации на сервере if (!sToken) return { bUnAuth: true }; + //Получим параметры запроса + const optionsData = await toJSON(prms.queue.sOptions); //Формируем запрос для получения BoxId let rqpOptions = { uri: buildMyOrganizationURL(prms.service.sSrvRoot), @@ -466,7 +470,7 @@ const beforeEvent = async prms => { //Получим идентификатор организации по ИНН/КПП контрагента организации for (let i in serverResp.Organizations) { //Если найдена подходящая организация - запомним идентификатор и выходим из цикла - if (serverResp.Organizations[i].Inn == prms.options.inn && serverResp.Organizations[i].Kpp == prms.options.kpp) { + if (serverResp.Organizations[i].Inn == optionsData.inn && serverResp.Organizations[i].Kpp == optionsData.kpp) { //Сохраняем полученный ответ sBoxId = serverResp.Organizations[i].Boxes[0].BoxId; //Если задано подразделение @@ -493,7 +497,7 @@ const beforeEvent = async prms => { } //Не удалось получить ящик текущей организации if (!sBoxId) { - throw new Error(`Не удалось получить ящик текущей организации с ИНН: ${prms.options.inn} и КПП: ${prms.options.kpp}`); + throw new Error(`Не удалось получить ящик текущей организации с ИНН: ${optionsData.inn} и КПП: ${optionsData.kpp}`); } } catch (e) { throw Error(`Ошибка при получении ящика текущей организации: ${e.message}`); @@ -833,6 +837,8 @@ const beforeDepartmentIdGet = async prms => { const afterDepartmentIdGet = async prms => { let resu = null; let organization = {}; + //Получим параметры запроса + const optionsData = await toJSON(prms.queue.sOptions); //Действие выполнено успешно if (prms.optionsResp.statusCode == 200) { try { @@ -840,7 +846,7 @@ const afterDepartmentIdGet = async prms => { //Получим организацию не в роуминге (или единственную организацию в роуминге) organization = getOrganizations(JSON.parse(prms.queue.blResp.toString())); if (!organization) { - throw Error(`Не удалось получить ящик для контрагента с ИНН: ${prms.options.nINN} и КПП: ${prms.options.nKPP}`); + throw Error(`Не удалось получить ящик для контрагента с ИНН: ${optionsData.nINN} и КПП: ${optionsData.nKPP}`); } } catch (e) { //Получим ключ разработчика @@ -848,7 +854,7 @@ const afterDepartmentIdGet = async prms => { //Считаем токен доступа из контекста сервиса let sToken = prms.service.sCtx; //Получим головную организацию по ИНН/КПП - organization = await getOrganization(prms.service.sSrvRoot, buildHeaders(sAPIClientId, sToken), prms.options.nINN, prms.options.nKPP); + organization = await getOrganization(prms.service.sSrvRoot, buildHeaders(sAPIClientId, sToken), optionsData.nINN, optionsData.nKPP); }; //Преобразуем JSON ответ сервиса "ДИАДОК" в XML, понятный "Парус 8" resu = toXML({ root: organization });