1C-CodeОшибки 1С → Преобразование значения типа «Строка» к числу невозможно

Преобразование значения типа «Строка» к числу невозможно

Сообщение платформы: Преобразование значения типа «Строка» к числу невозможно

Строку не удалось прочитать как число. Обычно это разбор того, что пришло из файла, из письма или из чужой системы.

Отчего это бывает

1. Разделитель разрядов и запятая

Число("1 234,56")     // пробел и запятая — не число
Число(СтрЗаменить(СтрЗаменить("1 234,56", " ", ""), ",", "."))

В 1С дробная часть отделяется ТОЧКОЙ. Запятая, пришедшая из выгрузки или из Excel, числом не читается.

2. Пустая строка

Число("")            // не ноль, а ошибка

3. Невидимые символы

Число(СокрЛП(Значение))   // пробелы по краям снимаем всегда

Из копирования часто приезжают неразрывные пробелы и переводы строк. Глазами они не видны, а разбор ломают.

Что сделать

Не разбирайте чужие данные напрямую: сначала СокрЛП, потом замена разделителей, и только потом преобразование. А чтобы ошибка не роняла всю загрузку, оберните разбор в Попытка … Исключение и соберите список непрочитанных строк — человеку он полезнее, чем прерванная на середине обработка.

Проверить себя на практике. В тренажёре те же ошибки возникают на настоящем интерпретаторе языка 1С: сообщения дословно те же, что у платформы, но исправить их можно сразу в браузере, без установки и без риска для рабочей базы.

Открыть тренажёр

Разобраться глубже

Другие частые ошибки

Поле объекта не обнаружено Значение не является значением объектного типа Переменная не определена Метод объекта не обнаружен Индекс находится за границами массива Деление на ноль