Смекни!
smekni.com

Анализ системы бухгалтерского учета по расчетам с персоналом по оплате труда на предприятии (стр. 8 из 8)

Записываем процедуру «ПриОткрытии».

Синтаксис «ПриЗаписиПерепроводить(1)» устанавливает режим

обязательного перепроведения при записи ранее проведенного документа.


Рис.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. Так как задан параметр «Сортировать по алфавиту», то соответственно в процедуре указываем этот параметр. Для этого выбираем строки, по необходимости редактируем, то есть выбираем по убыванию или по возрастанию и активизируем данный режим. Весь порядок действий указываем в процедуре.

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