УНП контрагента Беларусь контрольная сумма код 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С-Минск


КонецФункции
Оставьте свое сообщение
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 100 000 руб.
Временный (на проект)

Разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 150 000 руб. до 250 000 руб.
Полный день