Имя: Пароль:
1C
 
Как преобразовать строку в пригодную для ключа структуры?
0 Dragonofdwarfs
 
25.02.26
16:54
Коллеги, всем доброго времени суток, собственно сам вопрос выше.  К ключу требования, насколько я знаю, чтобы он не начинался с цифр и не содержал спецсимволы, кроме "_". Есть ли какая-нибудь бспшная функция, которая производит такие махинации или самому писать?
1 Волшебник
 
25.02.26
16:55
Сгенери GUID, убери дефисы, добавь впереди "_"
2 Dragonofdwarfs
 
25.02.26
16:59
(1) Я примерно так и хочу сделать, только впереди оставить наименование, но пользователь может ввести что ему заблагорассудится, поэтому и хочу сделать преобразование
3 Волшебник
 
25.02.26
17:00
(2) Вы не должны принимать от пользователя строки, которые становятся ключами структуры
4 Kuzmich123
 
25.02.26
17:00
(2) а зачем пользователь участвует в генерации ун. идент.?
5 Fragster
 
гуру
25.02.26
17:04
переходи на Соответствие
6 Dragonofdwarfs
 
25.02.26
17:08
(5) Если бы писал с нуля - перешёл бы) Но там всё на структурах написано
7 Dragonofdwarfs
 
25.02.26
17:10
(4) Хотел больше жизненности что-ли дать, условно как в доп.реквизитах (для разработчика)
8 ass1c
 
25.02.26
17:21
(0) Это же все вроде легко ищется в БСП. Ищешь, используешь, под себя переделываешь...

СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Строка);

Функция ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(Строка) Экспорт
	
	НедопустимыеСимволы = ":;!@#$%^&-~`'.,?{}[]+=*/|\ ()_""";
	Результат = "";
	Для Индекс = 1 По СтрДлина(Строка) Цикл
		Символ =  Сред(Строка, Индекс, 1);
		Если СтрНайти(НедопустимыеСимволы, Символ) > 0 Или (КодСимвола(Символ) > 126 И КодСимвола(Символ) < 256) Тогда
			Результат = Результат + "_" + КодСимвола(Символ) + "_";
		Иначе
			Результат = Результат + Символ;
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;
КонецФункции

УправлениеСвойствамиСлужебный.УдалитьНедопустимыеСимволы(Строка);

Процедура УдалитьНедопустимыеСимволы(Строка) Экспорт
	НедопустимыеСимволы = """'`/\[]{}:;|-=?*<>,.()+#№@!%^&~«»";
	Строка = СтрСоединить(СтрРазделить(Строка, НедопустимыеСимволы, Истина));
КонецПроцедуры
9 Garykom
 
гуру
25.02.26
17:31
(0) Используй хеширование и все
10 Волшебник
 
25.02.26
18:08
(9) Чем это лучше (1) ?
11 TormozIT
 
гуру
25.02.26
18:52
Кроме БСП и писать самому, еще можно скопировать из ИР ирОбщий.ИдентификаторИзПредставленияЛкс
AdBlock убивает бесплатный контент. 1Сергей