HelpF.pro

Определение пола по имени

Функция проверяет уже существующих в базе данных людей на наличие требуемого имени.
Во время поиска следует учитывать следующие ситуации:

1) Вместо имени записаны инициалы
2) Существуют имена, которые могут быть как мужскими, так и женскими (например, Саша)

На второй пункт можно возразить: следует писать полное паспортное имя, а не уменьшительное. На самом деле это не всегда удобно, особенно во время большого потока людей или же, например, при работе с иностранными именами.

Код 1C v 8.х
 Функция ОпределитьПол(Имя) Экспорт

Если СтрДлина(Имя) > 1 Тогда
Запрос = Новый Запрос("
|ВЫБРАТЬ
| П.Пол КАК Пол
|ИЗ
| Справочник.Пациенты КАК П
|ГДЕ
| ВЫРАЗИТЬ(П.Имя КАК СТРОКА(100)) = ВЫРАЗИТЬ(&Имя КАК СТРОКА(100))");
Запрос.УстановитьПараметр("Имя",Имя);
Результат = Запрос.Выполнить().Выгрузить();

М = 0;
Ж = 0;
Для Каждого Строка Из Результат Цикл
Если Строка.Пол = Перечисления.Пол.Мужской Тогда
М = 1;
КонецЕсли;
Если Строка.Пол = Перечисления.Пол.Женский Тогда
Ж = 1;
КонецЕсли;
КонецЦикла;

Если (М = 1) И (Ж = 0) Тогда
Возврат Перечисления.Пол.Мужской;
КонецЕсли;
Если (М = 0) И (Ж = 1) Тогда
Возврат Перечисления.Пол.Женский;
КонецЕсли;
КонецЕсли;

КонецФункции

Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq82/view/1114.html