При приеме сотрудников на работу кроме должности, оклада важным условием труда является график работы, определяющий рабочее и нерабочее время сотрудника.
Работа сотрудника, оформленная кадровым приказом в нерабочее время, является исключением и оплачивается иначе, чем работа в рабочее время, определяемое рабочим графиком.
Графики работы также используют для синхронизации работы подразделений. Это отражается на эффективном использовании рабочего времени организации в целом.
Необходимость использования графиков работы при расчете заработной платы сотрудникам является обязательным условием правильности ее начисления.
В среде разработки 1С:Предприятие 8.3 при решении расчетных задач, делая первичные начисления, используется отношение фактически отработанного времени к рабочему времени, определяемому рабочим графиком сотрудника. Без определения рабочего времени соответствующим графиком работы правильное начисление зарплаты сотрудникам было бы невозможно. Нужно учесть, что рабочее время сотрудников можно измерять рабочими днями и рабочими часами в зависимости от вида начисления: при часовой тарифной ставке формула начисления предусматривает фактически отработанное время в часах/рабочее время в часах по графику; при начислении окладов- фактически отработанное время в днях/ рабочее время в днях по графику.
Далее в статье будет описана последовательность действий разработчика при создании механизма рабочих графиков.
Конфигурирование
Для определения прикладного объекта конфигурации, который хранил бы рабочее и нерабочее время рабочего графика определим необходимые и достаточные реквизиты:
- Дата календаря - тип ДАТА.
-
Значение-тип ЧИСЛО:
Значение может содержать количество рабочих часов в день или 1= рабочему дню. Нерабочее время на дату определим Значением=0;
-
Наименование Графика.
Единицами рабочего времени могут быть дни или часы. Поэтому создадим перечисление для их хранения.
1. Перечисление «ЕдиницаРабочегоВремени»
Рисунок 1
Добавим значения единиц измерения времени.
Рисунок 2
Применяемые графики работы как объекты учета могут храниться в справочнике.
2. Справочник «ГрафикиРаботы»
Рисунок 3
В созданном справочнике должна храниться информация о количестве рабочих дней в неделю и количестве рабочих часов в рабочий день. Для этого создадим реквизиты:
- КоличествоРабочихДнейВНеделе;
- КоличествоРабочихЧасов;
- ЕдиницаРабочегоВремени.
Рисунок 4
Создадим форму элемента справочника для написания процедур в модуле формы.
Рисунок 5
Для заполнения и очистки рабочего графика создадим на форме команды:
- ЗаполнитьГрафик
- ОчиститьГрафик
Для заполнения периода графика добавим реквизиты: ДатаНачалаПериода; ДатаКонцаПериода.
Рисунок 6
Рисунок 7
3. Регистр сведений «ГрафикиРаботы»
Для хранения дат рабочего и нерабочего времени в течение указанного периода используем прикладной объект конфигурации – регистр сведений.
Создадим регистр сведений ГрафикиРаботы.
Рисунок 8
Добавим измерения: Дата –тип ДАТА и ГрафикРаботы-тип СправочникСсылка.ГрафикиРаботы.
Рисунок 9
4. Справочник «Праздники»
К нерабочему времени можно отнести праздничные дни. Для их создания и хранения создадим справочник Праздники.
Рисунок 10
Программирование
1. В модуле справочника «ГрафикиРаботы»
Создадим экспортную процедуру для заполнения периода, указанного датами его начала и окончания, рабочим и нерабочим временем и функцией, создающей наборы записей регистра сведений ГрафикиРаботы.
Рисунок 11
2. Общий модуль РасчетыНаСервере
В общем модуле РасчетыНаСервере напишем экспортную функцию, в которую в качестве параметров передадим КалендарнуюДату, чтобы определить по ней к рабочему или нерабочему времени она относится, ЕРВ-единицу рабочего времени, КРЧ-количество рабочих часов в неделе, КРД-количество рабочих дней в неделе и Наименование графика.
Рисунок 12
3. Модуль формы справочника ГрафикиРаботы
Создадим процедуру обработчик команды «ЗаполнитьГрафик».
Рисунок 13
Создадим процедуру обработчик команды «ОчиститьГрафик».
Рисунок 14
Использование механизма рабочих графиков пользователем в режиме 1С:Предприятие
1. Справочник «Праздники»
Заполняем справочник праздничными днями
Рисунок 15
2. Справочник «ГрафикиРаботы»
Заполним реквизиты элемента справочника:
- Наименование;
- Количество рабочих дней в неделе;
- Единицу рабочего времени;
- Дату начала и окончания периода заполнения рабочим и нерабочим временем.
А) Пример заполнения рабочими днями:
Рисунок 16
Выполним команду «ЗаполнитьГрафик» и проверим результат заполнения указанного периода рабочим и нерабочим временем в регистре «ГрафикиРаботы».
3. Регистр сведений «ГрафикиРаботы»
Проверим заполнение рабочими и нерабочими днями период графика.
Рисунок 17
Б) Пример заполнения рабочими часами:
Заполним реквизиты справочника «ГрафикиРаботы».
Рисунок 18
Рисунок 19
Статью по программированию в 1С:Предприятие 8.3 подготовил один из преподавателей Учебного центра Первого Бита.
Освойте навыки разработчика 1С на очных специализированных курсах от Центра Сертифицированного Обучения – компании «Первый Бит».