Алгоритм проверки ОКПО и других номеров статистики

Продолжая тему расчёта контрольных сумм для регистрационных номеров, рассмотрим проверку номеров из органов статистики на примере ОКПО. Алгоритм проверки ОКПО и других номеров статистики довольно прост.

Как и в случае с другими номерами, последняя цифра в номере является контрольной. Алгоритм проверки ОКПО разбивается на несколько простых этапов:

  • каждому разряду в номере до крайнего правого присваивается значение, соответствующее порядковому номеру. Если порядковый номер больше 10 — отсчёт снова начинается с начального значения;
  • каждая цифра в номере перемножается с соответствующим коэффициентом;
  • подсчитывается сумма;
  • ищется остаток от деления на 11 — остаток должен быть равен последней цифре в номере.

В случае, когда остаток от деления равен 10, придётся проделать всё заново, но сдвинуть точку отсчёта порядковых номеров на 2. То есть у первого разряда коэффициент будет равен 3, у второго 4 и т.д., но при этом крайним значением также будет 10. Например, для номеров длиной в 10 символов будет ряд 3, 4, … 10, 1, 2. Если после повторения всех операций со сдвигом остаток снова равен 10 — контрольное число сравнивают с нулём.

Хорошее описание алгоритма проверки ОКПО или проверки ОКАТО с примерами можно найти на Википедии.

Алгоритм проверки ОКПО не сложен и в реализации. В качестве примера можно рассмотреть код на python:

Во внутренней функции okpo_csum() подсчитывается контрольное число. В переменной k хранится список используемых коэффициентов. Вторая часть с разностью нужна для случаев, когда длина номера превышает 10 символов). Переменная step отражает сдвиг для коэффициентов.

Важно отметить, что в случае с ОКПО номер для ЮЛ должен состоять из 8 цифр, а для ИП из 10. Поэтому перед проверкой номера не забывайте добавлять лидирующие нули. Например, ОКПО ИП — 148543122, а для проверки номера нужно передавать 0148543122.

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

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

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