diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java
index 0b379cd29..7290cb93a 100644
--- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/errors/AccountError.java
@@ -24,6 +24,7 @@ public enum AccountError implements IErrorEnumId {
AccountFieldNotSet(5024L),
AccountDepoTypeRequired(5025L),
AccountIsNotACurrency(5026L), // Счет %S не валютный
+ CompanyHasNotClearingMemberCategory(5027L),
TradingClearingRegistryNotFound(3022L),
CurrencyNotFound(1016L),
;
diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java
index 9a5f102d9..efe7eae66 100644
--- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java
+++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/ClearingAccountService.java
@@ -395,6 +395,14 @@ public class ClearingAccountService extends QueueConsumer implements Initializin
log.warn(errMsg);
return null;
}
+
+ ClearingMemberCategory companyAnyCMC = clearingMemberCategoryImdg.getFirstObjectByFieldValues(Map.of(
+ "companyId", companyId
+ ));
+ if (companyAnyCMC == null) {
+ String errMsg = messageResolver.resolve(new EnumMessage(AccountError.CompanyHasNotClearingMemberCategory, companyId));
+ log.warn(errMsg);
+ }
}
Instant now = Instant.now();
diff --git a/clearing-parent/backend-api/src/main/resources/meta/data.xml b/clearing-parent/backend-api/src/main/resources/meta/data.xml
index 2ebffe166..544ca31bd 100644
--- a/clearing-parent/backend-api/src/main/resources/meta/data.xml
+++ b/clearing-parent/backend-api/src/main/resources/meta/data.xml
@@ -453,6 +453,7 @@
+
diff --git a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql
index ab95215cc..d750a9ae0 100644
--- a/clearing-parent/db-scripts/src/main/resources/db/DATA.sql
+++ b/clearing-parent/db-scripts/src/main/resources/db/DATA.sql
@@ -1,4 +1,4 @@
--- DB version: 3.11.0.88
+-- DB version: 3.11.0.89
-- DATA version: 3.11.0.78
@@ -882,6 +882,8 @@ INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5025, 'ACNT', 'Нео
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5026, 'ACNT', 'Счет %S не валютный.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
+INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5027, 'ACNT', 'У компании %s отсутствует категория.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
+
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5200, 'BLNC', 'Общая ошибка модуля balance-service.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;
INSERT INTO ERROR_CODE_DICTIONARY(ID, CODE, NAME) values (5210, 'BLNC', 'Клиринговая сессия неактивна.') ON CONFLICT (ID) DO UPDATE SET CODE = EXCLUDED.CODE, NAME = EXCLUDED.NAME;