Автозаполнение "Имя для входа" в справочнике "Сотрудники"

1. user1340623 23.12.24 17:00 Сейчас в теме
Добрый день!
Подскажите, как изменить алгоритм, чтобы в графу "Имя для входа" подставлялись не фамилия и инициалы от ИО, как стандартно это заложено, а фамилия и имя полностью?
Функция в общем модуле:

Функция ПолучитьКраткоеИмяПользователяИБ(Знач ПолноеИмя) Экспорт
    
    Разделители = Новый Массив;
    Разделители.Добавить(" ");
    Разделители.Добавить(".");
    
    КраткоеИмя = "";
    Для Счетчик = 1 По 3 Цикл
        
        Если Счетчик <> 1 Тогда
            КраткоеИмя = КраткоеИмя + ВРег(Лев(ПолноеИмя, 1));
        КонецЕсли;
        
        ПозицияРазделителя = 0;
        Для каждого Разделитель Из Разделители Цикл
            ПозицияТекущегоРазделителя = СтрНайти(ПолноеИмя, Разделитель);
            Если ПозицияТекущегоРазделителя > 0
               И (    ПозицияРазделителя = 0
                  ИЛИ ПозицияРазделителя > ПозицияТекущегоРазделителя ) Тогда
                ПозицияРазделителя = ПозицияТекущегоРазделителя;
            КонецЕсли;
        КонецЦикла;
        
        Если ПозицияРазделителя = 0 Тогда
            Если Счетчик = 1 Тогда
                КраткоеИмя = ПолноеИмя;
            КонецЕсли;
            Прервать;
        КонецЕсли;
        
        Если Счетчик = 1 Тогда
            КраткоеИмя = Лев(ПолноеИмя, ПозицияРазделителя - 1);
        КонецЕсли;
        
        ПолноеИмя = Прав(ПолноеИмя, СтрДлина(ПолноеИмя) - ПозицияРазделителя);
        Пока Разделители.Найти(Лев(ПолноеИмя, 1)) <> Неопределено Цикл
            ПолноеИмя = Сред(ПолноеИмя, 2);
        КонецЦикла;
    КонецЦикла;
    
    Возврат КраткоеИмя;
    
КонецФункции

Показать
По теме из базы знаний
Найденные решения
3. Anton_new01 23.12.24 17:52 Сейчас в теме
(1)

Функция ПолучитьКраткоеИмяПользователяИБ(Знач ПолноеИмя) Экспорт
    
    СтрокаРазделителей = ".,/";
    
    Для Символ = 1 По СтрДлина(СтрокаРазделителей) Цикл
        ПолноеИмя = СтрЗаменить(ПолноеИмя, Сред(СтрокаРазделителей, Символ, 1), " ");    
    КонецЦикла;
    ФИОвМассиве = СтрРазделить(ПолноеИмя, " ", Ложь);
    
    Если ФИОвМассиве.Количество() >= 2  Тогда
        КраткоеИмя = ФИОвМассиве[0] + ФИОвМассиве[1];
    ИначеЕсли ФИОвМассиве.Количество() = 1  Тогда
        КраткоеИмя = ФИОвМассиве[0];
    Иначе
        КраткоеИмя = СокрЛП(ПолноеИмя);
    КонецЕсли;
    
    Возврат КраткоеИмя;
    
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Anton_new01 23.12.24 17:07 Сейчас в теме
4. user1340623 23.12.24 18:17 Сейчас в теме
(2) Ура! Спасибо большое! Пока писала- вы уже ответили) Да запуталась с "Полным именем"..
3. Anton_new01 23.12.24 17:52 Сейчас в теме
(1)

Функция ПолучитьКраткоеИмяПользователяИБ(Знач ПолноеИмя) Экспорт
    
    СтрокаРазделителей = ".,/";
    
    Для Символ = 1 По СтрДлина(СтрокаРазделителей) Цикл
        ПолноеИмя = СтрЗаменить(ПолноеИмя, Сред(СтрокаРазделителей, Символ, 1), " ");    
    КонецЦикла;
    ФИОвМассиве = СтрРазделить(ПолноеИмя, " ", Ложь);
    
    Если ФИОвМассиве.Количество() >= 2  Тогда
        КраткоеИмя = ФИОвМассиве[0] + ФИОвМассиве[1];
    ИначеЕсли ФИОвМассиве.Количество() = 1  Тогда
        КраткоеИмя = ФИОвМассиве[0];
    Иначе
        КраткоеИмя = СокрЛП(ПолноеИмя);
    КонецЕсли;
    
    Возврат КраткоеИмя;
    
КонецФункции
Показать
Оставьте свое сообщение

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