Конфигурирование программы "1С:Предприятие" на основе предприятия сельскохозяйственной отрасли
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
#187;);
// если запись исправлена или фиксирована, то ее не рассчитываем
Если (ЖрнЗарплата. Исправлена=1) или (ЖрнЗарплата. Фиксирована=1) Тогда
глСообщениеТрассировки (глСообщенияТрассировки, +? (ЖрнЗарплата. Исправлена=1, Результат записи исправлен вручную, Запись фиксирована) +. Расчет не проводился., 1);
Возврат
Иначе
Документ. ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);
Если Документ. Флаг =1 Тогда
ВсегоЧасов = Документ. НормаЧасов;
Иначе
ГрафикРаботы = Объект. ГрафикРаботы. Получить(ДатаОкончания);
ГрафикРаботы =? (ПустоеЗначение(ГрафикРаботы)=1, Константа. ОсновнойГрафик, ГрафикРаботы);
Календарь = ГрафикРаботы. ОсновныеЧасы;
НормаЧасов = Календарь. Часов (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
НормаДней = Календарь. Дней (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
ВсегоЧасов = Окр (Документ. НормаЧасов*НормаЧасов/НормаДней, 0,1);
КонецЕсли;
// ВсегоЧасов = Документ. НормаЧасов;
Если Документ. ФлагПремия = 1 тогда
Календарь = СоздатьОбъект (Календарь. ПолныйМесяц);
НормаЧасов = Календарь. Часов (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
НормаДней = Календарь. Дней (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
Если Документ. Флаг =1 Тогда
ВсегоЧасов = НормаЧасов
Иначе
ВсегоЧасов = НормаДней
КонецЕсли;
Иначе
ВсегоЧасов = Документ. НормаЧасов;
КонецЕсли;
ЧасовЖ = Документ. Женские;
НаДату = Документ. Дата2;
Оклад = Документ. Тариф;
Тариф = Документ. Тариф;
Отработанно = Документ. Отработанно;
ЧасовНочн = Документ. ЧасыНоч;
ЧасовПраздн = Документ. ЧасыПрВых;
Часов15 = Документ.ВПолуторном;
Часов2 = Документ.ВДвойном;
Класность = Документ. Класность;
Отгулы = Документ. Отгулы;
Если Документ. Флаг = 1 Тогда
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = Оклад) или (Тариф > 500) Тогда
РезультатПовр = Окр (Оклад*Отработанно/ВсегоЧасов, 2,1);
РезультатОтг = Окр (Оклад*Отгулы/ВсегоЧасов, 2,1);
Иначе
РезультатПовр = Окр (Тариф*Отработанно, 2,1);
РезультатОтг = Окр (Тариф*Отгулы, 2,1);
КонецЕсли;
Иначе
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = Оклад) или (Тариф > 500) Тогда
РезультатПовр = Окр (Оклад*Отработанно/ВсегоЧасов, 2,1);
РезультатОтг = Окр (Оклад*Отгулы/ВсегоЧасов, 2,1);
Иначе
РезультатПовр = Окр (Тариф*Отработанно, 2,1);
РезультатОтг = Окр (Тариф*Отгулы, 2,1);
КонецЕсли;
КонецЕсли;
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = Оклад) или (Тариф > 500) Тогда
ЗаОдинЧас = Оклад/ВсегоЧасов;
РезультатНочн = Окр (ЗаОдинЧас*ЧасовНочн*Константа. КоэффициентДоплатыЗаРаботуВНочноеВремя, 2,1);
РезультатПраздн = Окр (ЗаОдинЧас*ЧасовПраздн*(Константа. КоэффициентДоплатыЗаРаботуВПраздничныеДни-1), 2,1);
РезультатСверхУр = Окр (ЗаОдинЧас*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
Иначе
РезультатНочн = Окр (Тариф*ЧасовНочн*Константа. КоэффициентДоплатыЗаРаботуВНочноеВремя, 2,1);
РезультатПраздн = Окр (Тариф*ЧасовПраздн*(Константа. КоэффициентДоплатыЗаРаботуВПраздничныеДни-1), 2,1);
РезультатСверхУр = Окр (Тариф*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
КонецЕсли;
РезультатКл = Окр((РезультатПовр+РезультатНочн+РезультатПраздн+РезультатСверхУр)/100*Класность, 2,1);
Результат = Окр((РезультатПовр+РезультатНочн+РезультатПраздн+РезультатСверхУр+РезультатКл+РезультатОтг)/100*(Документ. Премия), 2,1);
КонецЕсли;
КонецПроцедуры // ПровестиРасчет()
Вид расчета ОплатаСверхурочныхНов
// Сверхурочные
Процедура ПровестиРасчет()
ЖрнЗарплата = СоздатьОбъект (ЖурналРасчетов. Зарплата);
Документ. ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);
// ВсегоЧасов = Документ. НормаЧасов;
Если Документ. Флаг =1 Тогда
ВсегоЧасов = Документ. НормаЧасов;
Иначе
ГрафикРаботы = Объект. ГрафикРаботы. Получить(ДатаОкончания);
ГрафикРаботы =? (ПустоеЗначение(ГрафикРаботы)=1, Константа. ОсновнойГрафик, ГрафикРаботы);
Календарь = ГрафикРаботы. ОсновныеЧасы;
НормаЧасов = Календарь. Часов (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
НормаДней = Календарь. Дней (НачМесяца(ДатаОкончания), КонМесяца(ДатаОкончания));
ВсегоЧасов = Окр (Документ. НормаЧасов*НормаЧасов/НормаДней, 0,1);
КонецЕсли;
Часов15 = Документ.ВПолуторном;
Часов2 = Документ.ВДвойном;
НаДату = Документ. Дата2;
Оклад = Документ. Тариф;
Тариф = Документ. Тариф;
Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = Оклад) или (Тариф > 500) Тогда
ЗаОдинЧас = Оклад/ВсегоЧасов;
Результат = Окр (ЗаОдинЧас*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
Иначе
Результат = Окр (Тариф*(Часов15*Константа. КоэффициентОплатыСверхУрочныхЧасовНачальный+Часов2*Константа. КоэффициентОплатыСверхУрочныхЧасовПоследующих), 2,1);
КонецЕсли;
Если Документ. ФлагДЧ = 1 тогда
Часы = 0;
Иначе
Часы =? (Сторно=1, - (Часов15+Часов2), (Часов15+Часов2));
КонецЕсли;
КонецПроцедуры
Заключение
В данной дипломной р