Как в 1С:ЗУП 3.1 настроить отображение переносов отпусков в графике и оперативных отчетах?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

В процессе кадрового учета в программе 1С:Зарплата и Управление Персоналом 3.1 пользователи часто сталкиваются с особенностью работы унифицированной формы Т-7 (График отпусков). Основная сложность заключается в том, что при оформлении документа Перенос отпуска информация о новых датах отображается в колонках 8 и 9 формы за тот месяц, на который отпуск был запланирован изначально. Однако, если кадровик формирует отчет за месяц, на который отпуск был перенесен, сотрудник в него не попадает. Это создает неудобства при оперативном планировании и ознакомлении сотрудников с графиком.

В данной статье мы подробно рассмотрим, почему так происходит, какими стандартными средствами можно решить задачу и как при необходимости доработать отчет программно.

Разбор логики работы типовой формы Т-7

Прежде всего, проанализируем ситуацию с точки зрения архитектуры системы. Данные для графика отпусков хранятся в регистре сведений ПлановыеЕжегодныеОтпуска. Когда мы создаем документ График отпусков, в этот регистр записываются плановые даты. Документ Перенос отпуска не удаляет старую запись, а лишь дополняет информацию для печатной формы.

Важные нюансы функционирования Т-7:

  1. Отчет жестко привязан к документу-основанию. Если сотрудник Иванов должен был пойти в отпуск в феврале, но перенес его на апрель, запись в регистре все равно «числится» за февралем.
  2. При формировании Т-7 за апрель система ищет первичные плановые записи апреля. Так как у Иванова первичная запись февральская, в апрельский список он не попадет, несмотря на наличие документа переноса.
  3. Типовая форма Т-7 предназначена для годового планирования, а не для ежемесячного оперативного контроля.

Вариант 1: Использование альтернативных типовых отчетов

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

Речь идет об отчете Отпуска сотрудников (в интерфейсе он может называться «Плановые и фактические отпуска»). Разберем по шагам, как его настроить:

  1. Перейдем в раздел Кадры — Кадровые отчеты — Отпуска сотрудников.
  2. В открывшемся окне нажмем кнопку Настройки и выберем вид Расширенный.
  3. На закладке Поля и сортировки добавим поле Дата начала (план) и Дата окончания (план).
  4. На закладке Фильтры установим отбор по состоянию отпуска (например, только запланированные).

Этот отчет, в отличие от Т-7, обращается к актуальным данным планирования и корректно отображает сотрудников в тех периодах, на которые фактически назначен отпуск с учетом всех переносов. Плановые отпуска в нем обычно выделяются зеленым цветом, что удобно для визуального анализа.

Вариант 2: Программная доработка отчета (создание внешнего отчета)

Если кадровой службе принципиально видеть данные именно в формате, приближенном к Т-7, но с учетом «миграции» сотрудников между месяцами, потребуется модификация запроса к данным. Рассмотрим пример реализации через механизм Системы компоновки данных (СКД).

Основная идея заключается в том, чтобы объединить данные из регистра ПлановыеЕжегодныеОтпуска с данными табличных частей документа Перенос отпуска. Проанализируем пример запроса, который позволяет собрать воедино плановые и перенесенные даты:


ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПлановыеЕжегодныеОтпуска.ДатаНачала КАК Период,
    ПлановыеЕжегодныеОтпуска.Сотрудник КАК Сотрудник,
    ПлановыеЕжегодныеОтпуска.ДатаНачала КАК ДатаНачала,
    ПлановыеЕжегодныеОтпуска.ДатаОкончания КАК ДатаОкончания,
    ПлановыеЕжегодныеОтпуска.КоличествоДней КАК КоличествоДней,
    ПлановыеЕжегодныеОтпуска.ВидОтпуска КАК ВидОтпуска,
    ПлановыеЕжегодныеОтпуска.Организация КАК Организация,
    ПлановыеЕжегодныеОтпуска.Примечание КАК Примечание
ПОМЕСТИТЬ ВТСотрудники
ИЗ
    (ВЫБРАТЬ
        ПлановыеОтпуска.ДатаНачала КАК ДатаНачала,
        ПлановыеОтпуска.Сотрудник КАК Сотрудник,
        ПлановыеОтпуска.ДатаОкончания КАК ДатаОкончания,
        ПлановыеОтпуска.КоличествоДней КАК КоличествоДней,
        ПлановыеОтпуска.ВидОтпуска КАК ВидОтпуска,
        ПлановыеОтпуска.Организация КАК Организация,
        "План" КАК Примечание
    ИЗ
        РегистрСведений.ПлановыеЕжегодныеОтпуска КАК ПлановыеОтпуска
    ГДЕ
        ПлановыеОтпуска.ДатаНачала МЕЖДУ &НачалоПериода И &КонецПериода
        И ПлановыеОтпуска.Перенесен = ЛОЖЬ

    ОБЪЕДИНИТЬ ВСЕ

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

Что мы сделали в этом запросе:

  1. Выбрали все записи из регистра ПлановыеЕжегодныеОтпуска, которые НЕ были перенесены (флаг Перенесен = ЛОЖЬ). Это исключает дублирование.
  2. Добавили к ним через ОБЪЕДИНИТЬ ВСЕ данные из табличной части Переносы документа ПереносОтпуска.
  3. Установили фильтр по дате начала таким образом, чтобы в отчет попадали именно актуальные (новые) даты из документов переноса.

Вопрос объединения частей отпуска

Часто возникает ситуация, когда сотрудник просит не просто перенести отпуск, а объединить две запланированные части (например, два периода по 7 дней в один на 14 дней). Рассмотрим, как правильно отразить это в 1С:ЗУП 3.1:

Способ А: Через документ «Перенос отпуска»

В документе переноса для первой строки (первые 7 дней) мы указываем новую дату и меняем количество дней на 14. Вторую строку (старые 7 дней) необходимо аннулировать. В зависимости от версии программы, это делается либо установкой нулевого количества дней, либо удалением строки в документе переноса (если это поддерживается логикой формы).

Способ Б: Через исправление Графика отпусков

Этот метод считается более «чистым» для актуализации данных. В исходном документе График отпусков внизу страницы нажмите ссылку Исправить. В созданном документе-исправлении удалите две старые строки и введите одну новую на 14 дней. Это позволит избежать нагромождения документов переноса, но стоит помнить, что в печатной форме Т-7 такой маневр не отразится как перенос (колонки 8 и 9 останутся пустыми), так как система воспримет это как первичный план.

Резюме и практические советы

Проанализировав ситуацию, мы можем сделать следующие выводы:

  1. Если ваша цель — строгое соблюдение формы Т-7 для архива, используйте типовой отчет и документ Перенос отпуска.
  2. Для ежедневной работы кадров и контроля «кто идет в отпуск в следующем месяце» лучше настроить типовой отчет Отпуска сотрудников, добавив в него плановые даты.
  3. Если необходимо автоматизировать процесс ознакомления сотрудников под роспись именно по актуальным датам, стоит воспользоваться внешним отчетом с запросом, объединяющим регистр и документы переноса, как было показано выше.

Помните, что с точки зрения ст. 123 ТК РФ, ознакомление сотрудника с приказом или заявлением о переносе отпуска уже является подтверждением его осведомленности о новых датах. Повторное включение его в ежемесячные списки «для подписи» является внутренним регламентом компании, который программа 1С позволяет реализовать несколькими способами.

← На главную