Функция КонтрольнаяСуммаИНН(n,inn)
Перем checksum[11];
checksum[1]=3;
checksum[2]=7;
checksum[3]=2;
checksum[4]=4;
checksum[5]=10;
checksum[6]=3;
checksum[7]=5;
checksum[8]=9;
checksum[9]=4;
checksum[10]=6;
checksum[11]=8;
s=0;
Для i=1 По n-1 Цикл
s=s+Число(Сред(inn,i,1))*checksum[12-n+i];
КонецЦикла;
Возврат s%11%10;
КонецФункции
//
Функция ПроверитьИНН(Знач inn)
inn=СокрЛП(Строка(inn));
len=СтрДлина(inn);
Если len=10 тогда
Если Число(Сред(inn,10,1))<>КонтрольнаяСуммаИНН(10,inn) тогда Возврат 0; КонецЕсли;
ИначеЕсли len=12 then
Если Число(Сред(inn,11,1))<>КонтрольнаяСуммаИНН(11,inn) тогда Возврат 0; КонецЕсли;
Если Число(Сред(inn,12,1))<>КонтрольнаяСуммаИНН(12,inn) тогда Возврат 0; КонецЕсли;
Иначе
Возврат 0;
КонецЕсли;
Возврат 1;
КонецФункции
//
Процедура Сформировать()
сообщить(ПроверитьИНН("5436100041")); // правильный - возвращает 1
сообщить(ПроверитьИНН("5436100042")); // неправильный - возвращает 0
КонецПроцедуры
Уведомления
Очистить все
Конфигурирование, программирование, администрирование, общие вопросы.
1
Записи
1
Пользователи
0
Likes
346
Просмотры
Создатель темы 13/02/2020 8:13 дп