JulianTroy
Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Цитата: Функция ИННСоответствуетТребованиям(Знач ИНН, ВладелецИНН) Экспорт ИНН = СокрЛП(ИНН); ДлинаИНН = СтрДлина(ИНН); Если НЕ (ТолькоЦифрыВСтроке(ИНН)) и ВладелецИНН = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда Возврат Ложь; ИначеЕсли ТолькоЦифрыВСтроке(ИНН) и ВладелецИНН = Перечисления.ЮрФизЛицо.ФизЛицо Тогда Возврат Ложь; КонецЕсли; Если ДлинаИНН = 9 и ВладелецИНН = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда КонтрольнаяСумма = 0; Для Н = 1 По 8 Цикл Если Н = 1 Тогда Множитель = 29; ИначеЕсли Н = 2 Тогда Множитель = 23; ИначеЕсли Н = 3 Тогда Множитель = 19; ИначеЕсли Н = 4 Тогда Множитель = 17; ИначеЕсли Н = 5 Тогда Множитель = 13; ИначеЕсли Н = 6 Тогда Множитель = 7; ИначеЕсли Н = 7 Тогда Множитель = 5; ИначеЕсли Н = 8 Тогда Множитель = 3; КонецЕсли; Цифра = Число(Сред(ИНН,Н,1)); КонтрольнаяСумма = КонтрольнаяСумма + Цифра * Множитель; КонецЦикла; КонтрольныйРазряд = (КонтрольнаяСумма %11); Если КонтрольныйРазряд <> Число(Сред(ИНН,9,1))или КонтрольныйРазряд = 10 Тогда Возврат Истина; КонецЕсли; ИначеЕсли ДлинаИНН =9 и ВладелецИНН = Перечисления.ЮрФизЛицо.ФизЛицо Тогда КонтрольнаяСумма = 0; Для Н = 1 По 8 Цикл Если Н = 1 Тогда Множитель = 29; Буква = Сред(ИНН,Н,1); Если Буква = "А" Тогда Цифра = 10; ИначеЕсли Буква = "В" Тогда Цифра = 11; ИначеЕсли Буква = "С" Тогда Цифра = 12; ИначеЕсли Буква = "Е" Тогда Цифра = 14; ИначеЕсли Буква = "Н" Тогда Цифра = 17; ИначеЕсли Буква = "К" Тогда Цифра = 20; ИначеЕсли Буква = "М" Тогда Цифра = 22; Иначе Возврат Ложь; КонецЕсли; ИначеЕсли Н = 2 Тогда Множитель = 23; Буква = Сред(ИНН,Н,1); Если Буква = "А" Тогда Цифра = 0; ИначеЕсли Буква = "В" Тогда Цифра = 1; ИначеЕсли Буква = "С" Тогда Цифра = 2; ИначеЕсли Буква = "Е" Тогда Цифра = 3; ИначеЕсли Буква = "Н" Тогда Цифра = 4; ИначеЕсли Буква = "К" Тогда Цифра = 5; ИначеЕсли Буква = "М" Тогда Цифра = 6; ИначеЕсли Буква = "О" Тогда Цифра = 7; ИначеЕсли Буква = "Р" Тогда Цифра = 8; ИначеЕсли Буква = "Т" Тогда Цифра = 9; Иначе Возврат Ложь; КонецЕсли; ИначеЕсли Н = 3 Тогда Множитель = 19; Цифра = Число(Сред(ИНН,Н,1)); ИначеЕсли Н = 4 Тогда Множитель = 17; Цифра = Число(Сред(ИНН,Н,1)); ИначеЕсли Н = 5 Тогда Множитель = 13; Цифра = Число(Сред(ИНН,Н,1)); ИначеЕсли Н = 6 Тогда Множитель = 7; Цифра = Число(Сред(ИНН,Н,1)); ИначеЕсли Н = 7 Тогда Множитель = 5; Цифра = Число(Сред(ИНН,Н,1)); ИначеЕсли Н = 8 Тогда Множитель = 3; Цифра = Число(Сред(ИНН,Н,1)); КонецЕсли; КонтрольнаяСумма = КонтрольнаяСумма + Цифра * Множитель; КонецЦикла; КонтрольныйРазряд = (КонтрольнаяСумма %11); Если КонтрольныйРазряд <> Число(Сред(ИНН,9,1))или КонтрольныйРазряд = 10 Тогда Возврат Ложь; КонецЕсли; Иначе Возврат Ложь; КонецЕсли; Возврат Истина; КонецФункции | Включаем возможность редактирования Конфигруции: Конфигурация >> Поддержка >> Настройка поддержки > Разрешить изменения 1. При помощи отладчика ловим функцию проверки ИНН (УНП). 2. Изменяем в ней всего одно значение. 3. Сохраняем изменения. 4. Готово! | Всего записей: 297 | Зарегистр. 17-04-2010 | Отправлено: 21:00 28-09-2011 | Исправлено: JulianTroy, 12:53 29-09-2011 |
|