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