|
Преобразование значения к типу Число не может быть выполнено | ☑ | ||
---|---|---|---|---|
0
Wswolf
27.08.12
✎
14:35
|
Добрый всем день.
занимаюсь самообучением 1С предприятие 8.2 п окниге М.Г.Радченко. столкнулся с такой проблемой: при расчете з/п выдает слидующую ошибку: Преобразование значения к типу Число не может быть выполнено ЗаписьРегистра.Результат=(ЗаписьРегистра.ИсходныеДанные/ВыборкаРезультата.Норма)*ВыборкаРезультата.Факт; Текст программы: Процедура РассчитатьНачисления(НаборЗаписейРегистра,ТребуемыйВидРасчета,СписокСотрудников)Экспорт Регистратор=НаборЗаписейРегистра.Отбор.Регистратор.Значение; //Рассчитать первичные записи. Если ТребуемыйВидРасчета=ПланыВидовРасчета.ОсновныеНачисления.Оклад Тогда Запрос=Новый Запрос; Запрос.Текст= "Выбрать |НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма, |НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт, |НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки |ИЗ |РегистрРасчета.Начисления.ДанныеГрафика(Регистратор=&Регистратор И |ВидРасчета=&ВидРасчета И Сотрудник В(&СписокСотрудников)) |КАК НачисленияДанныеГрафика"; Запрос.УстановитьПараметр("Регистратор",Регистратор); Запрос.УстановитьПараметр("ВидРасчета",ТребуемыйВидРасчета); Запрос.УстановитьПараметр("СписокСотрудников",СписокСотрудников); ВыборкаРезультата=Запрос.Выполнить().Выбрать(); Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл СтруктураНомер=Новый Структура("НомерСтроки"); СтруктураНомер.НомерСтроки=ЗаписьРегистра.НомерСтроки; ВыборкаРезультата.Сбросить(); Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) Тогда Если ВыборкаРезультата.Норма=0 Тогда Сообщение=Новый СообщениеПользователю; Сообщение.Текст="Вид рассчета:Оклад-Нет рабочих дней в заданном периоде"; Сообщение.Сообщить(); ЗаписьРегистра.Результат=0; Иначе //Рассчитать оклад по фактическому периоду и исходным данным ЗаписьРегистра.Результат=(ЗаписьРегистра.ИсходныеДанные/ВыборкаРезультата.Норма)*ВыборкаРезультата.Факт; Сообщение=Новый СообщениеПользователю; Сообщение.Текст="Выполнен расчет"+ЗаписьРегистра.Регистратор+"-"+ЗаписьРегистра.ВидРасчета+"-"+ЗаписьРегистра.Сотрудник; Сообщение.Сообщить(); КонецЕсли; КонецЕсли; КонецЦикла; //Рассчитать вторичные записи ИначеЕсли ТребуемыйВидРасчета=ПланыВидовРасчета.ОсновныеНачисления.Премия Тогда Запрос=Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки, | НачисленияБазаНачисления.РезультатБаза КАК База |ИЗ | РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОсновного,&ИзмеренияБазового,,Регистратор=&Регистратор И ВидРасчета=&ВидРасчета И Сотрудник В(&СписокСотрудников)) |КАК НачисленияБазаНачисления"; Измер=Новый Массив(1); Измер[0]="Сотрудник"; Запрос.УстановитьПараметр("ИзмеренияОсновного",Измер); Запрос.УстановитьПараметр("ИзмеренияБазового",Измер); Запрос.УстановитьПараметр("Регистратор",Регистратор); Запрос.УстановитьПараметр("ВидРасчета",ТребуемыйВидРасчета); Запрос.УстановитьПараметр("СписокСотрудников",СписокСотрудников); ВыборкаРезультата=Запрос.Выполнить().Выбрать(); Для Каждого ЗаписьРегистра ИЗ НаборЗаписейРегистра Цикл СтруктураНомер=Новый Структура("НомерСтроки"); СтруктураНомер.НомерСтроки=ЗаписьРегистра.НомерСтроки; Выборкарезультата.Сбросить(); Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер)Тогда ЗаписьРегистра.Результат=ВыборкаРезультата.База*(10/100); Сообщение=Новый СообщениеПользователю; Сообщение.Текст="Выполнен расчет"+ЗаписьРегистра.Регистратор+"-"+ЗаписьРегистра.ВидРасчета+"-"+ЗаписьРегистра.Сотрудник; Сообщение.Сообщить(); КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры самостоятельно разобраться к сожалению не смог. надеюсь на вашу помощ. |
|||
1
mikecool
27.08.12
✎
14:35
|
неопределено
|
|||
2
salvator
27.08.12
✎
14:36
|
(0) Смотри на строку, в которой ошибка
|
|||
3
Wswolf
27.08.12
✎
14:37
|
Преобразование значения к типу Число не может быть выполнено
(ЗаписьРегистра.Результат=(ЗаписьРегистра.ИсходныеДанные/ВыборкаРезультата.Норма)*ВыборкаРезультата.Факт;) (ошибка полностью) |
|||
4
Wswolf
27.08.12
✎
14:38
|
смотрел подставлял в формулу вместо переменных числа, ошибку начинает выдавать на переменной ВыборкаРезультата.Норма
|
|||
5
Wswolf
27.08.12
✎
14:38
|
как можно исправить?
|
|||
6
salvator
27.08.12
✎
14:38
|
+(2) Либо ВыборкаРезультата.Норма либо ВыборкаРезультата.Факт имеет значение типа число
|
|||
7
Рэйв
27.08.12
✎
14:38
|
(3)Что то из полей запроса в выражении = NULL
|
|||
8
Rovan
гуру
27.08.12
✎
14:39
|
(3) деление на 0 ?
|
|||
9
Рэйв
27.08.12
✎
14:39
|
Используй ЕстьNULL(...) в запросе
|
|||
10
salvator
27.08.12
✎
14:39
|
(5) Использовать естьNull в запросе
|
|||
11
Wswolf
27.08.12
✎
14:41
|
ок щас попробую. спс
|
|||
12
Aprobator
27.08.12
✎
14:43
|
сдается мне что норма и факт - тип дата.
|
|||
13
Aprobator
27.08.12
✎
14:44
|
глядя вот на это:
|
|||
14
Aprobator
27.08.12
✎
14:44
|
в теге ошщибся.
|
|||
15
shpioleg
27.08.12
✎
14:46
|
(0) Отладчик сразу начинай изучать. Он лучший друг программиста 8.2
|
|||
16
Wswolf
27.08.12
✎
14:52
|
все справился.спасибо большое.
(помог NULL) |
|||
17
Wswolf
27.08.12
✎
14:53
|
да в том то и дело что отладчик не выдавал ошибку. она вылетала непосредственно при проведении документа
|
|||
18
artems
27.08.12
✎
14:57
|
(17) остановка по ошибке помогает в таких случаях.
|
|||
19
Aprobator
27.08.12
✎
15:02
|
что то неладное тут с графиком явно.
|
|||
20
Aprobator
27.08.12
✎
15:03
|
по поводу (14) ошибся, Значение явно ресурс с типом Число.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |