Многие расчетчики и специалисты по внедрению сталкиваются с ситуацией в 1С:Зарплата и Управление Персоналом 3.1, когда при оформлении премии отдельным межрасчетным документом программа упорно игнорирует отсутствия сотрудника. Разберем типичный пример: сотруднику введен документ Отпуск без сохранения зарплаты на один день. Затем мы создаем отдельный документ Премия, в котором используем формулу с показателями фактически отработанного времени. Однако программа показывает, что ВремяВДнях равно показателю НормаДней, и сумма премии не уменьшается пропорционально отсутствию.
Проанализируем эту ситуацию детально и рассмотрим несколько способов заставить систему корректно учитывать неявки при расчете премии.
Для начала выясним причину такого поведения 1С:ЗУП. Архитектурная специфика программы такова, что алгоритмы отдельных (межрасчетных) документов изначально проектировались для начисления фиксированных сумм, процента от готовой расчетной базы или сумм по вводимым показателям.
Показатели фактического времени, такие как ВремяВДнях или ВремяВЧасах, максимально корректно вычисляются только в итоговом документе Начисление зарплаты и взносов. Именно этот документ окончательно анализирует табель учета рабочего времени и сводит все отклонения, неявки и переработки за месяц. Отдельный документ премии просто "не ловит" отработанное время должным образом, если он не привязан к результатам основного начисления.
Посмотрим, какие настройки и хитрости помогут нам решить эту задачу.
Первое, что мы должны проверить — это настройки приоритетов для нашего вида начисления премии. Если программа не знает, что отпуск должен "вытеснять" премию, она не будет вычитать дни неявки из нормы.
Кроме того, обязательно перейдем на вкладку Учет времени в этом же начислении. Убедимся, что в поле назначения начисления указано За работу полную смену в пределах нормы времени, а в качестве вида времени установлено Рабочее время или Явка. Если премия настроена как "Дополнительная оплата за уже оплаченное время", она будет игнорировать показатели отклонений.
Рассмотрим ситуацию, когда наша формула выглядит следующим образом:
РазмерЕжемесячнойПремии * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней
Пользователи вносят показатель РазмерЕжемесячнойПремии вручную, но время не подтягивается. Как мы выяснили, без расчетной базы программа в отдельном документе "слепнет" к графику фактического времени. Существует технический лайфхак: чтобы время попало в премию, нужно искусственно внедрить в формулу показатель РасчетнаяБаза.
Изменим нашу формулу на следующую:
РасчетнаяБаза * 0 + РазмерЕжемесячнойПремии * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДней
В настройках начисления на вкладке Расчетная база добавим базовые начисления, например, Оплата по окладу. Так как оклад привязан к показателям ВремяВДнях и НормаДней, система начнет косвенно получать данные о времени при вызове расчетной базы, даже если мы умножаем ее на ноль и она не влияет на итоговую сумму премии.
Важное ограничение: Этот метод сработает только в том случае, если расчет базы (оклада) уже будет рассчитан и проведен на момент начисления премии. В противном случае база будет пустой, и время может рассчитаться некорректно.
Разберем самый оптимальный подход, который рекомендуют методологи 1С. Если расчетчик привык вводить премии отдельным документом (как это было в старых версиях вроде УПП), и не хочет искать сотрудников в большом списке документа Начисление зарплаты и взносов, мы можем разделить процесс ввода суммы и самого математического расчета.
Мы настроим ввод сумм премий через документ Данные для расчета зарплаты.
РазмерЕжемесячнойПремии. Укажем, что он вводится единовременно документом ввода данных.РазмерЕжемесячнойПремии * ДоляНеполногоРабочегоВремени * ВремяВДнях / НормаДнейКак теперь будет выглядеть работа пользователя:
В течение месяца экономист или расчетчик создает документ Данные для расчета зарплаты, подбирает нужных сотрудников и вбивает им согласованные суммы РазмерЕжемесячнойПремии. Этот документ выступает аналогом старого "отдельного документа Премия", к нему даже можно прикрутить необходимую внешнюю печатную форму приказа.
А вот сам расчет (превращение базовой суммы в фактическую выплату с учетом отработанного времени) произойдет автоматически при создании итогового документа Начисление зарплаты и взносов в конце месяца. Поскольку именно этот документ занимается сведением всех табелей и неявок, показатель ВремяВДнях стопроцентно увидит документ Отпуск без сохранения зарплаты и математика отработает безупречно.
Таким образом, мы удовлетворяем требование пользователей по отдельному вводу премий, сохраняем корректность работы встроенных алгоритмов 1С:ЗУП 3.1 и избегаем "костылей" с прибавлением нулевой расчетной базы.