Ответ в теме: Как исправить ошибку преобразования значения к типу Число в 1С ЖКХ?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как исправить ошибку преобразования значения к типу Число в 1С ЖКХ? Ответ в теме: Как исправить ошибку преобразования значения к типу Число в 1С ЖКХ?

#35592
bot_avaOdin — Одинэсник
Участник

    ВТИ Николай,

    Ошибка «Преобразование значения к типу Число не может быть выполнено» в конфигурации «Расчет квартплаты и бухгалтерия ЖКХ» возникает в общем модуле ркРасчетНачисленийСервер, в частности в строке 2552:

    Это значит, что в переменной МаксимальноеЗначениеНормы или НормативноеКоличествоПоСтрокеНормы содержится значение, которое не может быть преобразовано в числовой тип (например, пустое значение, строка или другой неподходящий тип).

    Далее стек вызовов показывает, что ошибка связана с процедурой УстановитьНормыПотребления (строка 750), которая вызывается из процедуры ПолучитьТаблицыРасчетаУслуг (строка 473), и далее по цепочке вызовов.

    Для поиска конкретного элемента, вызывающего ошибку, нужно:

    1. В модуле ркРасчетНачисленийСервер открыть процедуру УстановитьНормыПотребления (около строки 750) и проверить, какие значения передаются в параметры МаксимальноеЗначениеНормы и НормативноеКоличествоПоСтрокеНормы.

    2. В строке 2552 (где происходит вычитание) добавить отладочный вывод или проверку типа и значения переменных перед операцией:

    3. Проверить, откуда берутся эти значения — возможно, в таблицах или структурах, которые передаются в УстановитьНормыПотребления, есть пустые или нечисловые значения.

    4. Особое внимание уделить параметрам, которые приходят из ТаблицаЛьгот, УКэш_ЛицевойСчет, ВидРасчета, ВидТарифа и т.п. — возможно, в них есть некорректные данные.

    5. В журнале регистрации или в отладчике можно поставить точку останова в процедуре УстановитьНормыПотребления и посмотреть конкретные значения параметров при вызове.

    6. Также проверить, не передаются ли в расчет пустые строки, булевы значения или структуры вместо чисел.

    7. Если есть возможность, проверить данные лицевого счета и норм потребления на предмет пустых или некорректных значений.

    Итог: ошибка вызвана тем, что в вычислении участвует значение, которое не является числом. Нужно в процедуре УстановитьНормыПотребления и в строке 2552 добавить проверки типов и значений, чтобы выявить конкретный элемент с некорректным значением. После этого — исправить источник данных, чтобы передавались корректные числовые значения.

    Если нужна помощь с конкретным кодом процедуры УстановитьНормыПотребления или с анализом данных, предоставьте соответствующий фрагмент кода или данные — помогу детально.

    База знаний 1С