База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку преобразования значения к типу Число в 1С ЖКХ?
- В этой теме 1 ответ, 2 участника, последнее обновление 3 часа, 33 минуты назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
28 января 2026 в 14:00 #35591
конфигурация 1с расчет квартплаты и бухгалтерия ЖКХ
Ошибка : «Преобразование значения к типу Число не может быть выполнено
{ОбщийМодуль.ркРасчетНачисленийСервер.Модуль(2552)}:МаксимальноеЗначениеНормы = МаксимальноеЗначениеНормы — НормативноеКоличествоПоСтрокеНормы;
{ОбщийМодуль.ркРасчетНачисленийСервер.Модуль(750)}:ОбщееКоличествоПоНорме = УстановитьНормыПотребления(Хранилище, НачалоПериода, ТаблицаЛьгот, УКэш_ЛицевойСчет, ВидРасчета, ВидТарифа, Месяцев, ВидНормы, КоэффициентНормы, ВидТарифа.ВидНормыПотребленияЕдиницыУчета, ЕдиницаРасчета, СтруктураКоличества);
{ОбщийМодуль.ркРасчетНачисленийСервер.Модуль(473)}:Результат=ПолучитьТаблицыРасчетаУслуг(Хранилище, УКэш_ЛицевойСчет, ДатаНачалаПериода, ДатаОкончанияПериода, ВидРасчета, ДополнительныеПараметры);
{ОбщийМодуль.ркДвиженияДокументовСервер.Модуль(611)}:ТаблицыРасчета=ркРасчетНачисленийСервер.ПолучитьТаблицыРасчета(Хранилище, УКэш_ЛицевойСчет, ДатаНачала, ДатаОкончания, ВидРасчета, ,СписокТаблицРасчета);
{ОбщийМодуль.ркДвиженияДокументовСервер.Модуль(388)}:РассчитатьИДополнитьТаблицыРасчета(Хранилище, УКэш_ЛицевойСчет, ДатаНачала, ДатаОкончания, ВидРасчета, СписокТаблицРасчета, Результат.Начисления, Результат.Льготы, Результат.Пени, ВидРасчета.Наименование);
{ОбщийМодуль.ркРасчетНачисленийСервер.Модуль(4595)}:ДанныеРасчета=ркДвиженияДокументовСервер.РассчитатьЕжемесячныеНачисления(Истина, Ложь, НачалоМесяца(ДатаРасчетногоПериода), КонецМесяца(ДатаРасчетногоПериода), УКэш_ЛицевойСчет, ,СписокТаблицРасчета);
{Обработка.ркРегламентныеОперации.МодульМенеджера(186)}:ркРасчетНачисленийСервер.ВыполнитьРасчетИПроведениеНачислений(УКэш_ЛицевойСчет, ркОбщегоНазначенияСервер.ПолучитьДатуОкончанияТекущегоРасчетногоПериода(), Ложь);
{Обработка.ркРегламентныеОперации.МодульМенеджера(58)}:Обработки.ркРегламентныеОперации.ВыполнитьРасчетУслуг(СтруктураПараметров.СписокЛицевыхСчетов, СписокУжеРассчитанныхЛСПоУслугам);
{(1)}:Обработки.ркРегламентныеОперации.ВыполнитьРегламентныеОперации(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(6474)}:Выполнить ИмяМетода + «(» + ПараметрыСтрока + «)»; // АПК:487 Исполняемый код безопасен.
{ОбщийМодуль.ДлительныеОперации.Модуль(1715)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1682)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры, ПараметрыВыполнения);
{ОбщийМодуль.ДлительныеОперации.Модуль(1695)}:ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, СтекЗапуска, ИнформацияОбОшибке);
{ОбщийМодуль.ДлительныеОперации.Модуль(927)}:ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, ДляАдминистратора, Результат.ИнформацияОбОшибке);
{Обработка.ркРегламентныеОперации.Форма.Форма.Форма(251)}:Возврат ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания);
{Обработка.ркРегламентныеОперации.Форма.Форма.Форма(229)}:Если ЗаданиеВыполнено(ИдентификаторЗадания) ТогдаОшибка выполнения фонового задания ДлительныеОперации.ВыполнитьСКонтекстомКлиента с идентификатором f04157cc-c53d-4858-a937-a278edfbee50.
См. также журнал регистрации.
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка, ОшибкаКонфигурации]
по причине:
Преобразование значения к типу Число не может быть выполнено
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка, ОшибкаКонфигурации]
по причине:
Преобразование значения к типу Число не может быть выполнено
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]»
по ошибке помоги мне найти конкретный элемент в каком ошибка -
28 января 2026 в 14:00 #35592
ВТИ Николай,
Ошибка «Преобразование значения к типу Число не может быть выполнено» в конфигурации «Расчет квартплаты и бухгалтерия ЖКХ» возникает в общем модуле ркРасчетНачисленийСервер, в частности в строке 2552:
МаксимальноеЗначениеНормы = МаксимальноеЗначениеНормы - НормативноеКоличествоПоСтрокеНормы;
Это значит, что в переменной `МаксимальноеЗначениеНормы` или `НормативноеКоличествоПоСтрокеНормы` содержится значение, которое не может быть преобразовано в числовой тип (например, пустое значение, строка или другой неподходящий тип).
Далее стек вызовов показывает, что ошибка связана с процедурой `УстановитьНормыПотребления` (строка 750), которая вызывается из процедуры `ПолучитьТаблицыРасчетаУслуг` (строка 473), и далее по цепочке вызовов.
Для поиска конкретного элемента, вызывающего ошибку, нужно:
1. В модуле `ркРасчетНачисленийСервер` открыть процедуру `УстановитьНормыПотребления` (около строки 750) и проверить, какие значения передаются в параметры `МаксимальноеЗначениеНормы` и `НормативноеКоличествоПоСтрокеНормы`.
2. В строке 2552 (где происходит вычитание) добавить отладочный вывод или проверку типа и значения переменных перед операцией:
Если НЕ ЗначениеЗаполнено(МаксимальноеЗначениеНормы) Или ТипЗнч(МаксимальноеЗначениеНормы) <> Тип("Число") Тогда ВызватьИсключение "МаксимальноеЗначениеНормы содержит некорректное значение: " + Строка(МаксимальноеЗначениеНормы); КонецЕсли; Если НЕ ЗначениеЗаполнено(НормативноеКоличествоПоСтрокеНормы) Или ТипЗнч(НормативноеКоличествоПоСтрокеНормы) <> Тип("Число") Тогда ВызватьИсключение "НормативноеКоличествоПоСтрокеНормы содержит некорректное значение: " + Строка(НормативноеКоличествоПоСтрокеНормы); КонецЕсли;3. Проверить, откуда берутся эти значения — возможно, в таблицах или структурах, которые передаются в `УстановитьНормыПотребления`, есть пустые или нечисловые значения.
4. Особое внимание уделить параметрам, которые приходят из `ТаблицаЛьгот`, `УКэш_ЛицевойСчет`, `ВидРасчета`, `ВидТарифа` и т.п. — возможно, в них есть некорректные данные.
5. В журнале регистрации или в отладчике можно поставить точку останова в процедуре `УстановитьНормыПотребления` и посмотреть конкретные значения параметров при вызове.
6. Также проверить, не передаются ли в расчет пустые строки, булевы значения или структуры вместо чисел.
7. Если есть возможность, проверить данные лицевого счета и норм потребления на предмет пустых или некорректных значений.
Итог: ошибка вызвана тем, что в вычислении участвует значение, которое не является числом. Нужно в процедуре `УстановитьНормыПотребления` и в строке 2552 добавить проверки типов и значений, чтобы выявить конкретный элемент с некорректным значением. После этого — исправить источник данных, чтобы передавались корректные числовые значения.
Если нужна помощь с конкретным кодом процедуры `УстановитьНормыПотребления` или с анализом данных, предоставьте соответствующий фрагмент кода или данные — помогу детально.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.