РАСЧЕТ КОНТРОЛЬНЫХ КЛЮЧЕЙ
РАСЧЕТ КОНТРОЛЬНОГО КЛЮЧА СЧЕТА
Ключом счета является 9 символ в его номере. Значение ключа высчитывается на основе самого счета и БИКа банка, в котором данный счет открыт. Таким образом, некорректность ключа в счете свидетельствует о том, что такой счет в указанном банке (БИК) открыт быть не может.
Алгоритм расчета ключа счета различается для расчетного счета и счета РКЦ (например, кор. счета). Алгоритм расчета описан в "Порядок расчета контрольного ключа в номере лицевого счета" (утв. Банком России 08.09.1997 N 515)
Для расчета ключа счета в АБС Бисквит используется процедура key-tst.p.
key-tst.p (acct, BIC, OUTPUT key).
- acct - счет, тип CHARACTER;
- BIC - БИК банка, тип CHARACTER;
- key - Ключ счета, тип INT64.
Пример:
DEF VAR vAcct AS CHAR INIT "40817810000001000001" NO-UNDO.
DEF VAR vBIC AS CHAR INIT "043886777" NO-UNDO.
DEF VAR vKey AS INT64 NO-UNDO.
RUN key-tst.p (vAcct, vBIC, OUTPUT vKey).
DISPL vKey.
РАСЧЕТ КОНТРОЛЬНОГО ЧИСЛА ИНН
Контрольным числом ИНН является последний символ в номере ИНН для юридических лиц и два последних символа для физических лиц
Подробно, алгоритм формирования ИНН описан в Приказе МНС РФ от 03.03.2004 N БГ-3-09/178 "Об утверждении порядка и условий присвоения, применения, а также изменения Идентификационного Номера Налогоплательщика и форм документов, используемых при постановке на учет, снятии с учета юридических и физических лиц" (Зарегистрировано в Минюсте РФ 24.03.2004 N 5685)
Для расчета контрольного числа в АБС используется функция fValidInnSignature описанная в инклюд-файле innchk.i. Данная функция возвращает логическое значение, тип LOGICAL, соответствующее корректности указанного в качестве входного параметра ИНН.
fValidInnSignature(INN, OUTPUT keyVariable).
- INN - проверяемое ИНН, тип CHARACTER;
- keyVariable - идентификатор переменной для возврата корректного ключа ИНН, тип CHARACTER.
Пример:
{innchk.i}
DEF VAR lINN AS LOGICAL NO-UNDO.
DEF VAR vKey AS CHARACTER NO-UNDO.
DEF VAR vINN AS CHARACTER INIT "123456789012" NO-UNDO.
lINN = fValidInnSignature(vINN, OUTPUT vKey).
IF lINN THEN DISPLAY "ИНН КОРРЕКТЕН".
ELSE DISPLAY "ПОСЛЕДНИЕ ЦИФРЫ ИНН ДОЛЖНЫ БЫТЬ " vKey.