При ведении кадрового учета в программе 1С:Зарплата и управление персоналом (ЗУП) редакции 3.1 пользователи часто сталкиваются с необходимостью восстановить документы за прошлые периоды. Одной из таких задач является формирование документа График отпусков, например, за 2018 год, когда текущий рабочий период уже давно ушел вперед. Основная сложность заключается в том, что система при создании нового документа по умолчанию ориентируется на текущую дату и текущий календарный год, из-за чего автоматическое заполнение может работать некорректно.
В данной статье мы подробно разберем, как преодолеть технические ограничения программы, правильно настроить нормативную базу и воссоздать график отпусков за любой прошедший период, чтобы он корректно отражался в отчетности и регистрах системы.
Прежде чем приступать к созданию самого документа, нам необходимо убедиться, что фундамент для расчетов — производственный календарь — заполнен для искомого года. Рассмотрим ситуацию на примере 2018 года. Если календарь за этот период не был «записан» в системе, 1С не сможет правильно рассчитать количество дней отпуска, учитывая праздники и выходные.
Выполним следующие шаги для проверки:
Проанализируем техническую сторону: при записи производственного календаря данные попадают в регистр сведений Данные производственного календаря. Без записей в этом регистре за 2018 год документ График отпусков не сможет определить, какие дни периода являются рабочими, а какие — праздничными, что приведет к ошибкам в заполнении табличной части.
Одной из главных причин, по которой программа «подтягивает» 2019 или текущий год вместо 2018-го, является значение в поле Дата в шапке документа. В системе 1С заложен алгоритм: период планирования определяется исходя из даты самого документа.
Рассмотрим правила установки даты для корректного формирования формы Т-7:
Согласно законодательству, график отпусков должен быть утвержден за две недели до начала календарного года. Таким образом, для графика на 2018 год идеальной датой документа будет, например, 15.12.2017. Если мы установим дату документа в 2024 году, система будет ожидать планирования на 2024–2025 годы.
Алгоритм действий:
График отпусков.Разберем способы наполнения документа данными. Если сотрудники уже отгуляли свои отпуска в 2018 году и в базе есть проведенные документы Отпуск, нам не нужно вносить данные вручную. Мы можем воспользоваться механизмом подбора фактических данных.
В современных версиях ЗУП 3.1 кнопка Заполнить имеет подменю. Нас интересует опция Заполнить по фактическим отпускам (если она доступна в вашей сборке) или стандартное заполнение. Однако, если стандартная кнопка не видит данные, проанализируем ситуацию: система ищет «плановые» остатки. В случае с прошлым периодом эффективнее использовать ручное добавление сотрудников или механизм Подбор.
При ручном заполнении важно указывать периоды отпуска именно внутри 2018 года. После выбора сотрудника и ввода дат начала и окончания, программа автоматически пересчитает количество календарных дней, обращаясь к тому самому производственному календарю, который мы проверили на первом этапе.
Важно понимать, что документ График отпусков сам по себе является лишь оболочкой. Для системы принципиальное значение имеют записи, которые он создает в регистре сведений Плановые ежегодные отпуска.
Посмотрим на ситуацию со стороны технического специалиста. Если документ проведен, но данные не отражаются в отчетах по остаткам, необходимо выполнить следующие действия:
Плановые ежегодные отпуска.Если записи присутствуют, значит, технически график «лег» в базу верно. Если записей нет — документ не делает движений, что может быть связано с установленной Датой запрета редактирования данных.
Выясним, почему документ может не проводиться или создаваться пустым. В большинстве организаций установлена дата запрета редактирования, чтобы случайно не изменить данные прошлых закрытых периодов.
Если вы пытаетесь создать график за 2018 год в 2024 году, а дата запрета стоит на 31.12.2023, система заблокирует проведение документа с датой 2017 года.
Как решить проблему:
График отпусков.Если ваша задача — исключительно получение печатной формы Т-7 для архива или проверки, и вы не хотите «ворошить» данные в регистрах прошлых лет, рассмотрим вариант с внешней обработкой.
Программисты 1С часто используют метод выноса процедуры заполнения во внешнюю обработку. Это позволяет сформировать печатную форму на основе фактических документов Отпуск за 2018 год, не создавая лишних движений в базе данных. Пример логики кода для такой обработки мог бы выглядеть так:
// Пример логики выборки данных для внешней печатной формы
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Отпуск.Сотрудник КАК Сотрудник,
| Отпуск.ДатаНачала КАК ДатаНачала,
| Отпуск.ДатаОкончания КАК ДатаОкончания
|ИЗ
| Документ.Отпуск КАК Отпуск
|ГДЕ
| Отпуск.ДатаНачала МЕЖДУ &НачалоПериода И &КонецПериода
| И Отпуск.Проведен = ИСТИНА";
Запрос.УстановитьПараметр("НачалоПериода", '20180101');
Запрос.УстановитьПараметр("КонецПериода", '20181231');
РезультатЗапроса = Запрос.Выполнить();
Такой подход безопаснее для целостности данных, так как он не влияет на расчет остатков отпусков в текущем периоде.
Подводя итог, можно сказать, что формирование графика отпусков «задним числом» — задача вполне решаемая стандартными средствами 1С:ЗУП 3.1. Главное — соблюдать последовательность: Календарь -> Дата документа -> Отключение даты запрета -> Заполнение.
Ключевые моменты для запоминания:
Плановые ежегодные отпуска.Таким образом, мы обеспечим корректное хранение истории кадрового учета и сможем в любой момент распечатать унифицированную форму Т-7 за 2018 год, которая будет полностью соответствовать фактическим данным системы.