Преобразует исходную строку в число без вызова исключений.
// Преобразует исходную строку в число без вызова исключений. // // Параметры: // Значение - Строка - строка, которую необходимо привести к числу. // Например, "10", "+10", "010", вернет 10; // "(10)", "-10",вернет -10; // "10,2", "10.2",вернет 10.2; // "000", " ", "",вернет 0; // "10текст", вернет Неопределено. // // Возвращаемое значение: // Число, Неопределено - полученное число, либо Неопределено, если строка не является числом. // Функция СтрокаВЧисло(Знач Значение) Экспорт Значение = СтрЗаменить(Значение, " ", ""); Если СтрНачинаетсяС(Значение, "(") Тогда Значение = СтрЗаменить(Значение, "(", "-"); Значение = СтрЗаменить(Значение, ")", ""); КонецЕсли; СтрокаБезНулей = СтрЗаменить(Значение, "0", ""); Если ПустаяСтрока(СтрокаБезНулей) Или СтрокаБезНулей = "-" Тогда Возврат 0; КонецЕсли; ТипЧисло = Новый ОписаниеТипов("Число"); Результат = ТипЧисло.ПривестиЗначение(Значение); Возврат ?(Результат <> 0 И Не ПустаяСтрока(СтрокаБезНулей), Результат, Неопределено); КонецФункции /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (c) 2019, ООО 1С-Софт // Все права защищены. Эта программа и сопроводительные материалы предоставляются // в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0) // Текст лицензии доступен по ссылке: // https://creativecommons.org/licenses/by/4.0/legalcode ///////////////////////////////////////////////////////////////////////////////////////////////////////
// Преобразует исходную строку в число без вызова исключений.
//
// Параметры:
// Значение - Строка - строка, которую необходимо привести к числу.
// Например, "10", "+10", "010", вернет 10;
// "(10)", "-10",вернет -10;
// "10,2", "10.2",вернет 10.2;
// "000", " ", "",вернет 0;
// "10текст", вернет Неопределено.
//
// Возвращаемое значение:
// Число, Неопределено - полученное число, либо Неопределено, если строка не является числом.
//
Функция СтрокаВЧисло(Знач Значение) Экспорт
Значение = СтрЗаменить(Значение, " ", "");
Если СтрНачинаетсяС(Значение, "(") Тогда
Значение = СтрЗаменить(Значение, "(", "-");
Значение = СтрЗаменить(Значение, ")", "");
КонецЕсли;
СтрокаБезНулей = СтрЗаменить(Значение, "0", "");
Если ПустаяСтрока(СтрокаБезНулей) Или СтрокаБезНулей = "-" Тогда
Возврат 0;
КонецЕсли;
ТипЧисло = Новый ОписаниеТипов("Число");
Результат = ТипЧисло.ПривестиЗначение(Значение);
Возврат ?(Результат <> 0 И Не ПустаяСтрока(СтрокаБезНулей), Результат, Неопределено);
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////