ПроверитьКорреспондентскийСчет

  оглавление  СоздатьСтраницуНаФорме

ПроверитьСНИЛС (1С 8.3, 8.2)

Функция проверяет на корректность страховой номер индивидуального лицевого счета (СНИЛС) в формате "ХХХ-ХХХ-ХХХ ХХ".

Функция ПроверитьСНИЛС(Знач Значение) Экспорт
 
    СНИЛС = СокрЛП(Значение); /// ААА-БББ-ВВВ ГГ
 
    Если СтрДлина(СНИЛС) <> 14 Тогда
        Возврат Ложь;
    КонецЕсли;
 
    ГГ = СокрЛП(Прав(СНИЛС, 2));
 
    Если СтрДлина(ГГ) <> 2 Тогда
        Возврат Ложь;
    КонецЕсли;
 
    Если Не ПопыткаПеревестиВЧисло(ГГ) Тогда
        Возврат Ложь;
    КонецЕсли;
 
    КонтрольноеЧисло = Число(ГГ);
 
    АБВ = Лев(СНИЛС, 11);
    Части = РазложитьСтрокуВМассивПодстрок(АБВ, "-");
    Если Части.Количество() <> 3 Тогда
        Возврат Ложь;
    КонецЕсли;
 
    Код = "";
    Для Каждого Часть Из Части Цикл
        Часть = СокрЛП(Часть);
        Если СтрДлина(Часть) <> 3 Тогда
            Возврат Ложь;
        КонецЕсли;
 
        Если Не ПопыткаПеревестиВЧисло(Часть) Тогда
            Возврат Ложь;
        КонецЕсли;
 
        Код = Код + Часть;
    КонецЦикла;
 
    КонтрольнаяСумма = 0;
    Для А = 1 По 9 Цикл
        Число = Число(Сред(Код, А, 1));
        КонтрольнаяСумма = КонтрольнаяСумма + Число * (10 - А);
    КонецЦикла;
 
    КонтрольнаяСумма = КонтрольнаяСумма % 101;
 
    Если КонтрольнаяСумма < 100 Тогда
        Возврат КонтрольнаяСумма = КонтрольноеЧисло;
    ИначеЕсли КонтрольнаяСумма = 100 Или КонтрольнаяСумма = 101 Тогда
        Возврат 0 = КонтрольноеЧисло;
    КонецЕсли;
 
    Возврат Истина;
 
КонецФункции
С уважением, (преподаватель школы 1С программистов и разработчик обновлятора).



Владимир Милькин
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:



ПроверитьКорреспондентскийСчет

  оглавление  СоздатьСтраницуНаФорме