1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-17 20:48:01 +02:00

feat: Добавлена генерация СНИЛС и ИНН для людей

This commit is contained in:
Dmitry Abramov 2023-07-17 15:45:27 +03:00
parent 4623873e25
commit edcdfc5243
2 changed files with 51 additions and 1 deletions

View File

@ -107,10 +107,40 @@
//
// Возвращаемое значение:
// Строка
Функция ИНН()
Функция ИНН() Экспорт
Возврат ЮТТестовыеДанные.Подражатель().Компании().ИНН(, Истина);
КонецФункции
// Формирует случаный СНИЛС.
// https://ru.wikipedia.org/wiki/Контрольное_число
// Возвращаемое значение:
// Строка
Функция СНИЛС() Экспорт
ЧастиСнилс = Новый Массив();
ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(100, 999), "ЧЦ=3; ЧВН=;"));
ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), "ЧЦ=3; ЧВН=;"));
ЧастиСнилс.Добавить(Формат(ЮТТестовыеДанные.СлучайноеЧисло(0, 999), "ЧЦ=3; ЧВН=;"));
ИтогоСтрокой = СтрСоединить(ЧастиСнилс, "");
ДлинаОсновнойЧасти = СтрДлина(ИтогоСтрокой);
Сумма = 0;
Для Итератор = 0 По 8 Цикл
Сумма = Сумма + (Число(Сред(ИтогоСтрокой, ДлинаОсновнойЧасти - Итератор, 1)) * (Итератор + 1));
КонецЦикла;
ОстатокОтДеления = Сумма % 101;
КонтрольноеЧисло = ?(ОстатокОтДеления = 100, 0, ОстатокОтДеления);
Возврат СтрШаблон(
"%1-%2-%3 %4",
ЧастиСнилс[0],
ЧастиСнилс[1],
ЧастиСнилс[2],
Формат(КонтрольноеЧисло, "ЧЦ=2; ЧВН=;")
);
КонецФункции
#Область ФабрикаПеречислений
Функция ПолЧеловека() Экспорт

View File

@ -26,6 +26,8 @@
.ДобавитьТест("Фамилия")
.ДобавитьТест("Отчество")
.ДобавитьТест("ФИО")
.ДобавитьТест("ИНН")
.ДобавитьТест("СНИЛС")
.ДобавитьТестовыйНабор("Локализации")
.ДобавитьТест("УстановкаЛокализации")
.ДобавитьТест("НесуществующийСловарьПоЛокализации")
@ -101,6 +103,24 @@
;
КонецПроцедуры
Процедура ИНН() Экспорт
ИНН = ЮТТестовыеДанные.Подражатель().Люди().ИНН();
Ютест.ОжидаетЧто(ИНН)
.ИмеетТип("Строка")
.Заполнено()
.ИмеетДлину(12)
;
КонецПроцедуры
Процедура СНИЛС() Экспорт
СНИЛС = ЮТТестовыеДанные.Подражатель().Люди().СНИЛС();
Ютест.ОжидаетЧто(СНИЛС)
.ИмеетТип("Строка")
.Заполнено()
.ИмеетДлину(14)
;
КонецПроцедуры
Процедура УстановкаЛокализации() Экспорт
Подражатель = ЮТТестовыеДанные.Подражатель();