Дипломная работа: Анализ системы бухгалтерского учета по расчетам с персоналом по оплате труда на предприятии
обязательного перепроведения при записи ранее
проведенного документа.
Рис.5.31.Окно «Модуль формы документа»
Процедура «ПриВводеСтроки» в соответствии с рис.5.32
предусмотрена для того, чтобы контролировать действия пользователя, то есть
означает: если пользователь начинает вводить Сотрудника, но при этом ранее не
выбрал Календарь, то программа должна сделать предупреждение: «Не выбран
календарь!», если же Календарь выбран, но не заполнен, то выходит предупреждение
«Не заполнен календарь!». Это необходимо для того, чтобы программа могла
посчитать отработанное время согласно календарю предприятия. И пока не будет
заполнен и выбран календарь, ввод строки невозможен.
Рис.5.32. Процедура «ПриВводеСтроки»
Создаем процедуру для
расчета одного сотрудника по строкам:
Сотрудник, тариф, отработанные дни, отработанные часы,
дни ремонта, часы ремонта, часы сверхнормы все эти показатели берутся из
соответствующих справочников и граф, для подсчета суммы общей, суммы ремонта,
суммы сверхнормы. Создавая эту процедуру мы учитываем, что если неизвестен какой
либо показатель, то он может заменяться каким-нибудь из справочника: например,
если неизвестен тариф водителя, то оплата его труда может рассчитываться по
окладу, а оклад берется из Справочника «Сотрудники», где он и указан. Если у
водителя отсутствуют дни и часы сверхнормы или дни и часы ремонта (в данном
случае они будут равны 0), то процедура предусматривает не брать такие
показатели для расчета общей суммы.
Написание процедуры в
«Модуле документа»:
Процедура РасчетОдного()
Если Сотрудник.Выбран()=1
Тогда
Если Тариф<>0 Тогда
ТекТариф=Тариф/ЧасовПоНорме;
Иначе
Если
глФормаТрудаПоТарифуОкладу(Сотрудник.ФормаТруда.Получить(ДатаДок))
= "Оклад"
Тогда
ТекТариф=глПолучитьСуммуИзРеквизита(Сотрудник.Оклад.Получить
(ДатаДок),ДатаДок)//ЧасовПоНорме;
Тариф=глПолучитьСуммуИзРеквизита(Сотрудник.Оклад.Получить(ДатаДок)
,ДатаДок);
Иначе
ТекТариф=глПолучитьСуммуИзРеквизита(Сотрудник.Оклад.Получить
(ДатаДок),ДатаДок);
Тариф=ТекТариф*ЧасовПоНорме;
КонецЕсли;
КонецЕсли;
Если ОтрЧасов<>0
Тогда
Сумма=ТекТариф*ОтрЧасов;
Иначе
Если ОтрДней <>0
Тогда
ОтрЧасов=ОтрДней *8;
Сумма=ТекТариф*ОтрЧасов;
КонецЕсли;
КонецЕсли;
Если РемЧасов<>0
Тогда
СумРем=ТекТариф*РемЧасов;
Если РемДней <>0
Тогда
РемЧасов=РемДней *8;
СумРем=ТекТариф*РемЧасов;
КонецЕсли;
КонецЕсли;
Если СверхЧасов<>0
Тогда
ПоловинаЧасов=СверхЧасов/2;
ЗаПервыеЧасы=ПоловинаЧасов*ТекТариф*(Константа.КоэффициентОплатыСверхУрочных
ЧасовНачальный-1);
ЗаПоследующиеЧасы=ПоловинаЧасов*ТекТариф*
(Константа.КоэффициентОплатыСверхУрочныхЧасовПоследующих-1);
СуммаСверх=ЗаПервыеЧасы+ЗаПоследующиеЧасы;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Процедура «ПриОкончанииРедактированияСтроки»
подразумевает, что по окончании ввода показателей отработанного времени по
строке они будут подсчитываться автоматически в соответствии с рис.5.33.
Рис.5.33. Процедура «ПриОкончанииРедактированияСтроки»
Создаем процедуру «ЧасовПоНорме», она подразумевает, что
данные по часам рабочих будут заноситься в журнал расчетов «Зарплата» и часы по
норме должны соответствовать выбранному календарю для данной категории
работников в соответствии с рис.5.34.

Рис.5.34. Процедура «ЧасовПоНорме»
Составляем процедуры по работе с кнопками «Сортировка» и
«Дубль» в соответствии с рис.5.35. Так как задан параметр «Сортировать по
алфавиту», то соответственно в процедуре указываем этот параметр. Для этого
выбираем строки, по необходимости редактируем, то есть выбираем по убыванию или
по возрастанию и активизируем данный режим. Весь порядок действий указываем в
процедуре.
Процедура «Дубль» должна быть тоже расписана. В ней предусматривается
то, что при повторяющихся записях сотрудников нет необходимости постоянного
внесения одних и тех же фамилий, достаточно при выборе дублирующего сотрудника
нажать кнопку «Дубль» в «Форме документа. Водители». И фамилия сотрудника
запишется в новой строке еще раз.
|