В процессе кадрового учета в программе 1С:Зарплата и Управление Персоналом 3.1 пользователи часто сталкиваются с особенностью работы унифицированной формы Т-7 (График отпусков). Основная сложность заключается в том, что при оформлении документа Перенос отпуска информация о новых датах отображается в колонках 8 и 9 формы за тот месяц, на который отпуск был запланирован изначально. Однако, если кадровик формирует отчет за месяц, на который отпуск был перенесен, сотрудник в него не попадает. Это создает неудобства при оперативном планировании и ознакомлении сотрудников с графиком.
В данной статье мы подробно рассмотрим, почему так происходит, какими стандартными средствами можно решить задачу и как при необходимости доработать отчет программно.
Прежде всего, проанализируем ситуацию с точки зрения архитектуры системы. Данные для графика отпусков хранятся в регистре сведений ПлановыеЕжегодныеОтпуска. Когда мы создаем документ График отпусков, в этот регистр записываются плановые даты. Документ Перенос отпуска не удаляет старую запись, а лишь дополняет информацию для печатной формы.
Важные нюансы функционирования Т-7:
Прежде чем приступать к написанию внешнего отчета, рассмотрим стандартные возможности программы, которые часто упускаются из виду. В конфигурации ЗУП 3.1 существует отчет, который гораздо лучше подходит для оперативной работы с переносами.
Речь идет об отчете Отпуска сотрудников (в интерфейсе он может называться «Плановые и фактические отпуска»). Разберем по шагам, как его настроить:
Дата начала (план) и Дата окончания (план).Этот отчет, в отличие от Т-7, обращается к актуальным данным планирования и корректно отображает сотрудников в тех периодах, на которые фактически назначен отпуск с учетом всех переносов. Плановые отпуска в нем обычно выделяются зеленым цветом, что удобно для визуального анализа.
Если кадровой службе принципиально видеть данные именно в формате, приближенном к Т-7, но с учетом «миграции» сотрудников между месяцами, потребуется модификация запроса к данным. Рассмотрим пример реализации через механизм Системы компоновки данных (СКД).
Основная идея заключается в том, чтобы объединить данные из регистра ПлановыеЕжегодныеОтпуска с данными табличных частей документа Перенос отпуска. Проанализируем пример запроса, который позволяет собрать воедино плановые и перенесенные даты:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ПлановыеЕжегодныеОтпуска.ДатаНачала КАК Период,
ПлановыеЕжегодныеОтпуска.Сотрудник КАК Сотрудник,
ПлановыеЕжегодныеОтпуска.ДатаНачала КАК ДатаНачала,
ПлановыеЕжегодныеОтпуска.ДатаОкончания КАК ДатаОкончания,
ПлановыеЕжегодныеОтпуска.КоличествоДней КАК КоличествоДней,
ПлановыеЕжегодныеОтпуска.ВидОтпуска КАК ВидОтпуска,
ПлановыеЕжегодныеОтпуска.Организация КАК Организация,
ПлановыеЕжегодныеОтпуска.Примечание КАК Примечание
ПОМЕСТИТЬ ВТСотрудники
ИЗ
(ВЫБРАТЬ
ПлановыеОтпуска.ДатаНачала КАК ДатаНачала,
ПлановыеОтпуска.Сотрудник КАК Сотрудник,
ПлановыеОтпуска.ДатаОкончания КАК ДатаОкончания,
ПлановыеОтпуска.КоличествоДней КАК КоличествоДней,
ПлановыеОтпуска.ВидОтпуска КАК ВидОтпуска,
ПлановыеОтпуска.Организация КАК Организация,
"План" КАК Примечание
ИЗ
РегистрСведений.ПлановыеЕжегодныеОтпуска КАК ПлановыеОтпуска
ГДЕ
ПлановыеОтпуска.ДатаНачала МЕЖДУ &НачалоПериода И &КонецПериода
И ПлановыеОтпуска.Перенесен = ЛОЖЬ
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
ПереносОтпускаПереносы.ДатаНачала,
ПереносОтпуска.Сотрудник,
ПереносОтпускаПереносы.ДатаОкончания,
ПереносОтпускаПереносы.КоличествоДней,
ПереносОтпуска.ВидОтпуска,
ПереносОтпуска.Организация,
"Перенос"
ИЗ
Документ.ПереносОтпуска КАК ПереносОтпуска
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПереносОтпуска.Переносы КАК ПереносОтпускаПереносы
ПО (ПереносОтпускаПереносы.Ссылка = ПереносОтпуска.Ссылка)
ГДЕ
ПереносОтпуска.Проведен = ИСТИНА
И ПереносОтпускаПереносы.ДатаНачала МЕЖДУ &НачалоПериода И &КонецПериода) КАК ПлановыеЕжегодныеОтпуска
;
Что мы сделали в этом запросе:
ПлановыеЕжегодныеОтпуска, которые НЕ были перенесены (флаг Перенесен = ЛОЖЬ). Это исключает дублирование.ОБЪЕДИНИТЬ ВСЕ данные из табличной части Переносы документа ПереносОтпуска.Часто возникает ситуация, когда сотрудник просит не просто перенести отпуск, а объединить две запланированные части (например, два периода по 7 дней в один на 14 дней). Рассмотрим, как правильно отразить это в 1С:ЗУП 3.1:
Способ А: Через документ «Перенос отпуска»
В документе переноса для первой строки (первые 7 дней) мы указываем новую дату и меняем количество дней на 14. Вторую строку (старые 7 дней) необходимо аннулировать. В зависимости от версии программы, это делается либо установкой нулевого количества дней, либо удалением строки в документе переноса (если это поддерживается логикой формы).
Способ Б: Через исправление Графика отпусков
Этот метод считается более «чистым» для актуализации данных. В исходном документе График отпусков внизу страницы нажмите ссылку Исправить. В созданном документе-исправлении удалите две старые строки и введите одну новую на 14 дней. Это позволит избежать нагромождения документов переноса, но стоит помнить, что в печатной форме Т-7 такой маневр не отразится как перенос (колонки 8 и 9 останутся пустыми), так как система воспримет это как первичный план.
Проанализировав ситуацию, мы можем сделать следующие выводы:
Перенос отпуска.Отпуска сотрудников, добавив в него плановые даты.Помните, что с точки зрения ст. 123 ТК РФ, ознакомление сотрудника с приказом или заявлением о переносе отпуска уже является подтверждением его осведомленности о новых датах. Повторное включение его в ежемесячные списки «для подписи» является внутренним регламентом компании, который программа 1С позволяет реализовать несколькими способами.