HelpF.pro

Функция проверяет номер страхового свидетельства на соответствие требованиям ПФР

Проверка контрольного числа Страхового номера проводится только для номеров больше номера 001–001–998
Контрольное число Страхового номера рассчитывается следующим образом:
• каждая цифра Страхового номера умножается на номер своей позиции (позиции отсчитываются с конца)
• полученные произведения суммируются
• сумма делится на 101
• последние две цифры остатка от деления является Контрольным числом.
Например: Указан страховой номер 112–233–445 95
Проверяем правильность контрольного числа:
цифры номера 1 1 2 2 3 3 4 4 5
номер позиции 9 8 7 6 5 4 3 2 1
1х9+1х8+2х7+2х6+3х5+3х4+4х3+4х2+5х1=95
95 / !101! =95
Контрольное число=95 – указано верно
Некоторые частные случаи:
99 / !101! =99
100 / !101! =00
101 / !101! =00
102 / !101! =01
Код 1C v 8.х
 //Проверяет номер страхового свидетельства на соответствие требованиям ПФР
Функция СтраховойНомерПФРСоответствуетТребованиям(СтраховойНомер) Экспорт

Результат = Истина;

СтрокаЦифр=СтрЗаменить(Лев(СтраховойНомер,11),"-","");

Если ПустаяСтрока(СтрокаЦифр) Тогда
Возврат Ложь;
КонецЕсли;

Попытка
П1 = Число(СтрокаЦифр);
КонтрольноеЧисло=Число(Прав(СтраховойНомер,2));
Исключение
Возврат Ложь;
КонецПопытки;

Если Число(Лев(СтрокаЦифр,9)) > 1001998 Тогда
Всего=0;
Для Сч = 1 По 9 Цикл
Всего=Всего+Число(Сред(СтрокаЦифр,10-Сч,1))*Сч
КонецЦикла;
Остаток=Всего%101;
Остаток=?(Остаток=100,0,Остаток);
Если Остаток<>КонтрольноеЧисло Тогда
Результат = Ложь;
КонецЕсли;
КонецЕсли;

Возврат Результат;

КонецФункции

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq/view/1184.html