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