Имя: Пароль:
1C
1С v8
Оклад не расчитывается
0 Marry04
 
18.04.16
13:28
Не расчитывается фактический размер оклада, в зависимости от количества прогулянных дней.
в чем дело?

Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    ////// регистр НачисленияИУдержания
    Движения.НачисленияИУдержания.Записывать = Истина;
    Для Каждого ТекСтрокаНачисленияИУдержания Из НачисленияИУдержания Цикл
        Движение = Движения.НачисленияИУдержания.Добавить();
        Движение.Сторно = Ложь;
        Движение.ВидРасчета = ТекСтрокаНачисленияИУдержания.ВидРасчета;
        Движение.ПериодРегистрации = ПериодРегистрации;
        Движение.Сотрудник = ТекСтрокаНачисленияИУдержания.Сотрудник;
        Движение.ИсходныеДанные = ТекСтрокаНачисленияИУдержания.Начислено;
        Движение.ГрафикРаботы = ТекСтрокаНачисленияИУдержания.ГрафикРаботы;
        
    Если   ТекСтрокаНачисленияИУдержания.ВидРасчета=ПланыВидовРасчета.ВидыРасчетов.Премия Тогда;
            Движение.БазовыйПериодНачало= НачалоМесяца(ПериодРегистрации);
            Движение.БазовыйПериодКонец=КонецМесяца(ПериодРегистрации);    
    КонецЕсли;
        
    Если Движение.ВидРасчета = ПланыВидовРасчета.ВидыРасчетов.Прогул Тогда;
            Движение.ПериодДействияНачало = ТекСтрокаНачисленияИУдержания.ДатаНачала;
            Движение.ПериодДействияКонец = ТекСтрокаНачисленияИУдержания.ДатаОкончания;
        Иначе
            Движение.ПериодДействияНачало= НачалоМесяца(ПериодРегистрации);
            Движение.ПериодДействияКонец=КонецМесяца(ПериодРегистрации);
    КонецЕсли;

КонецЦикла;

Движения.НачисленияИУдержания.Записать();  // запись сформированных движений
Для каждого Движение из Движения.НачисленияИУдержания Цикл
    
    Если  Движение.ВидРасчета = ПланыВидовРасчета.ВидыРасчетов.Оклад Тогда
        
        План = Движение.ПолучитьДанныеГрафика(ВидПериодаРегистраРасчета.ПериодДействия) ;
        Факт = Движение.ПолучитьДанныеГрафика(ВидПериодаРегистраРасчета.ФактическийПериодДействия) ;
       Движение.Результат= Движение.ИсходныеДанные*Факт[0].РабочийДень/План[0].РабочийДень;
    КонецЕсли;
КонецЦикла;
Движения.НачисленияИУдержания.Записать();




    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
1 Marry04
 
18.04.16
13:28
Процедура ОбработкаПроведения(Отказ, Режим)
    //{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    ////// регистр НачисленияИУдержания
    Движения.НачисленияИУдержания.Записывать = Истина;
    Для Каждого ТекСтрокаНачисленияИУдержания Из НачисленияИУдержания Цикл
        Движение = Движения.НачисленияИУдержания.Добавить();
        Движение.Сторно = Ложь;
        Движение.ВидРасчета = ТекСтрокаНачисленияИУдержания.ВидРасчета;
        Движение.ПериодРегистрации = ПериодРегистрации;
        Движение.Сотрудник = ТекСтрокаНачисленияИУдержания.Сотрудник;
        Движение.ИсходныеДанные = ТекСтрокаНачисленияИУдержания.Начислено;
        Движение.ГрафикРаботы = ТекСтрокаНачисленияИУдержания.ГрафикРаботы;
        
    Если   ТекСтрокаНачисленияИУдержания.ВидРасчета=ПланыВидовРасчета.ВидыРасчетов.Премия Тогда;
            Движение.БазовыйПериодНачало= НачалоМесяца(ПериодРегистрации);
            Движение.БазовыйПериодКонец=КонецМесяца(ПериодРегистрации);    
    КонецЕсли;
        
    Если Движение.ВидРасчета = ПланыВидовРасчета.ВидыРасчетов.Прогул Тогда;
            Движение.ПериодДействияНачало = ТекСтрокаНачисленияИУдержания.ДатаНачала;
            Движение.ПериодДействияКонец = ТекСтрокаНачисленияИУдержания.ДатаОкончания;
        Иначе
            Движение.ПериодДействияНачало= НачалоМесяца(ПериодРегистрации);
            Движение.ПериодДействияКонец=КонецМесяца(ПериодРегистрации);
    КонецЕсли;

КонецЦикла;

Движения.НачисленияИУдержания.Записать();  // запись сформированных движений
Для каждого Движение из Движения.НачисленияИУдержания Цикл
    
    Если  Движение.ВидРасчета = ПланыВидовРасчета.ВидыРасчетов.Оклад Тогда
        
        План = Движение.ПолучитьДанныеГрафика(ВидПериодаРегистраРасчета.ПериодДействия) ;
        Факт = Движение.ПолучитьДанныеГрафика(ВидПериодаРегистраРасчета.ФактическийПериодДействия) ;
       Движение.Результат= Движение.ИсходныеДанные*Факт[0].РабочийДень/План[0].РабочийДень;
    КонецЕсли;
КонецЦикла;
Движения.НачисленияИУдержания.Записать();




    //}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры
2 Amra
 
18.04.16
13:39
Продолжайте наблюдения
3 Marry04
 
18.04.16
13:44
значение результата равно сумме оклада исходной, без учета прогулов.