УНП контрагента Беларусь контрольная сумма код 1с

1. zoeh 31 26.09.23 05:11 Сейчас в теме
есть у кого нидь нежадного готовый, нашел в яндексе 1cpp нужно разбираться.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. zoeh 31 26.09.23 07:03 Сейчас в теме
Функция УНПБеларусьСоответствуетТребованиям(Знач ИНН, ЭтоЮридическоеЛицо, ТекстСообщения) Экспорт

// 1С-Минск Замена содержимого функции
УНП = СокрЛП(ИНН);
ДлинаИНН = СтрДлина(УНП);

//Если НЕ (СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(УНП)) и ЭтоЮридическоеЛицо Тогда
// Возврат Ложь;
//ИначеЕсли СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(УНП) и НЕ ЭтоЮридическоеЛицо Тогда
// Возврат Ложь;
//КонецЕсли;
Если НЕ ТолькоЦифрыВСтроке(УНП) Тогда
Возврат Ложь;
КонецЕсли;

Если ДлинаИНН = 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С-Минск


КонецФункции
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот