DEPO: обработка BJ_ORDER_REJECTED (отказ НРД по поручению) — MSSQL и Firebird

По ответу программиста Fancy от 28.10.2026:
- операция не создаётся, входящая запись D_FILER не меняется (поручение было);
- в строке D_CLISER_M2M_DOL.DEP_TEXT — «Отказ НРД: » + PARAMETERS (номер и дата
  отчёта НРД, без номера — текст отказа);
- документ: все строки отвергнуты — «Отмена обработки» (3); строки разошлись
  (одна исполнена, другая отвергнута, в любом порядке) — «Частично обработан»
  (OD_DOC_STATES.SYS_NAME = IN_PROCESS, ID у баз разный: 869 / 762); по другим
  строкам ответа ещё нет — состояние не меняется. BJ_ORDER_ACCEPTED при уже
  отвергнутой строке ставит «Частично обработан» вместо «Конец обработки».

Проверено: MSSQL — тестовая DEPO в транзакции с откатом (A: 2→869, B: 127→869,
D: 127→3); Firebird — база SPI с триггерами Fancy (A–D, OUT с отказом без номера)
и smoke на заглушках.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
fontvielle
2026-10-28 14:25:27 +03:00
parent 03918b1e58
commit d05cba44ec
7 changed files with 157 additions and 11 deletions
@@ -1,5 +1,6 @@
/* Прогон процедур на заглушках Fancy: перевод IN (найден) и с неизвестным контрагентом; события PING, RECEIVED,
SENT, ORDER_ACCEPTED (операция, входящая запись, проводка), неизвестное, HANDBOOK. Привязки — значения Фонтвьель. */
SENT, ORDER_ACCEPTED (операция, входящая запись, проводка), ORDER_REJECTED по второй строке (документ «Частично
обработан», отказ в DEP_TEXT), неизвестное, HANDBOOK. Привязки — значения Фонтвьель. */
UPDATE FTV_M2M_SETTINGS SET VAL = CASE NAME WHEN 'WHOS' THEN 383118 WHEN 'OPER_USER' THEN 84 WHEN 'FILER_CAT' THEN 255 WHEN 'D_NUM' THEN 313
WHEN 'K_NUM' THEN 836 WHEN 'MARKET' THEN 8106 WHEN 'B_TYPE' THEN 31 WHEN 'CORR_FACE' THEN 18174 WHEN 'FILER_RUBRICA' THEN 5 END;
INSERT INTO OD_FACES (ID, SELF_ID, LAST_FLAG, MNEM, NAME, E_DATE, S_TYPE) VALUES (1, 1, 1, 'M2M', 'Кодировщик M2M', '9999-01-01', 0);
@@ -12,6 +13,7 @@ INSERT INTO OD_DOC_CATS (ID, SYS_NAME) VALUES (501, 'I_CLISER_M2M_SPIS');
INSERT INTO OD_DOC_CATS (ID, SYS_NAME) VALUES (502, 'OP_INV_ZACH');
INSERT INTO OD_DOC_CATS (ID, SYS_NAME) VALUES (503, 'OP_INV_SPIS');
INSERT INTO OD_DOC_STATES (ID, SYS_NAME) VALUES (11, 'WAIT_RESP_DECIS');
INSERT INTO OD_DOC_STATES (ID, SYS_NAME) VALUES (869, 'IN_PROCESS');
INSERT INTO OD_STEP_TYPES (ID, SYS_NAME, D_CAT, OUT_STATE) VALUES (77, 'PROCESS', 502, 2);
INSERT INTO OD_SYS_TABS (CODE, NUM, NAME) VALUES ('DEPO96_DCLA', 31, 'Отчет депозитария');
INSERT INTO OD_VALUES (ID, ISIN) VALUES (300, 'RU000A0JVHH1');
@@ -23,6 +25,7 @@ INSERT INTO FTV_M2M_HANDBOOK (INN, PARTICIPANT_CODE, KIND, NAME_SHORT, NAME_FULL
INSERT INTO FTV_M2M_HANDBOOK (INN, PARTICIPANT_CODE, KIND, NAME_SHORT, NAME_FULL) VALUES ('7703807489', 'MC0413600000', 'depo', 'ООО "ИК "Фонтвьель"', 'ООО Инвестиционная Компания Фонтвьель');
INSERT INTO FTV_M2M (GUID, DIRECTION, CONTRAGENT_M2M_CODE, DEPONENT_NAME, DEPONENT_DOC) VALUES ('bae1fa60-eb0a-4fee-b12c-018d1eafcbd2', 'IN', 'MC000050MOST', 'Лапшина Юлия Юрьевна', '4508 147055');
INSERT INTO FTV_M2M_LINES (GUID, REFERENCE, ISIN, SEC_CODE, AMOUNT, PLACE_NUMBER, LINK_NUMBER, DEPO_NUMBER) VALUES ('BAE1FA60-EB0A-4FEE-B12C-018D1EAFCBD2', 'M2MREF_1', 'RU000A0JVHH1', 'RU000A0JVHH1', 11, '36MC0413600000F00', 'HL171004001C', 'ВТНКЦ00000060');
INSERT INTO FTV_M2M_LINES (GUID, REFERENCE, ISIN, SEC_CODE, AMOUNT, PLACE_NUMBER, LINK_NUMBER, DEPO_NUMBER) VALUES ('BAE1FA60-EB0A-4FEE-B12C-018D1EAFCBD2', 'M2MREF_2', 'RU000A0JVHH1', 'RU000A0JVHH1', 5, '36MC0413600000F00', 'HL171004001C', 'ВТНКЦ00000060');
INSERT INTO FTV_M2M (GUID, DIRECTION, CONTRAGENT_M2M_CODE, DEPONENT_NAME, DEPONENT_DOC) VALUES ('00000000-0000-4000-8000-000000000002', 'IN', 'MC9999999999', 'Никто', '0000 000000');
COMMIT;
EXECUTE PROCEDURE FTV_M2M_JOB;
@@ -31,6 +34,7 @@ INSERT INTO FTV_M2M_EVENTS (GUID, REFERENCE, EVENT_TYPE, EVENT_DATE) VALUES (NUL
INSERT INTO FTV_M2M_EVENTS (GUID, REFERENCE, EVENT_TYPE, EVENT_DATE) VALUES ('BAE1FA60-EB0A-4FEE-B12C-018D1EAFCBD2', 'M2MREF_1', 'BJ_RECEIVED', CURRENT_TIMESTAMP);
INSERT INTO FTV_M2M_EVENTS (GUID, REFERENCE, EVENT_TYPE, EVENT_DATE) VALUES ('BAE1FA60-EB0A-4FEE-B12C-018D1EAFCBD2', 'M2MREF_1', 'BJ_SENT', CURRENT_TIMESTAMP);
INSERT INTO FTV_M2M_EVENTS (GUID, REFERENCE, EVENT_TYPE, EVENT_DATE, PARAMETERS) VALUES ('BAE1FA60-EB0A-4FEE-B12C-018D1EAFCBD2', 'M2MREF_1', 'BJ_ORDER_ACCEPTED', '2026-10-22 15:00:00', '1234567890 от 22.10.2026');
INSERT INTO FTV_M2M_EVENTS (GUID, REFERENCE, EVENT_TYPE, EVENT_DATE, PARAMETERS) VALUES ('BAE1FA60-EB0A-4FEE-B12C-018D1EAFCBD2', 'M2MREF_2', 'BJ_ORDER_REJECTED', '2026-10-22 15:05:00', '1234567891 от 22.10.2026');
INSERT INTO FTV_M2M_EVENTS (GUID, REFERENCE, EVENT_TYPE, EVENT_DATE) VALUES ('BAE1FA60-EB0A-4FEE-B12C-018D1EAFCBD2', 'M2MREF_1', 'BJ_WHATEVER', CURRENT_TIMESTAMP);
INSERT INTO FTV_M2M_EVENTS (EVENT_TYPE, EVENT_DATE) VALUES ('HANDBOOK', CURRENT_TIMESTAMP);
COMMIT;
@@ -41,6 +45,7 @@ SELECT ID, GUID, STATE, DOC, CONTRAGENT, DEPONENT, CAST(COMMENT AS VARCHAR(300))
SELECT ID, STATE, DOC, DOL, SHARE, PLACE, DEPO FROM FTV_M2M_LINES;
SELECT ID, EVENT_TYPE, STATE, CAST(COMMENT AS VARCHAR(600)) C FROM FTV_M2M_EVENTS;
SELECT ID, NUM, D_CAT, STATE, KVIT, WHOS FROM OD_DOCS ORDER BY ID;
SELECT DOL, DOL_REF, DEP_TEXT FROM D_CLISER_M2M_DOL;
SELECT DOC, D_NUM, K_NUM, MARKET, B_TYPE, B_NUM, B_DATE, CAST(COMMENT AS VARCHAR(300)) C FROM U_OP_INV_ZACH;
SELECT DOC, RUBRICA, DOC_NUM, DOC_DATE, CORR_FACE, MESS FROM D_FILER;
SELECT DOC, CAST(COMMENT AS VARCHAR(300)) C, CAST(DO_ING AS VARCHAR(100)) D FROM OD_INVALIDS;