Compare commits

..

No commits in common. "ac7870e8841fcbbf2a23aff5600f3024a7efcfe6" and "1dc5b5d10850566ef25d02fb14c88ff3e3c3fc41" have entirely different histories.

3 changed files with 12 additions and 20 deletions

View File

@ -14,7 +14,7 @@ let common = {
//Версия сервера приложений //Версия сервера приложений
sVersion: "8.5.6.1", sVersion: "8.5.6.1",
//Релиз сервера приложений //Релиз сервера приложений
sRelease: "2025.12.24", sRelease: "2025.11.06",
//Таймаут останова сервера (мс) //Таймаут останова сервера (мс)
nTerminateTimeout: 60000, nTerminateTimeout: 60000,
//Контролировать версию Системы //Контролировать версию Системы

View File

@ -37,7 +37,7 @@ const publishMQTT = async ({ settings, url, auth, topic, message, logger }) => {
//Прослушиваем ошибки //Прослушиваем ошибки
client.on("error", e => { client.on("error", e => {
//Если требуется выдавать ошибку //Если требуется выдавать ошибку
if ([SLOG_ERROR, SLOG_INFO].includes(settings.sLogLevel)) { if (settings.sLogLevel === SLOG_ERROR) {
//Выводим ошибку //Выводим ошибку
logger.error(`${SERR_MQTT}: ${makeErrorText(e)}`); logger.error(`${SERR_MQTT}: ${makeErrorText(e)}`);
} }

View File

@ -136,23 +136,15 @@ const buildHeaders = (sAPIClientId, sToken = null) => ({
}); });
//Отбор организций //Отбор организций
const getOrganizations = (organizations, sNumEdo = null) => { const getOrganizations = organizations => {
//Параметры отбора //Параметры отбора
let isRoaming = false; let isRoaming = false;
let isActive = true; let isActive = true;
//Итоговая выборка //Итоговая выборка
let organization = { Organizations: [] }; let organization = { Organizations: [] };
//Задан код участника ЭДО
if (sNumEdo) {
//Найдем активную организацию не в роуминге
organization.Organizations[0] = organizations.Organizations.find(org => (org.FnsParticipantId === sNumEdo));
};
//Не удалось получить организацию по коду участника ЭДО
if (!organization.Organizations[0]) {
//Найдем активную организацию не в роуминге //Найдем активную организацию не в роуминге
organization.Organizations[0] = organizations.Organizations.find(org => (org.IsRoaming === isRoaming) && (org.IsActive === isActive)); organization.Organizations[0] = organizations.Organizations.find(org => (org.IsRoaming === isRoaming) && (org.IsActive === isActive));
}; //Если не удалось получить организацию не в роуминге
//Не удалось получить организацию не в роуминге
if (!organization.Organizations[0]) { if (!organization.Organizations[0]) {
//Найдем активную организацию //Найдем активную организацию
organization.Organizations[0] = organizations.Organizations.find(org => (org.IsActive === isActive)); organization.Organizations[0] = organizations.Organizations.find(org => (org.IsActive === isActive));
@ -193,7 +185,7 @@ const getOrganization = async (sSrvRoot, headers, nInn, nKpp) => {
}; };
//Получение ящика организации по ИНН/КПП контрагента //Получение ящика организации по ИНН/КПП контрагента
const getOrganizationBoxId = async (sSrvRoot, headers, nInn, nKpp, sNumEdo) => { const getOrganizationBoxId = async (sSrvRoot, headers, nInn, nKpp) => {
//Параметры запроса //Параметры запроса
let rqpOptions; let rqpOptions;
let serverResp; let serverResp;
@ -213,9 +205,9 @@ const getOrganizationBoxId = async (sSrvRoot, headers, nInn, nKpp, sNumEdo) => {
serverResp = await rqp(rqpOptions); serverResp = await rqp(rqpOptions);
try { try {
//Получим организацию не в роуминге (или единственную организацию в роуминге) //Получим организацию не в роуминге (или единственную организацию в роуминге)
serverResp = getOrganizations(serverResp, sNumEdo); serverResp = getOrganizations(serverResp);
if (!serverResp?.Organizations[0]) { if (!serverResp?.Organizations[0]) {
throw Error(`Не удалось получить ящик получателя для контрагента с ${sNumEdo ? `кодом участника ЭДО: ${sNumEdo}, ` : ""}ИНН: ${nInn} и КПП: ${nKpp}`); throw Error(`Не удалось получить ящик получателя для контрагента с ИНН: ${nInn} и КПП: ${nKpp}`);
} }
} catch (e) { } catch (e) {
//Получим головную организацию по ИНН/КПП //Получим головную организацию по ИНН/КПП
@ -337,7 +329,7 @@ const beforeMessagePost = async prms => {
throw Error(`Ошибка при получении ящика текущей организации: ${e.message}`); throw Error(`Ошибка при получении ящика текущей организации: ${e.message}`);
} }
//Получим ящик получателя //Получим ящик получателя
organization = await getOrganizationBoxId(prms.service.sSrvRoot, buildHeaders(sAPIClientId, sToken), optionsData.inn_cs, optionsData.kpp_cs, optionsData.num_cs); organization = await getOrganizationBoxId(prms.service.sSrvRoot, buildHeaders(sAPIClientId, sToken), optionsData.inn_cs, optionsData.kpp_cs);
obj.ToBoxId = organization.BoxId; obj.ToBoxId = organization.BoxId;
//Если не заполнен идентификатор подразделения и при получении ящика удалось его подобрать //Если не заполнен идентификатор подразделения и при получении ящика удалось его подобрать
if ((!obj.ToDepartmentId) && (organization.DepartmentId)) { if ((!obj.ToDepartmentId) && (organization.DepartmentId)) {
@ -852,9 +844,9 @@ const afterDepartmentIdGet = async prms => {
try { try {
try { try {
//Получим организацию не в роуминге (или единственную организацию в роуминге) //Получим организацию не в роуминге (или единственную организацию в роуминге)
organization = getOrganizations(JSON.parse(prms.queue.blResp.toString()), optionsData.sNumEdo); organization = getOrganizations(JSON.parse(prms.queue.blResp.toString()));
if (!organization) { if (!organization) {
throw Error(`Не удалось получить ящик для контрагента с ${optionsData.sNumEdo ? `кодом участника ЭДО: ${optionsData.sNumEdo}, ` : ""}ИНН: ${optionsData.nINN} и КПП: ${optionsData.nKPP}`); throw Error(`Не удалось получить ящик для контрагента с ИНН: ${optionsData.nINN} и КПП: ${optionsData.nKPP}`);
} }
} catch (e) { } catch (e) {
//Получим ключ разработчика //Получим ключ разработчика