• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

помогитееее, глупая ошибка, но не могу выявить причину

  • Автор темы aimp
  • Дата начала
A

aimp

Помогите пожалуйста, при проводке Начисления зарплаты у меня вылезает ошибка Преобразование значения к типу Число не может быть выполнено

Код:
Процедура РасчитатьНачисления(НаборЗаписейРегистра, ТребуемыйВидРасчета, СписокПерсонала) Экспорт
Регистратор=НаборЗаписейРегистра.Отбор.Регистратор.Значение;	
//Рассчитать первичные записи  
Если ТребуемыйВидРасчета=ПланыВидовРасчета.ВидыНачислений.Оклад тогда

Запрос=Новый Запрос;
Запрос.Текст=
"Выбрать
|НачисленияДанныеГрафика.ЗначениеПериодДействия КАК Норма,
|НачисленияДанныеГрафика.ЗначениеФактическийПериодДействия КАК Факт,
| НачисленияДанныеГрафика.НомерСтроки КАК НомерСтроки
|ИЗ
| РегистрРасчета.Начисления.ДанныеГрафика(Регистратор=&Регистратор И
|										 ВидРасчета=&ВидРасчета И
|										 Персонал В(&СписокПерсонала))
| Как НачисленияДанныеГрафика";

Запрос.УстановитьПараметр("Регистратор",НаборЗаписейРегистра.Отбор.Регистратор.Значение);
Запрос.УстановитьПараметр("ВидРасчета",ТребуемыйВидРасчета);
Запрос.УстановитьПараметр("СписокПерсонала", СписокПерсонала);
ВыборкаРезультата=Запрос.Выполнить().Выбрать();
Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
СтруктураНомер=Новый Структура("НомерСтроки");
СтруктураНомер.НомерСтроки=ЗаписьРегистра.НомерСтроки;
ВыборкаРезультата.Сбросить();
Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) тогда
Если ВыборкаРезультата.Норма=0 тогда
Сообщить("ВидРасчета:Оклад-Нет Рабочих дней в заданном периоде",);
ЗаписьРегистра.Результат=0;
Иначе
//Рассчитать оклад по фактическому периоду и исходным данным
ЗаписьРегистра.Результат =(ЗаписьРегистра.ИсходныеДанные/ВыборкаРезультата.Норма)*ВыборкаРезультата.Факт; //<-------------------------тут ошибка-------------
Сообщить("Выполнен расчет"+ЗаписьРегистра.Регистратор+"-"+ ЗаписьРегистра.ВидРасчета+"-"+ЗаписьРегистра.Персонал,);
КонецЕсли;
КонецЕсли;
КонецЦикла;


//Рассчитать вторичные записи
иначеЕсли ТребуемыйВидРасчета=ПланыВидовРасчета.ВидыНачислений.Премия тогда
Запрос= Новый Запрос;
Запрос.Текст = 
"Выбрать
| НачисленияБазаНачисления.РезультатБаза КАК База,
| НачисленияБазаНачисления.НомерСтроки КАК НомерСтроки
|ИЗ
| РегистрРасчета.Начисления.БазаНачисления(&ИзмеренияОсновного,
|										 &ИзмеренияБазового,,
|										  Регистратор=&Регистратор И
|										  ВидРасчета=&ВидРасчета И
|										  Персонал В(&СписокПерсонала))
| КАК НачисленияБазаНачисления";

Измер = Новый Массив(1);
Измер[0]="Персонал";
Запрос.УстановитьПараметр("ИзмеренияОсновного", Измер);
Запрос.УстановитьПараметр("ИзмеренияБазового", Измер);
Запрос.УстановитьПараметр("Регистратор", Регистратор);
Запрос.УстановитьПараметр("ВидРасчета", ТребуемыйВидРасчета);
Запрос.УстановитьПараметр("СписокПерсонала", СписокПерсонала);
ВыборкаРезультата=Запрос.Выполнить().Выбрать();
Для Каждого ЗаписьРегистра Из НаборЗаписейРегистра Цикл
СтруктураНомер=Новый Структура("НомерСтроки");
СтруктураНомер.НомерСтроки=ЗаписьРегистра.НомерСтроки;
ВыборкаРезультата.Сбросить();
Если ВыборкаРезультата.НайтиСледующий(СтруктураНомер) тогда
ЗаписьРегистра.Результат=ВыборкаРезультата.База*(10/100);
Сообщить("Выполнен расчет"+ЗаписьРегистра.Регистратор+"-"+ЗаписьРегистра.ВидРасчета+"-"+ЗаписьРегистра.Персонал,);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры

Ошибка в ВыборкаРезультата.Норма и ВыборкаРезультата.Факт, Работаю по Родченко
мне кажеться что ошибка не от туда идёт, ао этому выложил бызу (она очень маленькая) очень надо помогите, пожалуйста
 

Вложения

  • 1_.rar
    140,1 КБ · Просмотры: 120
A

aimp

всё, ошибка найдена. График работы и график выдачи зарплаты не совпадал
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!