Ситуация, когда ведомости на аванс заполняются не автоматически, а на основании бумажных или электронных списков от начальников подразделений, встречается довольно часто. Однако «ручной» ввод данных неизбежно ведет к ошибкам: в список могут попасть сотрудники, находящиеся в отпуске или на больничном, либо, наоборот, могут быть забыты те, кто только что вышел на работу. В этой статье мы подробно разберем, как автоматизировать проверку таких ведомостей в программе 1С:Зарплата и управление персоналом 3.1, используя штатные механизмы и возможности программирования.
Самый надежный способ проверить «ручной» список — сопоставить его с данными, которые видит сама система. Даже если вы не планируете использовать расчетный метод аванса на постоянной основе, документ НачислениеЗаПервуюПоловинуМесяца может послужить отличным инструментом аудита. Рассмотрим алгоритм действий:
Начисление за первую половину месяца за нужный период.Проанализируем ситуацию: если в вашем внутреннем регламенте указано, что аванс не платится даже при наличии одного дня отгула, этот документ все равно будет полезен. В нем отображается количество отработанных дней и часов. Вы можете быстро отфильтровать тех, у кого норма отработана не полностью, и исключить их из итоговой ведомости.
Для более продвинутых пользователей и программистов эффективным решением станет обращение к регистру сведений СостоянияСотрудников. Разберем, почему этот метод работает лучше всего для оперативной проверки.
Записи в этом регистре появляются сразу после проведения кадровых документов (Приказ на отпуск, Больничный лист, Отсутствие с сохранением оплаты и др.). Вам не нужно ждать конца месяца или формирования табеля. Рассмотрим программную логику, которую можно внедрить во внешнюю обработку проверки:
// Пример логики для проверки наличия отклонений
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СостоянияСотрудников.Сотрудник КАК Сотрудник,
| СостоянияСотрудников.Состояние КАК Состояние,
| СостоянияСотрудников.ПериодЗавершения КАК ДатаОкончания
|ИЗ
| РегистрСведений.СостоянияСотрудников КАК СостоянияСотрудников
|ГДЕ
| СостоянияСотрудников.Сотрудник В(&СписокСотрудников)
| И СостоянияСотрудников.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа)";
Выясним причину, по которой этот регистр является приоритетным: в отличие от регистра Данные состояний сотрудников, информация в СостоянияСотрудников консолидирует все виды неявок. Если на дату выплаты аванса (например, 15-е число) у сотрудника в этом регистре стоит состояние, отличное от «Работа», это сигнал к тому, что его включение в ведомость требует дополнительной проверки.
Если вы хотите оставить процесс заполнения ведомостей «ручным», но при этом исключить ошибки, можно разработать внешнюю обработку заполнения табличной части. Она будет работать следующим образом:
Состав и для каждого сотрудника проверяет наличие записей в регистрах отклонений за период с 1-го по 15-е число.Такой подход позволяет сохранить привычный бизнес-процесс, добавив в него жесткий автоматизированный контроль.
Если нет возможности привлекать программиста, воспользуемся штатным инструментом Универсальный отчет. Рассмотрим подробнее, как его настроить для наших целей:
Состояние НЕ РАВНО Работа.Проанализируем условие, упомянутое в обсуждении: «аванс выплачивается только тем, кто отработал первую половину месяца полностью». Важно помнить: с точки зрения статьи 136 ТК РФ и актуальных писем Минтруда, выплата аванса (заработной платы за первую половину месяца) должна производиться за фактически отработанное время.
Если сотрудник отработал 10 дней из 11, а 1 день был в отгуле, вы обязаны выплатить ему зарплату за эти 10 дней. Лишение аванса целиком из-за одного дня пропуска является нарушением законодательства. Однако, если ваша учетная политика непоколебима, вышеописанные технические методы позволят вам реализовать этот алгоритм максимально точно.
Посмотрим на ситуацию с «забытыми» сотрудниками. Чтобы программа видела тех, кто вернулся из длительных отпусков или декретов, необходимо убедиться, что в системе оформлены документы Возврат из отпуска по уходу или правильно закрыты больничные листы. Если кадровый учет ведется оперативно, стандартная кнопка Заполнить в ведомости (при установленном способе выплаты аванса «Расчетом за первую половину месяца») всегда подтянет актуальный состав работающих сотрудников.
Подводя итог, наиболее эффективным решением будет постепенный отход от «бумажных списков» начальников подразделений в пользу оперативного ввода данных о неявках в 1С. В этом случае проверка ведомости превращается в простую формальность, выполняемую нажатием одной кнопки.