Конфигурирование программы "1С:Предприятие" на основе предприятия сельскохозяйственной отрасли

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?тиРасчет (Сотрудник, ВидРасчета. ЗаВечерниеЧасыНов,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);

КонецЕсли;

Если (ВПолуторном 0) и (Флаг = 1) Тогда

ЖрнЗарплата. УстановитьРеквизит (НомерСтрокиДокумента, НомерСтроки);

ЖрнЗарплата. УстановитьРеквизит (Часы, ВПолуторном + ВДвойном);

ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ОплатаСверхурочныхНов,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);

КонецЕсли;

Если (ЧасыПрВых <> 0) и (Флаг = 1) Тогда

ЖрнЗарплата. УстановитьРеквизит (НомерСтрокиДокумента, НомерСтроки);

ЖрнЗарплата. УстановитьРеквизит (Часы, ЧасыПрВых);

ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. ДоплатаЗаПраздничныеНов,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);

КонецЕсли;

Если (Прогулы <> 0) тогда

ЖрнЗарплата. УстановитьРеквизит (НомерСтрокиДокумента, НомерСтроки);

ЖрнЗарплата. УстановитьРеквизит (Дни, Прогулы);

ЖрнЗарплата. УстановитьРеквизит (Результат, 0);

ЖрнЗарплата. УстановитьРеквизит (Рассчитана, 1);

ЖрнЗарплата. УстановитьРеквизит (Фиксирована, 1);

ЖрнЗарплата. ВвестиРасчет (Сотрудник, ВидРасчета. Прогулы,? (ПустоеЗначение(Дата1)=0, Дата1, НачМесяца(ДатаДок)),? (ПустоеЗначение(Дата2)=0, Дата2, КонМесяца(ДатаДок)), 0);

Тариф = Сотрудник. Оклад. Получить (КонМесяца(ДляДнейЧасов));

Если Тариф > 0 тогда

Тариф = Тариф

Иначе

Тариф = Сотрудник. Оклад. Получить (КонМесяца(ДляДнейЧасов)).Тариф. Получить (КонМесяца(ДляДнейЧасов));

КонецЕсли;

КонецЕсли;

глДобавитьСообщение (глОбработчикСообщений, У сотрудника +Сотрудник+ изменялись расчетные данные (оклад или тариф) на + Тариф +! Введите табель по измененным данным!!!,);

КонецЕсли;

ПриВводеСотрудника(Сотрудник);

КонецЕсли;

КонецЦикла;

СортироватьСтроки (Сотрудник);

КонецПроцедуры

Процедура Очистить()

Если Вопрос (Внимание!!! Список сотрудников будет очищен.

Продолжить?, Да+Нет)= Нет Тогда

Возврат

КонецЕсли;

УдалитьСтроки();

КонецПроцедуры

Процедура Переключение()

Если Флаг <> 1 Тогда

Форма. ЧасыНоч. Доступность(0);

Форма. ЧасыВеч. Доступность(0);

Форма.ВПолуторном. Доступность(0);

Форма. Вдвойном. Доступность(0);

Форма. ЧасыПрВых. Доступность(0);

Иначе

Форма. ЧасыНоч. Доступность(1);

Форма. ЧасыВеч. Доступность(1);

Форма.ВПолуторном. Доступность(1);

Форма. Вдвойном. Доступность(1);

Форма. ЧасыПрВых. Доступность(1);

КонецЕсли;

Предупреждение (Перепроверте норму дней или часов!!!)

КонецПроцедуры

Процедура ПровестиИзФормы (НажатаКнопкаОК=0)

ПриЗаписиПерепроводить(0);

Записать();

Если ПроведенВПрошлом<>1 Тогда

ПриЗаписиПерепроводить(1);

КонецЕсли;

// если вызвали через кнопку ОК, то закроем форму

// и обработчик соообщений пуст

Если НажатаКнопкаОК=1 Тогда

Провести();

Форма. Закрыть();

Иначе

Провести();

КонецЕсли;

КонецПроцедуры // ПровестиИзФормы

СписокДействий = СоздатьОбъект (СписокЗначений);

Все виды расчетов связанные с отпусками и больничными

// +++ обнуляет сторнированные документы

Если (Перерасчет = 1) или (сторно = 1) тогда

Дни = 0;

Часы = 0;

Результат = 0;

Возврат

КонецЕсли;

Вид расчета Повременная

// Повременная оплата

Процедура ПровестиРасчет()

ЖрнЗарплата = СоздатьОбъект (ЖурналРасчетов. Зарплата);

// если запись исправлена или фиксирована, то ее не рассчитываем

Если (ЖрнЗарплата. Исправлена=1) или (ЖрнЗарплата. Фиксирована=1) Тогда

глСообщениеТрассировки (глСообщенияТрассировки, +? (ЖрнЗарплата. Исправлена=1, Результат записи исправлен вручную, Запись фиксирована) +. Расчет не проводился., 1);

Возврат

Иначе

Документ. ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);

ВсегоЧасов = Документ. НормаЧасов;

ЧасовЖ = Документ. Женские;

НаДату = Документ. Дата2;

Оклад = Документ. Тариф;

Тариф = Документ. Тариф;

Если Документ. Флаг = 1 Тогда

Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = Оклад) или (Тариф > 500) Тогда

Результат = Окр (Оклад*(Документ. Отработанно)/ВсегоЧасов, 2,1);

Иначе

Результат = Окр (Тариф*(Документ. Отработанно), 2,1);

КонецЕсли;

Иначе

Если (глФормаТрудаПоТарифуОкладу (Объект. ФормаТруда. Получить(НаДату)) = Оклад) или (Тариф > 500) Тогда

Результат = Окр (Оклад*(Документ. Отработанно)/ВсегоЧасов, 2,1);

Иначе

Результат = Окр (Тариф*(Документ. Отработанно), 2,1);

КонецЕсли;

КонецЕсли;

Если Документ. Флаг = 1 Тогда

Дней = Документ. Отработанно/8;

Часов = Документ. Отработанно;

Иначе

Дней = Документ. Отработанно;

Часов = Документ. Отработанно*8;

КонецЕсли;

Если Документ. ФлагДЧ = 1 тогда

Дни = 0;

Часы = 0;

Иначе

Дни =? (Сторно=1, - Дней, Дней);

Часы =? (Сторно=1, - Часов, Часов);

КонецЕсли;

Если Документ. ДниФ <> 0 тогда

ДниФ = Документ. ДниФ;

КонецЕсли;

КонецЕсли;

КонецПроцедуры // ПровестиРасчет()

Вид расчета ПремияНовая

// Премия для повременки

Процедура ПровестиРасчет()

ЖрнЗарплата = СоздатьОбъект (ЖурналРасчетов. Зарплата&