Алгоритм проверки ОГРН

В продолжение начатой темы проверки правильности номеров рассмотрим алгоритм проверки ОГРН. Основной государственный регистрационный номер так же используется во многих документах и отчётах, поэтому проверка правильности ввода может пригодиться.

Различия ОГРНИП и ОГРНЮЛ заключается в длине номеров: у ИП 15 знаков, у ЮЛ 13 знаков. В Википедии есть информация про ОГРНИП и ОГРНЮЛ с разъяснениями значений номеров в составе ОГРН.

Контрольным в обоих случаях является последний знак. В зависимости от длины номера определяется делитель:

  • 11 для 13-значного ОГРНЮЛ;
  • 13 для 15-значного ОГРНИП.

Алгоритм проверки ОГРН предельно прост: число, предшествующее контрольному, делится с остатком на соответствующий делитель. Полученный остаток должен быть равен последней цифре в номере. Если остаток от деления равняется 10, последняя цифра в номере должна равняться нулю.

Рассмотрим алгоритм проверки ОГРН на примере реализации на python:

На входе функция получает номер в строковом представлении. Если длина номера отлична от 13 или 15 — номер неверный. Вычисление контрольной суммы занимает всего одну строку — берётся число до предпоследнего символа в ОГРН и поочерёдно с остатком делится на соответствующий делитель и на 10, чтобы учесть случаи, когда остаток равен 10.

Как видно, алгоритм проверки ОГРН намного проще, чем алгоритм проверки ИНН, но проверять правильность ввода этого часто используемого реквизита   так же стоит.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *