DEPO Firebird: справочник участников на настоящем справочнике НРД
Полная перезапись FTV_M2M_HANDBOOK + событие HANDBOOK, как bj пишет в MSSQL (169 участников, 2 места расчётов): первый прогон — 168 юрлиц с кодами M2M, повторный — без изменений. Относительно MSSQL-версии: - место расчётов без кода участника — юрлицо без кода M2M (OD_FACE_CODERS.CODE NOT NULL, иначе падал весь справочник); - один ИНН дважды (СПБ Банк — место расчётов и депозитарий) — одно юрлицо, код добавляет шаг 3. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
This commit is contained in:
@@ -301,12 +301,18 @@ BEGIN
|
|||||||
AND HB.INN NOT IN (SELECT F.INN FROM OD_FACES F WHERE F.LAST_FLAG = 1 AND F.E_DATE = '9999-01-01' AND F.INN IS NOT NULL)
|
AND HB.INN NOT IN (SELECT F.INN FROM OD_FACES F WHERE F.LAST_FLAG = 1 AND F.E_DATE = '9999-01-01' AND F.INN IS NOT NULL)
|
||||||
ORDER BY HB.NAME_SHORT
|
ORDER BY HB.NAME_SHORT
|
||||||
INTO :HB_ID, :CODE, :INN, :NAME_SHORT, :NAME_FULL DO
|
INTO :HB_ID, :CODE, :INN, :NAME_SHORT, :NAME_FULL DO
|
||||||
|
/* один ИНН бывает в справочнике дважды (СПБ Банк — место расчётов и депозитарий): второе юрлицо не создаём,
|
||||||
|
код к созданному добавит шаг 3 (в MSSQL-версии — два одинаковых юрлица) */
|
||||||
|
IF (NOT EXISTS (SELECT 1 FROM OD_FACES F WHERE F.INN = :INN AND F.LAST_FLAG = 1 AND F.E_DATE = '9999-01-01')) THEN
|
||||||
BEGIN
|
BEGIN
|
||||||
RW = RW + 1;
|
RW = RW + 1;
|
||||||
FACE_ID = GEN_ID(OD_FACES_ID_GEN, 1);
|
FACE_ID = GEN_ID(OD_FACES_ID_GEN, 1);
|
||||||
INSERT INTO OD_FACES (ID, S_TYPE, INN, NAME) VALUES (:FACE_ID, 1, :INN, :NAME_SHORT);
|
INSERT INTO OD_FACES (ID, S_TYPE, INN, NAME) VALUES (:FACE_ID, 1, :INN, :NAME_SHORT);
|
||||||
INSERT INTO OD_U_FACES (FACE, FULL_NAME) VALUES (:FACE_ID, :NAME_FULL);
|
INSERT INTO OD_U_FACES (FACE, FULL_NAME) VALUES (:FACE_ID, :NAME_FULL);
|
||||||
INSERT INTO OD_FACE_CODERS (CODE, CODER, FACE) VALUES (:CODE, :M2M_CODER, :FACE_ID);
|
/* у мест расчётов (KIND = 'PLACE') кода участника нет, а OD_FACE_CODERS.CODE — NOT NULL: в MSSQL-версии
|
||||||
|
такой справочник падает целиком, если места расчётов ещё нет в юрлицах Fancy */
|
||||||
|
IF (CODE IS NOT NULL) THEN
|
||||||
|
INSERT INTO OD_FACE_CODERS (CODE, CODER, FACE) VALUES (:CODE, :M2M_CODER, :FACE_ID);
|
||||||
CMT = CMT || CRLF || RW || '. Добавлено юрлицо: ' || COALESCE(CODE, '') || ', ' || INN || ', ' || COALESCE(NAME_SHORT, '');
|
CMT = CMT || CRLF || RW || '. Добавлено юрлицо: ' || COALESCE(CODE, '') || ', ' || INN || ', ' || COALESCE(NAME_SHORT, '');
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|||||||
@@ -37,6 +37,14 @@ isql -ch WIN1251 -user SYSDBA -i 10.sql <сервер>:<путь к базе>
|
|||||||
Исправлено по итогам: генераторы `OD_DOCS_ID_GEN`/`OD_DOLS_ID_GEN`; `COMMENT` без кавычек (в диалекте 1 `"…"` —
|
Исправлено по итогам: генераторы `OD_DOCS_ID_GEN`/`OD_DOLS_ID_GEN`; `COMMENT` без кавычек (в диалекте 1 `"…"` —
|
||||||
строка); дата без времени — через `FTV_M2M_DAY` (в диалекте 1 `CAST(… AS DATE)` время не отрезает).
|
строка); дата без времени — через `FTV_M2M_DAY` (в диалекте 1 `CAST(… AS DATE)` время не отрезает).
|
||||||
|
|
||||||
|
Справочник участников — на настоящем справочнике НРД (169 участников, 2 места расчётов), записанном так же, как
|
||||||
|
bj пишет его в MSSQL (полная перезапись `FTV_M2M_HANDBOOK` + событие `HANDBOOK`): первый прогон — 168 юрлиц с
|
||||||
|
кодами M2M, повторный — «никаких изменений не обнаружено». Исправлено относительно MSSQL-версии (там осталось):
|
||||||
|
- место расчётов без кода участника (`KIND = 'PLACE'`, например «СПБ Банк») — юрлицо создаётся без кода M2M
|
||||||
|
(`OD_FACE_CODERS.CODE` — `NOT NULL`; в MSSQL-версии справочник падает целиком, если места ещё нет в Fancy);
|
||||||
|
- один ИНН дважды в справочнике (СПБ Банк — место расчётов и депозитарий) — одно юрлицо, код добавляет шаг 3
|
||||||
|
(в MSSQL-версии — два одинаковых юрлица).
|
||||||
|
|
||||||
## Проверить у клиента
|
## Проверить у клиента
|
||||||
|
|
||||||
1. **UDF Fancy `ib_Fansy`**: без неё не читаются `OD_DOCS`, `OD_BALANCES` и не ставятся процедуры (вычисляемые
|
1. **UDF Fancy `ib_Fansy`**: без неё не читаются `OD_DOCS`, `OD_BALANCES` и не ставятся процедуры (вычисляемые
|
||||||
|
|||||||
Reference in New Issue
Block a user