Как правильно отразить отсутствие сотрудника при переходящих ночных сменах в 1С:ЗУП 2.5

Бухгалтер 1С v8.3 (Обычные формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет
← На главную

При работе в программе «1С:Зарплата и управление персоналом» редакции 2.5 пользователи часто сталкиваются с ситуацией, когда стандартные документы отклонений (например, отпуск за свой счет, больничный или основной отпуск) некорректно «вырезают» часы из графика, если смена сотрудника является переходящей (начинается в одни календарные сутки, а заканчивается в другие). Рассмотрим подробнее, почему это происходит и какими способами можно добиться корректного отражения данных в табеле Т-13 и начислении заработной платы.

Разбор причины проблемы: архитектурная логика ЗУП 2.5

Проанализируем ситуацию, описанную пользователем. Сотрудник работает по графику «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-го числа не распространяется.

Способ 1: Использование документа «Табель учета рабочего времени»

Самый простой и оперативный способ исправить ситуацию — это ручная корректировка данных в документе Табель учета рабочего времени. Рассмотрим этот процесс по шагам:

  1. Создадим документ Табель учета рабочего времени (через меню «Расчет зарплаты» — «Отчеты и документы» — «Табель»).
  2. Выберем режим ввода данных «По дням». Это критически важно, так как именно в этом режиме мы получаем доступ к редактированию конкретных часов в конкретные сутки.
  3. Найдем нужного сотрудника и дату 18-го числа (вторая половина его смены).
  4. Вручную удалим цифры в колонках «Явка» (дневные часы) и «Ночные».
  5. Вместо рабочих часов проставим код ДО (Отпуск за свой счет) или оставим ячейку пустой, если документ отклонения уже зарегистрировал отсутствие на 17-е число, а на 18-е мы просто хотим убрать ошибочное начисление.
  6. Проведем документ.

Важный нюанс: при наличии проведенного документа Табель учета рабочего времени программа при автоматическом начислении зарплаты (документ Начисление зарплаты сотрудникам организаций) будет брать данные именно из него, игнорируя плановый график. Это позволяет «победить» автоматику, которая не видит связи между днями.

Способ 2: Настройка графиков работы (Метод переноса часов)

Разберем альтернативный подход, который часто применяют методисты для упрощения учета «ночников». Если предприятие допускает отклонение бумажного табеля от фактического поминутного присутствия (в рамках разумного), можно изменить настройки графика в справочнике Графики работы.

Вместо того чтобы дробить 12-часовую смену на 4 часа сегодня и 8 часов завтра, мы можем поставить все 12 часов на день начала смены. Посмотрим на пример:

При такой настройке, когда вы введете отпуск за свой счет на 17-е число, программа увидит в графике все 12 часов и успешно вытеснит их целиком. Проблема будет решена автоматически без ручных правок табеля. Однако помните, что этот метод может вызвать замечания у проверяющих органов, если фактический выход сотрудника на работу (например, по проходной) будет зафиксирован 18-го числа, а в табеле это будет значиться выходным днем.

Способ 3: Оформление отклонения на два календарных дня

Проанализируем ситуацию с точки зрения кадрового учета. Если сотрудник не выходит на смену, которая длится с вечера 17-го до утра 18-го, то фактически он отсутствует на рабочем месте в обе эти календарные даты. Посмотрим, как это отразить в программе правильно:

Необходимо оформить документ Отпуска организаций (кадровый) и Невходы в организации (расчетный) на период с 17 по 18 число включительно. В этом случае:

  1. За 17-е число программа вытеснит 4 часа (вечер).
  2. За 18-е число программа вытеснит 8 часов (утро).

Этот метод является самым корректным с точки зрения логики ЗУП 2.5, но он требует административного решения: в приказе на отпуск за свой счет должно быть указано два дня, и сотрудник должен подписать такой приказ. Если приказ издан только на один день (17-е), использовать этот метод без переделки документов нельзя.

Технические подробности механизма вытеснения

Для понимания того, как работает программа «под капотом», разберем работу регистра расчета Основные начисления сотрудников организаций. При проведении документа Начисление зарплаты система выполняет следующие действия:

1. Определяет плановое время по графику сотрудника (используется функция ПолучитьДанныеГрафика).
2. Ищет записи в регистре, которые имеют более высокий приоритет (документы отклонений).
3. Выполняет операцию «вырезания» периодов. Если период отклонения — только 17.04, то из плановых записей удаляется время только за 17.04.

В коде типовой конфигурации это выглядит примерно так (упрощенно):


// Логика поиска вытесняющих периодов
Запрос.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ ПериодДействия
               ИЗ РегистрРасчета.ОсновныеНачисленияСотрудниковОрганизаций
               ГДЕ Сотрудник = &Сотрудник
               И ПериодДействия МЕЖДУ &ДатаНачала И &ДатаОкончания";

Поскольку 18-е число не попадает в интервал &ДатаНачала и &ДатаОкончания (которые равны 17.04), часы 18-го числа остаются нетронутыми.

Рекомендация по переходу на ЗУП 3.1

Важно отметить, что описанная проблема является одним из ключевых поводов для перехода на современную редакцию «1С:Зарплата и управление персоналом 3.1». В новой версии реализовано понятие «Внутрисменное отсутствие». Посмотрим, как это работает там:

В ЗУП 3.1 при регистрации отсутствия можно указать не только даты, но и конкретные часы или признак того, что отсутствие должно покрывать смену целиком, даже если она переходит на следующие сутки. Программа 3.1 автоматически «видит» непрерывность рабочей смены и корректно корректирует табель без применения «костылей», описанных выше.

Резюме и выводы

Если вы продолжаете работать в ЗУП 2.5, придерживайтесь следующего алгоритма действий при работе с ночными сменами:

Рассмотренные нами методы позволяют добиться верного расчета начислений и формирования печатной формы Т-13, обеспечивая точность учета рабочего времени даже в условиях ограничений устаревшей архитектуры программного продукта.

← На главную