Функция ОстатокОтДеления(Делимое, Делитель);
Возврат Делимое - Делитель * Цел(Делимое / Делитель);
КонецФункции
Процедура ПроверкаИНН(ВходИНН)
Перем МассИНН[12];
Перем ДляРасчета[11];
Перем Сумма_;
Перем Остаток;
Перем Флаг;
Флаг = 0;
Для Сч = 1 По 12 Цикл
МассИНН[Сч] = 0;
Если Сч < 12 Тогда
ДляРасчета[Сч] = 0;
КонецЕсли;
МассИНН[Сч] = Число(Сред(ВходИНН, Сч, 1));
КонецЦикла;
ДляРасчета[1] = МассИНН[1] * 7;
ДляРасчета[2] = МассИНН[2] * 2;
ДляРасчета[3] = МассИНН[3] * 4;
ДляРасчета[4] = МассИНН[4] * 10;
ДляРасчета[5] = МассИНН[5] * 3;
ДляРасчета[6] = МассИНН[6] * 5;
ДляРасчета[7] = МассИНН[7] * 9;
ДляРасчета[8] = МассИНН[8] * 4;
ДляРасчета[9] = МассИНН[9] * 6;
ДляРасчета[10] = МассИНН[10] * 8;
Сумма_ = 0;
Для Сч = 1 По 10 Цикл
Сумма_ = Сумма_ + ДляРасчета[Сч];
КонецЦикла;
Остаток = ОстатокОтДеления(Сумма_, 11);
Если Остаток = 10 Тогда
Остаток = 0;
КонецЕсли;
Если Остаток = МассИНН[11] Тогда
Флаг = 1;
Иначе
Сообщить("ИНН не верен! Исправьте! (первая контрольная цифра не верна)");
Возврат ;
КонецЕсли;
Если Флаг = 1 Тогда
ДляРасчета[1] = МассИНН[1] * 3;
ДляРасчета[2] = МассИНН[2] * 7;
ДляРасчета[3] = МассИНН[3] * 2;
ДляРасчета[4] = МассИНН[4] * 4;
ДляРасчета[5] = МассИНН[5] * 10;
ДляРасчета[6] = МассИНН[6] * 3;
ДляРасчета[7] = МассИНН[7] * 5;
ДляРасчета[8] = МассИНН[8] * 9;
ДляРасчета[9] = МассИНН[9] * 4;
ДляРасчета[10] = МассИНН[10] * 6;
ДляРасчета[11] = МассИНН[11] * 8;
Сумма_ = 0;
Для Сч = 1 По 11 Цикл
Сумма_ = Сумма_ + ДляРасчета[Сч];
КонецЦикла;
Остаток = ОстатокОтДеления(Сумма_, 11);
Если Остаток = 10 Тогда
Остаток = 0;
КонецЕсли;
Если Остаток = МассИНН[12] Тогда
Предупреждение("ИНН верен!");
Иначе
Сообщить("ИНН не верен! Исправьте! (вторая контрольная цифра не верна)");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Проверка ИНН Сотрудников России
24.02.10
Проверка ИНН Сотрудников