При работе в программе «1С:Зарплата и управление персоналом» редакции 2.5 пользователи часто сталкиваются с ситуацией, когда стандартные документы отклонений (например, отпуск за свой счет, больничный или основной отпуск) некорректно «вырезают» часы из графика, если смена сотрудника является переходящей (начинается в одни календарные сутки, а заканчивается в другие). Рассмотрим подробнее, почему это происходит и какими способами можно добиться корректного отражения данных в табеле Т-13 и начислении заработной платы.
Проанализируем ситуацию, описанную пользователем. Сотрудник работает по графику «2 через 2» с ночными сменами с 20:00 до 08:00. При оформлении отпуска за свой счет на конкретную дату, например, 17-е число, программа автоматически убирает только 4 часа, которые приходятся на период с 20:00 до 00:00 17-го числа. Оставшиеся 8 часов (с 00:00 до 08:00 18-го числа) остаются в системе как рабочие, хотя фактически сотрудник в это время не работал, так как его смена целиком «попала» под отсутствие.
Выясним причину такого поведения системы. В конфигурации ЗУП 2.5 учет рабочего времени и механизм вытеснения видов расчета жестко привязаны к календарным суткам (с 00:00 до 23:59:59). Программа не оперирует понятием «рабочая смена» как единым неделимым объектом, если она пересекает границу суток. Когда мы вводим документ отклонения на 17-е число, механизм вытеснения анализирует записи регистра расчета только за этот календарный день. Все, что запланировано на 18-е число, считается программой другим рабочим днем, на который действие документа от 17-го числа не распространяется.
Самый простой и оперативный способ исправить ситуацию — это ручная корректировка данных в документе Табель учета рабочего времени. Рассмотрим этот процесс по шагам:
Табель учета рабочего времени (через меню «Расчет зарплаты» — «Отчеты и документы» — «Табель»).ДО (Отпуск за свой счет) или оставим ячейку пустой, если документ отклонения уже зарегистрировал отсутствие на 17-е число, а на 18-е мы просто хотим убрать ошибочное начисление.Важный нюанс: при наличии проведенного документа Табель учета рабочего времени программа при автоматическом начислении зарплаты (документ Начисление зарплаты сотрудникам организаций) будет брать данные именно из него, игнорируя плановый график. Это позволяет «победить» автоматику, которая не видит связи между днями.
Разберем альтернативный подход, который часто применяют методисты для упрощения учета «ночников». Если предприятие допускает отклонение бумажного табеля от фактического поминутного присутствия (в рамках разумного), можно изменить настройки графика в справочнике Графики работы.
Вместо того чтобы дробить 12-часовую смену на 4 часа сегодня и 8 часов завтра, мы можем поставить все 12 часов на день начала смены. Посмотрим на пример:
При такой настройке, когда вы введете отпуск за свой счет на 17-е число, программа увидит в графике все 12 часов и успешно вытеснит их целиком. Проблема будет решена автоматически без ручных правок табеля. Однако помните, что этот метод может вызвать замечания у проверяющих органов, если фактический выход сотрудника на работу (например, по проходной) будет зафиксирован 18-го числа, а в табеле это будет значиться выходным днем.
Проанализируем ситуацию с точки зрения кадрового учета. Если сотрудник не выходит на смену, которая длится с вечера 17-го до утра 18-го, то фактически он отсутствует на рабочем месте в обе эти календарные даты. Посмотрим, как это отразить в программе правильно:
Необходимо оформить документ Отпуска организаций (кадровый) и Невходы в организации (расчетный) на период с 17 по 18 число включительно. В этом случае:
Этот метод является самым корректным с точки зрения логики ЗУП 2.5, но он требует административного решения: в приказе на отпуск за свой счет должно быть указано два дня, и сотрудник должен подписать такой приказ. Если приказ издан только на один день (17-е), использовать этот метод без переделки документов нельзя.
Для понимания того, как работает программа «под капотом», разберем работу регистра расчета Основные начисления сотрудников организаций. При проведении документа Начисление зарплаты система выполняет следующие действия:
1. Определяет плановое время по графику сотрудника (используется функция ПолучитьДанныеГрафика).
2. Ищет записи в регистре, которые имеют более высокий приоритет (документы отклонений).
3. Выполняет операцию «вырезания» периодов. Если период отклонения — только 17.04, то из плановых записей удаляется время только за 17.04.
В коде типовой конфигурации это выглядит примерно так (упрощенно):
// Логика поиска вытесняющих периодов
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ ПериодДействия
ИЗ РегистрРасчета.ОсновныеНачисленияСотрудниковОрганизаций
ГДЕ Сотрудник = &Сотрудник
И ПериодДействия МЕЖДУ &ДатаНачала И &ДатаОкончания";
Поскольку 18-е число не попадает в интервал &ДатаНачала и &ДатаОкончания (которые равны 17.04), часы 18-го числа остаются нетронутыми.
Важно отметить, что описанная проблема является одним из ключевых поводов для перехода на современную редакцию «1С:Зарплата и управление персоналом 3.1». В новой версии реализовано понятие «Внутрисменное отсутствие». Посмотрим, как это работает там:
В ЗУП 3.1 при регистрации отсутствия можно указать не только даты, но и конкретные часы или признак того, что отсутствие должно покрывать смену целиком, даже если она переходит на следующие сутки. Программа 3.1 автоматически «видит» непрерывность рабочей смены и корректно корректирует табель без применения «костылей», описанных выше.
Если вы продолжаете работать в ЗУП 2.5, придерживайтесь следующего алгоритма действий при работе с ночными сменами:
Рассмотренные нами методы позволяют добиться верного расчета начислений и формирования печатной формы Т-13, обеспечивая точность учета рабочего времени даже в условиях ограничений устаревшей архитектуры программного продукта.