Files
Bridge-and-Join-s/deploy/depo/fancy-m2m-firebird/test/stub_fancy.sql
T
fontvielle ee857b089a DEPO Firebird: проверка на реальной базе Fancy — генераторы, диалект 1, дата без времени
Обезличенная база Fancy (Firebird 2.5.9, диалект 1, кодировка NONE) с UDF ib_Fansy и штатными
триггерами: установка, HANDBOOK, поручения IN/OUT, события до BJ_EXECUTED, операции и проводки, ошибки.
- генераторы OD_DOCS_ID_GEN / OD_DOLS_ID_GEN (как в Fancy);
- COMMENT без кавычек: в диалекте 1 "..." — строка;
- FTV_M2M_DAY: дата без времени (в диалекте 1 CAST AS DATE время не отрезает);
- README: установка в WIN1251, что подтвердилось, что проверить у клиента (UDF, кодировщик M2M, оператор).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q7eREaYwUt1i4fNLZcGnjn
2026-10-27 17:31:29 +03:00

636 lines
15 KiB
SQL

CREATE TABLE D_CLISER_M2M (
"DOC" INTEGER,
"DEPONENT" INTEGER,
"B_DATE" TIMESTAMP,
"E_DATE" TIMESTAMP,
"DOC_GUID" VARCHAR(36),
"DOC_STATUS" INTEGER,
"IIS_TYPE" INTEGER,
"IIS_INN" VARCHAR(10),
"IIS_NUM" VARCHAR(64),
"IIS_DATE" TIMESTAMP);
CREATE TABLE D_CLISER_M2M_DOL (
"DOL" INTEGER,
"SHARE" INTEGER,
"AMOUNT" NUMERIC(18,7),
"CLIENT" INTEGER,
"SETTL" INTEGER,
"SETTL_ACCS" VARCHAR(255),
"PLACES" VARCHAR(255),
"ANSWER_ACC" INTEGER,
"M2M_STATUS" INTEGER,
"M2M_TEXT" VARCHAR(255),
"DEP_STATUS" INTEGER,
"DEP_TEXT" VARCHAR(255),
"DOL_REF" VARCHAR(36),
"G_SGD" INTEGER,
"PLACE" INTEGER);
CREATE TABLE D_FILER (
"DOC" INTEGER,
"COMMENT" VARCHAR(255),
"FILE_NAME" VARCHAR(255),
"MESS" BLOB SUB_TYPE TEXT,
"CORR_FACE" INTEGER,
"FAX_DATE" TIMESTAMP,
"ORI_DATE" TIMESTAMP,
"REP_DATE" TIMESTAMP,
"CORR_DATE" TIMESTAMP,
"CORR_NUM" VARCHAR(64),
"RUBRICA" INTEGER,
"DOC_NUM" VARCHAR(64),
"DOC_DATE" TIMESTAMP,
"CHILD_CAT" INTEGER,
"FUND" INTEGER,
"CORR_NAME" VARCHAR(255),
"STORED_IMAGE" BLOB,
"ACCOUNT" INTEGER,
"PLACE" INTEGER,
"FUND_NAME" VARCHAR(255),
"PASS_KIND" INTEGER);
CREATE TABLE OD_BALANCES (
"ID" INTEGER,
"ACC_PLAN" INTEGER,
"NAME" VARCHAR(255),
"IS_FICT" CHAR(1),
"IS_DIFF" CHAR(1),
"ACC_TYPE" INTEGER,
"REST_TYPE" INTEGER,
"RET_1" INTEGER,
"RET_2" INTEGER,
"RET_3" INTEGER,
"RET_4" INTEGER,
"RET_5" INTEGER,
"RET_6" INTEGER,
"COMM" BLOB SUB_TYPE TEXT,
"SYS_NAME" VARCHAR(24),
"PART" INTEGER,
"ISM_1" SMALLINT,
"ISM_2" SMALLINT,
"ISM_3" SMALLINT,
"ISM_4" SMALLINT,
"ISM_5" SMALLINT,
"ISM_6" SMALLINT,
"IS_BAL" SMALLINT,
"MAIN_REG" SMALLINT,
"IS_CUR" SMALLINT,
"IS_LF" SMALLINT,
"LEV_" INTEGER,
"OWNER_" INTEGER,
"WALK" INTEGER,
"AMOUNT" INTEGER,
"NUM" INTEGER,
"NUM_S" VARCHAR(255),
"AMOUNT_REG" SMALLINT,
"REVALUE_TYP" SMALLINT,
"REVALUE_ACC" INTEGER,
"REVALUE_ACD" INTEGER,
"PAIR_ACC" INTEGER,
"MASK_NAME" VARCHAR(255),
"MASK_NUM" VARCHAR(25),
"ISG_1" SMALLINT,
"ISG_2" SMALLINT,
"ISG_3" SMALLINT,
"ISG_4" SMALLINT,
"ISG_5" SMALLINT,
"ISG_6" SMALLINT,
"EXP_TYPE" INTEGER,
"NUM_1" INTEGER,
"IS_SYNT" INTEGER,
"NUM_2" INTEGER);
CREATE TABLE OD_CLIENTS (
"ID" INTEGER,
"NUMBER" VARCHAR(128),
"STATE" INTEGER,
"D_OPEN" TIMESTAMP,
"D_CLOSE" TIMESTAMP,
"FACE" INTEGER,
"PARENT" INTEGER,
"PLAN_ID" INTEGER,
"RELATION" INTEGER,
"OPER" INTEGER,
"R_DATE" TIMESTAMP,
"SUBTYPE" INTEGER,
"IS_TERM" CHAR(1),
"LEV" INTEGER,
"SELF_ID" INTEGER,
"NAME" VARCHAR(255),
"TYPE_" INTEGER,
"DD_DATE" TIMESTAMP,
"DD_NUM" VARCHAR(64),
"PLACE" INTEGER,
"ISSUER" INTEGER,
"IS_MANAGER" SMALLINT,
"IS_VOICE" SMALLINT,
"IS_PRIV" SMALLINT,
"IS_SOV" SMALLINT,
"BAL_ACC" INTEGER,
"IS_BCLIENT" SMALLINT,
"F_DATE" TIMESTAMP,
"TRANSIT" INTEGER,
"CLI_ORG" INTEGER,
"USER_CODE" VARCHAR(64),
"SEP_SET" INTEGER,
"E_OWNER" INTEGER,
"EDO_TYPE" SMALLINT,
"IS_MAIN" SMALLINT);
CREATE TABLE OD_CLIENTS_REC (
"ID" INTEGER,
"CLIENT" INTEGER,
"LINK_NUMBER" VARCHAR(64),
"INCOME_MOD" INTEGER,
"INCOME_ACC" INTEGER,
"INCOME_FACE" INTEGER,
"INCOME_ADR" VARCHAR(255),
"INCOME_REC" VARCHAR(255),
"INCOME_VERBAL" VARCHAR(4000),
"O_MAIL_MOD" INTEGER,
"O_MAIL_ADR" VARCHAR(255),
"I_MAIL_MOD" INTEGER,
"I_MAIL_ALT" INTEGER,
"I_MAIL_ADR" VARCHAR(255),
"B_DATE" TIMESTAMP,
"E_DATE" TIMESTAMP,
"OPER" INTEGER,
"IUD" INTEGER,
"TARIF" VARCHAR(64),
"EXTRA_INT" INTEGER,
"EXTRA_TYPE" INTEGER,
"IS_NZ" SMALLINT,
"Z_DATE" TIMESTAMP,
"Z_AMOUNT" NUMERIC(18,7),
"PORT_NAME" VARCHAR(255));
CREATE TABLE OD_DOC_CATS (
"ID" INTEGER,
"OWNER" INTEGER,
"LEV" INTEGER,
"AMOUNT" INTEGER,
"WALK" INTEGER,
"NAME" VARCHAR(128),
"D_MODE" SMALLINT,
"ADD_TABLE" VARCHAR(64),
"KEY_FIELD" VARCHAR(32),
"INFO_FIELDS" BLOB SUB_TYPE TEXT,
"EDITOR" VARCHAR(64),
"FORM_COMP" VARCHAR(32),
"SYS_NAME" VARCHAR(64),
"PROFILE" INTEGER,
"EDITOR_TYPE" SMALLINT,
"IS_ONCE" SMALLINT,
"FUN_FORM" VARCHAR(255),
"ADD_VIEW" VARCHAR(64),
"B_DATE" TIMESTAMP,
"IS_UNUM" SMALLINT,
"NUM_RULE" SMALLINT,
"FOOTER_VIEW" INTEGER,
"DEL_FUNC" BLOB SUB_TYPE TEXT,
"FOOT_STR" SMALLINT,
"FOOT_TABLE" VARCHAR(64),
"FOOT_FIELD" VARCHAR(64),
"C_MARK" VARCHAR(32),
"C_KIND" SMALLINT,
"UNUM_DIR" SMALLINT,
"FOOTERS" VARCHAR(1024),
"FOOT_COMP" VARCHAR(32),
"FOOT_DEL" SMALLINT,
"MD5_HASH" VARCHAR(32),
"MD5_STAMP" TIMESTAMP,
"IS_TERM" VARCHAR(1),
"IS_AUTO" INTEGER,
"MIN_VERSION" VARCHAR(10));
CREATE TABLE OD_DOC_STATES (
"ID" INTEGER,
"D_CAT" INTEGER,
"IS_IN" CHAR(1),
"IS_OUT" CHAR(1),
"NAME" VARCHAR(128),
"SYS_NAME" VARCHAR(64),
"PROFILE" INTEGER);
CREATE TABLE OD_DOCS (
"ID" INTEGER,
"NUM" VARCHAR(64),
"OPER" INTEGER,
"R_DATE" TIMESTAMP,
"D_CAT" INTEGER,
"D_DATE" TIMESTAMP,
"PROC_DATE" TIMESTAMP,
"DIRECTION" INTEGER,
"WHOS" INTEGER,
"PARAM" INTEGER,
"KVIT" INTEGER,
"U_FLAG" INTEGER,
"A_FLAG" INTEGER,
"STATE" INTEGER,
"LAST_STEP" INTEGER,
"ERR_CODE" INTEGER,
"CREATOR" INTEGER,
"SECURITY" VARCHAR(255),
"IMAGEFILE" VARCHAR(1024),
"INTNUM" INTEGER,
"NUMSFX" VARCHAR(255),
"NUM_DATE" VARCHAR(78),
"D_MONTH" INTEGER,
"D_YEAR" INTEGER,
"D_DAY" TIMESTAMP);
CREATE TABLE OD_DOLS (
"ID" INTEGER,
"DOC" INTEGER,
"NUM" INTEGER,
"TAG" INTEGER,
"NUM_1" INTEGER,
"NUM_2" INTEGER,
"IS_TERM" CHAR(1),
"FOOTER" INTEGER,
"STATUS" INTEGER);
CREATE TABLE OD_FACE_CODERS (
"CODER" INTEGER,
"CODE" VARCHAR(64),
"FACE" INTEGER);
CREATE TABLE OD_FACES (
"ID" INTEGER,
"S_TYPE" INTEGER,
"NAME" VARCHAR(255),
"MAIL_ADR" VARCHAR(255),
"HOME_ADR" VARCHAR(255),
"FACT_ADR" VARCHAR(255),
"HOME_KLADR" VARCHAR(255),
"MAIL_KLADR" VARCHAR(255),
"FACT_KLADR" VARCHAR(255),
"EMAIL" VARCHAR(255),
"FAX" VARCHAR(64),
"DATE_DEPTH" TIMESTAMP,
"TELEX" VARCHAR(255),
"INN" VARCHAR(15),
"KPP" VARCHAR(9),
"PHONE" VARCHAR(64),
"DOC_TYPE" INTEGER,
"DOC_SER" VARCHAR(25),
"DOC_NUM" VARCHAR(20),
"DOC_DAT" TIMESTAMP,
"DOC_PLACE" VARCHAR(255),
"DOC_CODE" VARCHAR(128),
"DOC_END" TIMESTAMP,
"DATE_BIRTH" TIMESTAMP,
"SELF_ID" INTEGER,
"B_DATE" TIMESTAMP,
"E_DATE" TIMESTAMP,
"OPER" INTEGER,
"UPTYPE" SMALLINT,
"PROFILE" INTEGER,
"LAST_FLAG" SMALLINT,
"STATE" CHAR(3),
"MNEM" VARCHAR(64),
"REGN" INTEGER,
"BRANCHES" INTEGER,
"NORM_NAME" VARCHAR(255),
"ENG_NAME" VARCHAR(255),
"ENG_MAIL_ADR" VARCHAR(255),
"IMAGEFILE" VARCHAR(255),
"IS_NERES" SMALLINT,
"TAXIS" VARCHAR(64),
"TIN" VARCHAR(24));
CREATE TABLE OD_IN_DOCS (
"DOC" INTEGER,
"FROM_FACE" INTEGER,
"THEIR_DATE" TIMESTAMP,
"I_NUM" VARCHAR(64),
"OUR_O_DOC" INTEGER,
"FILE_NAME" VARCHAR(128),
"THEIR_NUM" VARCHAR(80),
"CODER" INTEGER,
"PASS_KIND" INTEGER);
CREATE TABLE OD_INVALIDS (
"DOC" INTEGER,
"DOL" INTEGER,
"STATUS" INTEGER,
"COMMENT" VARCHAR(255),
"DO_ING" VARCHAR(255));
CREATE TABLE OD_OBJECTS (
"ID" INTEGER,
"DMY" CHAR(1));
CREATE TABLE OD_OUT_DOCS (
"DOC" INTEGER,
"TO_FACE" INTEGER,
"O_NUM" VARCHAR(64),
"OUR_I_DOC" INTEGER,
"FILE_NAME" VARCHAR(128),
"PASS_KIND" INTEGER);
CREATE TABLE OD_SHARES (
"ID" INTEGER,
"MNEM" VARCHAR(255),
"BIRTHDATE" TIMESTAMP,
"DEATHDATE" TIMESTAMP,
"CLASS" INTEGER,
"MODE" INTEGER,
"ISSUER" INTEGER,
"NOMINAL" DOUBLE PRECISION,
"NOM_VAL" INTEGER,
"NOM_TYPE" SMALLINT,
"ISNUM" CHAR(1),
"NUM_REG" VARCHAR(124),
"ORG_REG" INTEGER,
"COUNT_" NUMERIC(18,0),
"ISSUENUM" INTEGER,
"LINK" INTEGER,
"TYPE_" INTEGER,
"IS_MARGIN" SMALLINT,
"IS_MCS" SMALLINT,
"STATUS" SMALLINT,
"DATE_REG" TIMESTAMP,
"PMFU" SMALLINT,
"SELF_ID" INTEGER,
"B_DATE" TIMESTAMP,
"E_DATE" TIMESTAMP,
"REP_DATE" TIMESTAMP,
"R_DATE" TIMESTAMP,
"R_COMMENT" VARCHAR(255),
"OPER" INTEGER);
CREATE TABLE OD_STEP_TYPES (
"ID" INTEGER,
"NAME" VARCHAR(200),
"IN_STATE" INTEGER,
"OUT_STATE" INTEGER,
"COND" BLOB SUB_TYPE TEXT,
"BODY" BLOB SUB_TYPE TEXT,
"D_CAT" INTEGER,
"A_CAT" INTEGER,
"SYS_NAME" VARCHAR(64),
"HINT" VARCHAR(255),
"ROLLBACK_" BLOB SUB_TYPE TEXT,
"ALT_STATE" INTEGER,
"IMPORTANCE" SMALLINT,
"MD5_HASH" VARCHAR(32),
"MD5_STAMP" TIMESTAMP);
CREATE TABLE OD_STEPS (
"ID" INTEGER,
"DOC" INTEGER,
"A_DOC" INTEGER,
"S_TYPE" INTEGER,
"S_DATE" TIMESTAMP,
"ERR_CODE" INTEGER,
"NUM" INTEGER,
"OPER" INTEGER,
"OUT_STATE" INTEGER);
CREATE TABLE OD_SYS_TABS (
"NUM" INTEGER,
"CODE" VARCHAR(24),
"NAME" VARCHAR(255),
"DOP" VARCHAR(255),
"ALT" VARCHAR(255),
"EXT" VARCHAR(255));
CREATE TABLE OD_U_FACES (
"FACE" INTEGER,
"OKPO" VARCHAR(64),
"OKONX" VARCHAR(64),
"DOL_1" VARCHAR(255),
"DOL_2" VARCHAR(255),
"DOL_OTV" VARCHAR(255),
"FIO_1" VARCHAR(64),
"FIO_2" VARCHAR(64),
"FIO_OTV" VARCHAR(64),
"FIO_BUG" VARCHAR(64),
"TEL_1" VARCHAR(24),
"TEL_2" VARCHAR(24),
"TEL_OTV" VARCHAR(24),
"TEL_BUG" VARCHAR(24),
"OSN_1" VARCHAR(64),
"OSN_2" VARCHAR(64),
"OPF" VARCHAR(10),
"CAPITAL" NUMERIC(18,7),
"REESTR" INTEGER,
"DEPOT" INTEGER,
"DEP_NUM" VARCHAR(20),
"DEP_DAT" TIMESTAMP,
"UPTYPE" SMALLINT,
"FS" INTEGER,
"OGRN" VARCHAR(24),
"OGRN_DATE" TIMESTAMP,
"OGRN_PLACE" VARCHAR(255),
"OKOGU" VARCHAR(24),
"OKATO" VARCHAR(24),
"FULL_NAME" VARCHAR(255),
"ENG_FULL_NAME" VARCHAR(255),
"EXEC_ORGAN" INTEGER,
"NAL_ORGAN" INTEGER,
"ENSURNUM" VARCHAR(10));
CREATE TABLE OD_VALUE_CODERS (
"CODER" INTEGER,
"CODE" VARCHAR(64),
"LOT_SIZE" INTEGER,
"SHARE" INTEGER,
"IND_CODE" VARCHAR(64),
"CODE_NAME" VARCHAR(255));
CREATE TABLE OD_VALUES (
"ID" INTEGER,
"SYSNAME" VARCHAR(64),
"NAME" VARCHAR(255),
"V_TYPE" INTEGER,
"B_DATE" TIMESTAMP,
"ISIN" VARCHAR(12),
"MFU" SMALLINT,
"IS_IN" SMALLINT,
"CFI" CHAR(6),
"BASE_VAL" INTEGER);
CREATE TABLE OD_WIRING (
"ID" INTEGER,
"PLAN_ID" INTEGER,
"WIRDATE" TIMESTAMP,
"NAME" VARCHAR(255),
"COMMENT" VARCHAR(255),
"D_REST" INTEGER,
"K_REST" INTEGER,
"EQ_" NUMERIC(18,7),
"O_STEP" INTEGER,
"CHANGED_BY" INTEGER,
"IS_PLAN" CHAR(1),
"BLANKS" BLOB SUB_TYPE TEXT,
"DOL" INTEGER,
"LINK" INTEGER,
"TAG" INTEGER,
"D_SUMMA" NUMERIC(18,7),
"K_SUMMA" NUMERIC(18,7),
"D_AMOUNT" NUMERIC(18,7),
"K_AMOUNT" NUMERIC(18,7));
CREATE TABLE OD_OPERATORS (
"ID" INTEGER,
"USER_ID" VARCHAR(24),
"NAME" VARCHAR(128),
"DEP" INTEGER,
"COMM" BLOB SUB_TYPE TEXT,
"U_FACE" INTEGER,
"PLAN_ID" INTEGER,
"F_FACE" INTEGER,
"IS_ENCRYPT" SMALLINT,
"IS_DISPERS" SMALLINT,
"IS_MONITOR" SMALLINT,
"USER_DOL" VARCHAR(255),
"USER_CODE" VARCHAR(64),
"SMTP_PARAM" VARCHAR(255),
"QUIK_CODE" VARCHAR(255),
"PROXY_PARAM" VARCHAR(255),
"EVENT_MAIL" VARCHAR(255),
"IS_ONE" SMALLINT,
"BLOCK_DATE" TIMESTAMP,
"PASS_DAYS" INTEGER,
"LOGIO_DATE" TIMESTAMP,
"B_DATE" TIMESTAMP,
"E_DATE" TIMESTAMP,
"IS_ROBOT" SMALLINT,
"EMAIL" VARCHAR(255));
CREATE TABLE OD_SETS (
"WHOS" INTEGER,
"PROFIT_TYPE" INTEGER,
"PROFIT_MODE" INTEGER,
"WIRING_MODE" INTEGER,
"IS_RED_SALDO" SMALLINT,
"SAVE_MODE" INTEGER,
"IS_PLACED" SMALLINT,
"TAX_CODE" VARCHAR(9),
"CASHIER" VARCHAR(64),
"REPORTER" VARCHAR(255),
"DOL_REPORTER" VARCHAR(255),
"LABEL_FILENAME" VARCHAR(255),
"TAX_ORG" VARCHAR(255),
"NDS_RATE" NUMERIC(18,7),
"IS_NDS" SMALLINT,
"IS_BOOK" SMALLINT,
"A_MODE" SMALLINT,
"O_MODE" SMALLINT,
"STOP_DATE" TIMESTAMP,
"A_RATER" INTEGER,
"O_RATER" INTEGER,
"IS_RED_STORNO" SMALLINT,
"IS_TEST" SMALLINT);
CREATE TABLE U_OP_INV_SPIS (
"DOC" INTEGER,
"DEPO" INTEGER,
"AMOUNT" NUMERIC(18,7),
"BLANKS" VARCHAR(255),
"B_TYPE" INTEGER,
"B_DATE" TIMESTAMP,
"B_NUM" VARCHAR(255),
"DD_DATE" TIMESTAMP,
"DD_NUM" VARCHAR(255),
"MARKET" INTEGER,
"D_NUM" INTEGER,
"K_NUM" INTEGER,
"PLACE" INTEGER,
"SHARE" INTEGER,
"DD_TYPE" INTEGER,
"TAX_R" NUMERIC(18,7),
"IS_98053" SMALLINT,
"IS_REG" SMALLINT,
"IS_BLOCK" SMALLINT,
"COMMENT" VARCHAR(255),
"FROM_FACE" INTEGER,
"WIR_DATE" TIMESTAMP,
"REG_DATE" TIMESTAMP,
"NOTIFY_DATE" TIMESTAMP,
"REJECT_REASON" VARCHAR(255),
"REESTR" INTEGER,
"OLD_CONDITIONS" INTEGER);
CREATE TABLE U_OP_INV_ZACH (
"DOC" INTEGER,
"DEPO" INTEGER,
"SHARE" INTEGER,
"AMOUNT" NUMERIC(18,7),
"BLANKS" VARCHAR(255),
"B_TYPE" INTEGER,
"B_DATE" TIMESTAMP,
"B_NUM" VARCHAR(255),
"DD_TYPE" INTEGER,
"DD_DATE" TIMESTAMP,
"DD_NUM" VARCHAR(255),
"MARKET" INTEGER,
"D_NUM" INTEGER,
"K_NUM" INTEGER,
"PLACE" INTEGER,
"TAX_R" NUMERIC(18,7),
"IS_98053" SMALLINT,
"IS_REG" SMALLINT,
"IS_BLOCK" SMALLINT,
"COMMENT" VARCHAR(255),
"FROM_FACE" INTEGER,
"WIR_DATE" TIMESTAMP,
"REG_DATE" TIMESTAMP,
"NOTIFY_DATE" TIMESTAMP,
"REJECT_REASON" VARCHAR(255),
"REESTR" INTEGER,
"CONDITION" INTEGER);
CREATE GENERATOR OD_DOCS_ID_GEN;
SET GENERATOR OD_DOCS_ID_GEN TO 1000;
CREATE GENERATOR OD_DOLS_ID_GEN;
SET GENERATOR OD_DOLS_ID_GEN TO 1000;
CREATE GENERATOR OD_STEPS_ID_GEN;
SET GENERATOR OD_STEPS_ID_GEN TO 1000;
CREATE GENERATOR OD_FACES_ID_GEN;
SET GENERATOR OD_FACES_ID_GEN TO 1000;
SET TERM ^ ;
CREATE PROCEDURE FU_NEXT_DOC_NUM (CAT_SYS_NAME VARCHAR(64), D_DATE TIMESTAMP, DIRECTION SMALLINT, FOR_DOC INTEGER)
RETURNS (NUM VARCHAR(255), NEW_DATE TIMESTAMP) AS
BEGIN
NUM = 'N' || COALESCE(FOR_DOC, 0); NEW_DATE = D_DATE;
END^
CREATE PROCEDURE OD_PR_INS_WIRS (WIR_ID INTEGER, PLAN_ID INTEGER, WIRDATE TIMESTAMP, NAME VARCHAR(255), "COMMENT" VARCHAR(255),
D_SUMMA DOUBLE PRECISION, K_SUMMA DOUBLE PRECISION, EQ_ DOUBLE PRECISION, D_AMOUNT DOUBLE PRECISION, K_AMOUNT DOUBLE PRECISION,
BLANKS VARCHAR(2000), O_STEP INTEGER, DOL INTEGER, CHANGED_BY INTEGER, IS_PLAN CHAR(1),
D_BAL_ACC INTEGER, D_VALUE INTEGER, D_REG_1 INTEGER, D_REG_2 INTEGER, D_REG_3 INTEGER, D_REG_4 INTEGER, D_REG_5 INTEGER, D_REG_6 INTEGER,
K_BAL_ACC INTEGER, K_VALUE INTEGER, K_REG_1 INTEGER, K_REG_2 INTEGER, K_REG_3 INTEGER, K_REG_4 INTEGER, K_REG_5 INTEGER, K_REG_6 INTEGER)
RETURNS (NEW_ID INTEGER, WIR_LIST VARCHAR(255), DEB_ID INTEGER, KRD_ID INTEGER) AS
DECLARE VARIABLE R INTEGER;
BEGIN
NEW_ID = 1; WIR_LIST = ''; DEB_ID = 0; KRD_ID = 0;
R = RDB$SET_CONTEXT('USER_TRANSACTION', 'STUB_WIRS', 'D' || D_BAL_ACC || ' K' || K_BAL_ACC || ' ' || D_SUMMA || ' ' || NAME || ' / ' || "COMMENT");
END^
SET TERM ; ^
SET TERM ^ ;
/* как Fancy OD_DOCS_BU: ID = 0 в UPDATE — служебное изменение, ID остаётся прежним */
CREATE TRIGGER OD_DOCS_BU FOR OD_DOCS ACTIVE BEFORE UPDATE AS
BEGIN
IF (NEW.ID = 0 OR NEW.ID IS NULL) THEN NEW.ID = OLD.ID;
END^
/* версия юрлица: SELF_ID = ID, действующая */
CREATE TRIGGER OD_FACES_BI FOR OD_FACES ACTIVE BEFORE INSERT AS
BEGIN
IF (NEW.SELF_ID IS NULL) THEN NEW.SELF_ID = NEW.ID;
IF (NEW.LAST_FLAG IS NULL) THEN NEW.LAST_FLAG = 1;
IF (NEW.E_DATE IS NULL) THEN NEW.E_DATE = '9999-01-01';
END^
SET TERM ; ^