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


КонецФункции
Оставьте свое сообщение
Вакансии
Программист
Санкт-Петербург
зарплата от 180 000 руб. до 240 000 руб.
Полный день

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

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

Программист 1С
Екатеринбург
зарплата от 130 000 руб. до 170 000 руб.
Полный день

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