Разберем частую ситуацию, возникающую при расчете заработной платы в конфигурации 1С:Зарплата и управление персоналом. Предположим, сотрудники предприятия питаются в столовой, и данные об удержаниях за питание подаются ответственным лицом (кассиром) один раз в конце месяца. При этом мы вносим эти сведения с помощью типового документа ДанныеДляРасчетаЗарплаты последним числом месяца. Проблема возникает, если сотрудник уволился в середине месяца: стандартные механизмы программы не рассчитывают для него это удержание.
Проанализируем логику работы 1С:ЗУП, чтобы понять причину такого поведения. Алгоритмы расчета зарплаты и удержаний в системе жестко привязаны к кадровому статусу сотрудника и периоду действия показателей на момент проведения документа. Если документ ДанныеДляРасчетаЗарплаты проводится последним днем месяца, программа фиксирует значения показателей в регистрах именно на эту дату. Для сотрудника, уволенного, например, 15-го числа, на конец периода кадровое состояние устанавливается как «Уволен».
Базовые механизмы платформы 1С автоматически исключают неактивных (уволенных) сотрудников из текущих процессов начисления и удержания. Поэтому стандартный расчет на конец месяца их игнорирует. Кроме того, чтобы удержание автоматически попало в окончательный расчет, данные о нем должны физически присутствовать в регистрах расчета до момента проведения документа Увольнение.
Вместо документа ввода показателей для разовых взысканий целесообразно использовать другой механизм. Рассмотрим в качестве альтернативы документ УдержаниеПоПрочимОперациям. Он позволяет более гибко управлять сроками и назначается на строго определенный период. В этом документе мы можем зафиксировать сумму долга за питание той датой, когда сотрудник еще числился в организации. Это позволит системе корректно учесть сумму при формировании расчетного листка.
Если бизнес-процесс (получение данных от столовой только в конце месяца) изменить невозможно, а выплата уволенному сотруднику задерживается до начала следующего месяца, применим следующий алгоритм действий:
ДанныеДляРасчетаЗарплаты и устанавливаем дату его проведения равной дате увольнения этого сотрудника.Увольнение.Рассмотрим ситуацию, когда данные по питанию поступают и проводятся уже после того, как произведен окончательный расчет и выплачены деньги уволенному. В этом случае за бывшим работником образуется долг (сальдо). Для корректного закрытия таких ситуаций в программе мы используем специализированные документы:
ВозвратСотрудникомЗадолженности — применяем, если бывший работник добровольно вносит сумму долга в кассу предприятия или долг удерживается иным способом.Если ручной контроль занимает слишком много времени из-за большой текучки кадров, автоматизируем процесс с помощью программирования. Решим задачу технически, не снимая конфигурацию с поддержки. Рассмотрим два варианта:
ДанныеДляРасчетаЗарплаты последним днем месяца, а для каждого уволенного — индивидуальные документы, программно устанавливая дату проведения равной дате его увольнения.ДанныеДляРасчетаЗарплаты. При проведении общего документа на конец месяца, наш добавленный алгоритм будет проверять кадровый статус каждого человека из табличной части. Если сотрудник уволен, система будет программно сдвигать дату записи в регистрах расчета с конца месяца на фактическую дату увольнения. Это позволит бухгалтеру вносить всех сотрудников в один документ, сохраняя при этом корректность регистров 1С.