1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

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

Тема в разделе "Базы данных и администрирование", создана пользователем aimp, 30 май 2010.

  1. aimp

    aimp Гость

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

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

    Вложения:

    • 1_.rar
      Размер файла:
      140,1 КБ
      Просмотров:
      5
  2. aimp

    aimp Гость

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

Поделиться этой страницей