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