В практической работе бухгалтера и кадровика нередко возникают ситуации, когда задним числом выясняются новые подробности об отсутствии сотрудника на рабочем месте. Классический пример: сотруднику был оформлен документ Прогул, неявка, а спустя время он принес справку о сдаче крови (донорский день). Пользователь вводит документ Отсутствие с сохранением среднего заработка, но в табеле учета рабочего времени и кадровых отчетах всё равно продолжает отображаться прогул («ПР»).
В этой статье мы подробно разберем, почему возникает данная коллизия в программе «1С:Зарплата и управление персоналом 8» (редакция 3.1), как устроен механизм вытеснения начислений и приоритетов состояний, а также рассмотрим пошаговые сценарии решения этой проблемы как в открытом, так и в закрытом периодах.
Для того чтобы эффективно решать подобные проблемы, проанализируем внутреннее устройство программы. В 1С:ЗУП 3.1 за регистрацию времени и расчет начислений отвечают несколько взаимосвязанных механизмов:
СостоянияСотрудников, где прогул имеет высокий приоритет, поэтому кадровые отчеты продолжают показывать именно его.Давайте разберем по шагам все возможные способы устранения этой коллизии.
Если мы хотим, чтобы в будущем при случайном наложении документов программа автоматически отдавала приоритет оплате по среднему заработку (например, донорским дням) и вытесняла прогул из расчетного листа, нам необходимо настроить приоритеты начислений.
Рассмотрим подробнее, как это сделать:
Оплата за дни сдачи крови и ее компонентов или аналогичное начисление с назначением «Оплата по среднему заработку»).Прогул (а также, при необходимости, Отсутствие по невыясненной причине).После выполнения этой настройки программа при расчете заработной платы автоматически вытеснит сумму за прогул оплатой по среднему заработку, и в расчетном листке двоить начисления больше не будет.
Если расчетный период еще не закрыт и дата запрета редактирования позволяет вносить изменения, самым методологически верным решением будет физическое устранение наложения документов.
Проанализируем две возможные ситуации:
Ситуация А: Прогул был зарегистрирован ровно на тот день, который оказался донорским.
В этом случае нам достаточно просто отменить проведение документа Отсутствие (болезнь, прогул, неявка) за этот день или полностью удалить его. Вместо него мы проводим только документ Отсутствие с сохранением оплаты. После этого состояние сотрудника вернется в норму.
Ситуация Б: Прогул был введен на длительный период (например, с 1 по 5 число), а донорским днем оказалось только 3 число.
Здесь просто удалить документ прогула нельзя, так как за остальные дни (1, 2, 4 и 5 число) прогул должен быть сохранен. Нам нужно исключить спорную дату из периода прогула:
Отсутствие (болезнь, прогул, неявка).Отсутствие с сохранением оплаты на освободившуюся дату — 03.06.Если период, в котором был проведен ошибочный прогул, уже закрыт для редактирования, программа не позволит нам изменить или распровести старый документ напрямую. Для этого в 1С:ЗУП 3.1 реализован специальный механизм исправлений.
Разберем этот процесс по шагам:
Отсутствие (болезнь, прогул, неявка), который нужно скорректировать.Отсутствие с сохранением оплаты за этот день. Программа успешно проведет его и рассчитает оплату по среднему заработку.Часто пользователи выполняют все вышеописанные действия, но в печатной форме табеля и кадровых отчетах все равно упорно отображается код «ПР». Выясним, почему это происходит.
Как мы уже упоминали, документ Табель имеет приоритет над всеми остальными документами отклонений. Если вы сначала создали «Табель» за месяц, а уже потом начали вводить документы исправлений донорских дней, «Табель» автоматически не обновится.
Чтобы решить эту проблему, выполним следующие действия:
Табель за тот месяц, в котором происходило исправление.Табель.Важный совет от методологов 1С: Чтобы избежать подобных проблем в будущем, в организациях с простым графиком работы рекомендуется вообще отказаться от создания документов Табель. В 1С:ЗУП 3.1 учет времени отлично ведется методом отклонений. Программа сама прекрасно собирает данные для начисления зарплаты на основании графика сотрудника и введенных документов-отклонений (больничные, отпуска, прогулы, донорские).
Для технических специалистов и продвинутых пользователей полезно знать, как программа считывает данные для кадровой отчетности. Записи о состояниях формируются в периодическом регистре сведений. Посмотрим на пример концептуального запроса, с помощью которого система определяет, в каком состоянии находится сотрудник на определенную дату:
ВЫБРАТЬ
СостоянияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
СостоянияСотрудниковСрезПоследних.Состояние КАК Состояние,
СостоянияСотрудниковСрезПоследних.Период КАК Период
ИЗ
РегистрСведений.СостоянияСотрудников.СрезПоследних(&Период, Сотрудник = &Сотрудник) КАК СостоянияСотрудниковСрезПоследних
Если в результате наложения документов в этот регистр запишутся две разные записи на одну дату, поведение программы станет непредсказуемым: отчеты могут показывать одно состояние, а расчетные листки — другое. Именно поэтому физическое исправление исходных документов (через создание документов-исправлений или корректировку дат) является единственным надежным способом поддержания порядка в базе данных.
Совместное применение настроек приоритетов начислений и правильного исправления кадровых документов позволит вам навсегда забыть о проблемах пересечения периодов неявок в программе 1С:ЗУП 3.1.