Не вызывает исключение
// функция преобразует строку в число, примеры:
// 315 руб. = 315
// 1 007,30 м2 (квадратный метр) = 1007,3
// -12.5% = -12,5
// ,05 = 0,05
// пустая строка или пробелы = 0
Функция грв_СтрокаВЧисло(Знач СтрокаЧисло) Экспорт
Результат = "";
Для Индекс = 1 По СтрДлина(СтрокаЧисло) Цикл
Символ = Сред(СтрокаЧисло, Индекс, 1);
КодСимвола = КодСимвола(Символ);
Если ((КодСимвола >= 48 И КодСимвола <= 57) Или (Символ = "-" И Индекс = 1) Или (Символ = ",") Или (Символ = ".") Или (Символ = " ") Или (КодСимвола = 160)) Тогда
Если КодСимвола <> 32 И КодСимвола <> 160 Тогда
Результат = Результат + Символ;
КонецЕсли;
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Результат = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(Результат);
Возврат Результат;
КонецФункции
ПреобразоватьЧислоВРимскуюНотацию (БСП)
ПреобразоватьЧислоВАрабскуюНотацию (БСП)
Функции преобразования ЗаписьJSON
#1, 29 июня 2022 14:13
Все это можно сделать двумя строками:
#2, 30 июня 2022 08:29
(1) Сахипов Данил, к сожалению нельзя, в первых 3 приведенных примерах результатом этих 2 строк будет 0
// 315 руб. = 315
// 1 007,30 м2 (квадратный метр) = 1007,3
// -12.5% = -12,5
#3, 12 августа 2022 07:30
(2) RomanVG, Ну тогда так:
Результат = XMLЗначение(Тип("Число"), СтрокаЧисло);