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

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];
	Иначе
		КраткоеИмя = СокрЛП(ПолноеИмя);
	КонецЕсли;
	
	Возврат КраткоеИмя;
	
КонецФункции
Показать
Оставьте свое сообщение

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