Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » 1С:Предприятие

Модерирует : gyra, Maz

gyra (14-12-2016 12:19): 1С:Предприятие  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

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
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » 1С:Предприятие
gyra (14-12-2016 12:19): 1С:Предприятие


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru