При работе в конфигурации Управление производственным предприятием (УПП) перед разработчиками часто встает задача формирования отчетов по отработанному времени для целей управленческого учета или выплаты неофициальных начислений. Если в компании не настроен процесс ведения документов Табель учета рабочего времени, получение корректных данных становится нетривиальной задачей. Давайте разберем, как подойти к решению этой проблемы, какие инструменты доступны и на что стоит обратить внимание.
Если в вашей системе все же ведется табельный учет, хотя бы частично, самым надежным источником данных будет регистр РабочееВремяРаботниковОрганизаций. Это специализированный регистр, который хранит итоговые данные, накопленные по результатам проведения документов табеля. Рассмотрим пример запроса, который позволит собрать данные в разрезе сотрудников и периодов:
ВЫБРАТЬ
РабочееВремяРаботниковОрганизаций.Сотрудник,
ГОД(РабочееВремяРаботниковОрганизаций.Период) КАК Год,
МЕСЯЦ(РабочееВремяРаботниковОрганизаций.Период) КАК Месяц,
СУММА(РабочееВремяРаботниковОрганизаций.Дней) КАК Дней
ИЗ
РегистрНакопления.РабочееВремяРаботниковОрганизаций КАК РабочееВремяРаботниковОрганизаций
СГРУППИРОВАТЬ ПО
РабочееВремяРаботниковОрганизаций.Сотрудник,
МЕСЯЦ(РабочееВремяРаботниковОрганизаций.Период),
ГОД(РабочееВремяРаботниковОрганизаций.Период)
Этот метод подходит только в том случае, если документ Табель учета рабочего времени заполняется и проводится. Если данные в регистре отсутствуют, этот способ не даст результатов.
Если табели не ведутся, мы можем попробовать вычислить отработанное время расчетным путем. Суть метода заключается в следующем:
Графики работы по видам времени. Это дает нам нормативное количество дней, которые сотрудник должен был отработать согласно своему графику.Данные состояний сотрудников. Сюда входят все виды невыходов: больничные, отпуска, прогулы и прочие причины, по которым сотрудник отсутствовал на рабочем месте.Такой подход требует написания более сложного запроса с объединением данных из нескольких регистров, но он позволяет получить более точную картину, чем простое использование данных по начислениям.
Автор темы в итоге пришел к использованию регистра ОсновныеНачисленияРаботниковОрганизаций. Это наиболее простой способ, так как он опирается на уже проведенные расчеты зарплаты. Рассмотрим нюансы этого способа:
Преимущества: Простота реализации, использование данных, которые уже прошли проверку при расчете заработной платы.
Недостатки: Данные появляются в регистре только после проведения документа Начисление зарплаты работникам организации. Если вы формируете отчет до закрытия месяца, вы не увидите актуальных данных за текущий период.
Разбирая задачу, мы выяснили несколько критически важных моментов, которые помогут вам избежать ошибок при разработке отчета:
Сверхурочные, Работа в выходные дни, Сменные графики. Простые запросы без учета этих особенностей почти всегда приводят к неверным цифрам.РабочееВремяРаботниковОрганизаций. Это временное, но надежное решение для «разовых» задач.Подводя итог, можно сказать, что не существует «волшебного» запроса, который выдаст точное количество отработанных дней, если эта информация не вносилась в систему через соответствующие документы. Выбирайте метод в зависимости от того, как глубоко вы готовы интегрироваться в текущую методологию учета вашей компании.