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