Расчет контрольной суммы снилс

Расчет контрольной суммы снилс

С помощью данного сервиса вы можете проверить правильность (корректность) страхового номера, а так же рассчитать контрольное число СНИЛС. Напоминаем что информация о состоянии лицевого счета и другие данные ЛС конфиденциальны и узнать их можно только в ПФР.

Проверка правильности страхового номера

Расчет контрольного числа страхового номера

Внимание! Будет произведен расчет контрольного числа из введенных вами цифр. Если вы ошибетесь, то получите неправильный СНИЛС.

Для расчета контрольной суммы введите первые 9 цифр СНИЛС

понедельник, 23 января 2017 г.

C#. Валидация номера СНИЛС и расчет его контрольной суммы

Данный функционал(с возможными незначительными изменениями) добавлен в библиотеку Net.KSUniLib с версии 1.0.3.38.

Namespace: KomeSoftUniCL.Tools
Class: KSNumberValidator

В базы данных операторами часто вводятся различные текстово-цифровые коды, номера и идентификаторы. Каждый номер или идентификатор, как правило, имеет в своем составе специальные контрольные разряды и алгоритмы проверки правильности ввода. С одним из таких алгоритмов мы сегодня и познакомимся. А проверять мы будем СНИЛС. Да-да, ту самую зеленую карточку, которая лежит у вас в паспорте. СНИЛС в России выступает аналогом карточки соцстрахования в Штатах.
Фактически СНИЛС представляет собой три группы по три цифры, и отдельную группу на два символа для контрольного числа. Контрольное число рассчитывается по следующему алгоритму:

0) Игнорируются все нецифровые символы.
1) Все цифры СНИЛС (т.е., 9 цифр основного номера без контрольного числа) умножаются на свою позицию в номере (Важно: позиции цифр рассчитываются как в числе, а не как в строке! Т.е., справа налево. Важно: счет позиций начинается с 1, а не с 0)
2) Произведения разрядов номера суммируются.
3) Если сумма меньше 100, она принимается за контрольную.
4) Если сумма — 100 или 101, то контрольной суммой становится ноль. В номере при этом записывается "00"
5) Если сумма больше 101, то она делится нацело на 101, а с остатком от деления повторяются шаги с 3 по 5.

Читайте также:  Печать несколько изображений на страницу

Дабы не реализовывать каждый раз функционал различных проверок, я создал в библиотеке специальный статический класс, и по мере сил и времени буду добавлять туда новые виды проверок. А на проверке номера СНИЛС и расчете его контрольной суммы мы сейчас остановимся поподробнее.

Итак, нам необходимы три метода: метод SNILSValidate(), возвращающий только true и false в зависимости от того, валидный ли номер или нет, метод SNILSContolCalc() , рассчитывающий и возвращающий контрольную сумму в виде числа и приватный метод SNILSCheckControlSum() , выполняющий указанные чуть выше шаги сравнения.
Реализуем SNILSValidate():

Логика метода проста. Метод получает строку, содержащую (предположительно) СНИЛС. Далее, с помощью KSStringProcessor.OnlyDigits(), мы очищаем входную строку от всего, кроме цифр, и проверяем ее длину. Если длина строки — 9 символов, то она является номером СНИЛС без контрольной суммы, если 11 — то приведен номер СНИЛС с контрольной суммой, а при любой другой длине строки метод выбрасывает исключение.
Итак, как мы видим, при длине строки в 9 символов для валидации нам достаточно просто рассчитать контрольную сумму. Если она рассчиталась, то номер мы считаем валидным.
При длине строки в 11 символов действия немного сложнее — необходимо запомнить последние два символа, рассчитать контрольную сумму для оставшихся 9 символов, а затем сравнить два значения. Если они равны, то номер валиден.
Теперь необходимо реализовать функционал расчета контрольной суммы:

Данный метод мы можем применять как вместе с предыдущим, так и независимо от него. Поэтому мы должны в него встроить не же проверки на длину строки. Далее, с помощью цикла for с двумя индексами i и j мы обходим посимвольно полученный 9-ти значный номер, и рассчитаем общую сумму разрядов.
Остался последний метод — SNILSCheckControlSum():

Метод определяет, в какой диапазон входит totalSum, и если она входит в третий диапазон — делит ее нацело на 101 и вызывает сама себя.

Читайте также:  Отдалась за 120 баксов

Результат: методы проверяют введенный номер СНИЛС на валидность и рассчитывают его контрольную сумму. Чуть позже будут так же написаны методы для проверки штрих-кодов EAN-8 и EAN-13, а также для ИНН и ОГРН.

Эта страница призвана помочь всем желающим быстро и надежно определять правильность данных (ИНН, ОКАТО, ОКПО, СНИЛС), а также видеть какие контрольные цифры должны быть в этих кодах, что бы он был правильным. Таким образом можно проверить ИНН, ОКАТО, СНИЛС организации или физического лица.

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

А теперь немного теории:

Расчет ИНН

Номера ИНН бывают 10-значные (1 контрольная цифра в конце) для юридических фирм

и 12-значные (2 контрольные цифры предпоследняя и последняя цифры) для физических лиц

ИНН юридического лица состоит из 10 последовательных цифр.

1-2: код субъекта Российской Федерации.

3-4: номер налоговой инспеции в субъекте РФ.

1-4: код налоговой инспекции по СОУН (Справочник кодов обозначения налоговых органов для целей учёта налогоплательщиков) осуществивщей регистрацию.

5-9: номер записи в территориальном разделе ЕГРН (Единый государственный реестр налогоплательщиков).

10: контрольная цифра.

ИНН физического лица состоит из 12 последовательных цифр.

1-2: код субъекта Российской Федерации.

3-4: номер налоговой инспеции в субъекте РФ.

1-4: код налоговой инспекции по СОУН осуществивщей регистрацию.

5-10: номер записи в территориальном разделе ЕГРН.

11-12: контрольные цифры.

Расчет ИНН, да и всех остальных кодов, проводится по весовым коэфициентам. То есть каждому разряду присваивается какой либо вес в виде определенного числа.

Например, если мы считаем, что разряд произвольного числа будем отсчитывать справа на налево, нумеруя каждую позицию от 1 и увеличивая каждый раз на единицу, то число 71692, можно представить как p1=2;p2=9;p3=6;p4=1;p5=7

Читайте также:  Как выбрать хорошую стиральную машину автомат

где pn -это номер позиции

Весовые коэфициенты vk для 10 значного ИНН будут такие v2=8;v3=6;v4=4;v5=9;v6=5;v7=3;v8=10;v9=4;v10=2

Тогда контрольная сумма, находящаяся на позиции vk1 рассчитывается по формуле

Контрольное число есть остаток от деления на 11 суммы из цифр номера, умноженных на соответствующие весовые коэффициенты. Если число равно 10, то контрольная сумма равна нулю.

Расчет контрольной суммы для 12-ти значного ИНН, немного сложнее, так как там две позиции содержат контрольные числа.

Весовые коэффициенты для 12-ти значного ИНН следующие:

v3=8;v4=6;v5=4;v6=9;v7=5;v8=3;v9=10;v10=4;v11=2;vk12=7

Контрольное число vk2 есть остаток от деления на 11 суммы из цифр номера, умноженных на соответствующие весовые коэффициенты. Если число равно 10, то контрольная сумма равна нулю.

v2=8;v3=6;v4=4;v5=9;v6=5;v7=3;v8=10;v9=4;v10=2;vk11=7;vk12=3

Контрольное число vk1 есть остаток от деления на 11 суммы из цифр номера, умноженных на соответствующие весовые коэффициенты. Если число равно 10, то контрольная сумма равна нулю.

Расчет СНИЛС

Страховой номер индивидуального лицевого счета страхового свидетельства обязательного пенсионного страхования(он же СНИЛС) проверяется на валидность контрольным числом. СНИЛС имеет вид: «XXX-XXX-XXX YY», где XXX-XXX-XXX — собственно номер, а YY — контрольное число. Алгоритм формирования контрольного числа СНИЛС таков:

1) Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001-001-998

2) Контрольное число СНИЛС рассчитывается следующим образом:

2.1) Каждая цифра СНИЛС умножается на номер своей позиции (позиции отсчитываются с конца)

2.2) Полученные произведения суммируются

2.3) Если сумма меньше 100, то контрольное число равно самой сумме

2.4) Если сумма равна 100 или 101, то контрольное число равно 00

2.5) Если сумма больше 101, то сумма делится по остатку на 101 и контрольное число определяется остатком от деления аналогично пунктам 2.3 и 2.4

Ссылка на основную публикацию
Пыль на экране телевизора
Мы зарегистрировали подозрительный трафик, исходящий из вашей сети. С помощью этой страницы мы сможем определить, что запросы отправляете именно вы,...
Программки для обработки фото
Несмотря на то что ни один графический редактор не способен превратить фотографию с огрехами композиции в шедевр, он может перевести...
Программное обеспечение для ноутбука acer
Небольшое введение Здесь вы найдете небольшой обзор нужных бесплатных программ для вашего ноутбука, нетбука или компьютера. Все представленные здесь программы...
Пьезоэлемент для ультразвуковой ванны
Наиболее дешевые и доступные УЗ-ванны — на 0.5 л с продолговатым баком, наподобие CT-400, AOYUE-9050, тысячи их. Бывают они в...
Adblock detector