Имя: Пароль:
1C
 
Строка в число в семерке и восьмёрке
0 Олдж
 
20.03.25
22:35
Добрый день,
есть строка типа "21xx", необходимо получить число 21
В семерке функция Число("21xx") возвращает 21
В восьмерке функция Число("21xx") возвращает ошибку, что преобразование не может быть выполнено :)

Есть ли красивое решение в восьмерке такого преобразования без поиска первого нецифрового символа слева направо(число может быть любым, без пробелов и других символов); нецифровые символы всегда в конце строки и могут быть любыми буквами английского или русского алфавита
1 Vostochnick
 
20.03.25
22:38
(0) Есть, БСП.
2 Олдж
 
20.03.25
22:40
(1) Нашел только вот это:
СтроковыеФункцииКлиентСервер.СтрокаВЧисло("21xx") возвращает "Неопределено", а нужно 21.

Просьба подсказать, что из БСП решит мою задачу
3 Азат
 
20.03.25
22:54
Ну а смысл заморачиваться?
Для К = 1 По СтрДлина(ТвояСтрока) Цикл
	 Если СтрНайти("0123456789", Сред(ТвояСтрока, К, 1)) = 0 Тогда
			Прервать
	 КонецЕсли
КонецЦикла;
Сообщить(Число(Лев(ТвояСтрока, К - 1)))
4 Бычье сердце
 
20.03.25
22:42
(0)

Результат= СтрНайтиПоРегулярномуВыражению("21xx", "[0-9]);

Как-то так наверное, надо верное регулярное выражение написать
5 Олдж
 
20.03.25
22:42
(3) ок :)
7 NorthWind
 
21.03.25
05:14
(0) как думается, в восьмерке сделано грамотнее. Вам как программисту виднее, откуда именно в строке брать цифры. Сейчас у вас бизнес-правило брать первые две цифры, завтра будет брать первую одну или первые три. Имея под руками свой код из (3), вы просто подкорректируете это под задачу и все...