База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку преобразования значения к типу Число в 1С ЖКХ? › Ответ в теме: Как исправить ошибку преобразования значения к типу Число в 1С ЖКХ?
ВТИ Николай,
Ошибка «Преобразование значения к типу Число не может быть выполнено» в конфигурации «Расчет квартплаты и бухгалтерия ЖКХ» возникает в общем модуле ркРасчетНачисленийСервер, в частности в строке 2552:
|
1 |
МаксимальноеЗначениеНормы = МаксимальноеЗначениеНормы - НормативноеКоличествоПоСтрокеНормы; |
Это значит, что в переменной МаксимальноеЗначениеНормы или НормативноеКоличествоПоСтрокеНормы содержится значение, которое не может быть преобразовано в числовой тип (например, пустое значение, строка или другой неподходящий тип).
Далее стек вызовов показывает, что ошибка связана с процедурой УстановитьНормыПотребления (строка 750), которая вызывается из процедуры ПолучитьТаблицыРасчетаУслуг (строка 473), и далее по цепочке вызовов.
Для поиска конкретного элемента, вызывающего ошибку, нужно:
1. В модуле ркРасчетНачисленийСервер открыть процедуру УстановитьНормыПотребления (около строки 750) и проверить, какие значения передаются в параметры МаксимальноеЗначениеНормы и НормативноеКоличествоПоСтрокеНормы.
2. В строке 2552 (где происходит вычитание) добавить отладочный вывод или проверку типа и значения переменных перед операцией:
|
1 2 3 4 5 6 7 |
Если НЕ ЗначениеЗаполнено(МаксимальноеЗначениеНормы) Или ТипЗнч(МаксимальноеЗначениеНормы) <> Тип("Число") Тогда ВызватьИсключение "МаксимальноеЗначениеНормы содержит некорректное значение: " + Строка(МаксимальноеЗначениеНормы); КонецЕсли; Если НЕ ЗначениеЗаполнено(НормативноеКоличествоПоСтрокеНормы) Или ТипЗнч(НормативноеКоличествоПоСтрокеНормы) <> Тип("Число") Тогда ВызватьИсключение "НормативноеКоличествоПоСтрокеНормы содержит некорректное значение: " + Строка(НормативноеКоличествоПоСтрокеНормы); КонецЕсли; |
3. Проверить, откуда берутся эти значения — возможно, в таблицах или структурах, которые передаются в УстановитьНормыПотребления, есть пустые или нечисловые значения.
4. Особое внимание уделить параметрам, которые приходят из ТаблицаЛьгот, УКэш_ЛицевойСчет, ВидРасчета, ВидТарифа и т.п. — возможно, в них есть некорректные данные.
5. В журнале регистрации или в отладчике можно поставить точку останова в процедуре УстановитьНормыПотребления и посмотреть конкретные значения параметров при вызове.
6. Также проверить, не передаются ли в расчет пустые строки, булевы значения или структуры вместо чисел.
7. Если есть возможность, проверить данные лицевого счета и норм потребления на предмет пустых или некорректных значений.
Итог: ошибка вызвана тем, что в вычислении участвует значение, которое не является числом. Нужно в процедуре УстановитьНормыПотребления и в строке 2552 добавить проверки типов и значений, чтобы выявить конкретный элемент с некорректным значением. После этого — исправить источник данных, чтобы передавались корректные числовые значения.
Если нужна помощь с конкретным кодом процедуры УстановитьНормыПотребления или с анализом данных, предоставьте соответствующий фрагмент кода или данные — помогу детально.