При оформлении межрасчетных выплат расчетчики нередко сталкиваются с ситуацией: в документе Премия для начисления с формулой на основе показателя РасчетнаяБаза переключатель периода переводится в ручной режим, указываются другие даты, однако база начисления остается прежней. Разберем, почему программа ведет себя подобным образом, с чем связано такое поведение типовых механизмов и какие варианты решения задачи существуют.
Проанализируем программный механизм сбора данных. Если в карточке начисления установлен период сбора базы «предыдущий месяц», алгоритм проведения и заполнения документа должен определять интервал дат. При ручном переопределении периода в шапке документа ожидается, что алгоритм расчета обратится к выбранным датам.
Однако в ряде версий линейки 1С:ЗУП 3.1 процедура формирования запроса расчетной базы обращалась к смещениям, заданным непосредственно в настройках самого начисления, полностью игнорируя даты ручного периода из формы документа. Фирма «1С» официально зафиксировала данное поведение как Ошибку 30153016: «В документе "Премия" при заполнении расчетной базы не учитывается заданный вручную период, по итогам работы за который начисляется премия».
Выясним еще одну важную деталь типового поведения. Даже на релизах, где ошибка устранена, смена дат в шапке документа не всегда вызывает мгновенный пересчет строк в фоновом режиме. Чтобы программа пересчитала суммы по новым датам, выполним следующие действия:
Рассмотрим, почему разработчики платформы изначально ограничивают расчет за текущий период в отдельных документах. Если начисление выполняется отдельным документом (например, Премия), то текущий месяц недоступен для автоматического выбора в карточке начисления. Это обусловлено логикой последовательности расчетов: при расчете межрасчетного начисления в середине месяца существует высокий риск не учесть результаты базовых начислений (оклада, надбавок, доплат), которые еще не зарегистрированы или не закрыты документом Начисление зарплаты и взносов.
По этой причине базовый функционал ориентирован на то, что премия по отдельному документу рассчитывается по уже закрытым прошлым периодам.
Обратим внимание на расчет среднего заработка (для отпусков, командировок и больничных). Период, зафиксированный в документе, напрямую записывается в регистры как базовый период начисленной премии. Если для ежемесячной премии систематически сдвигать период вручную, это может исказить распределение сумм по расчетным месяцам:
Разберем практические способы реализации расчета премии, если требуется привязать ее к текущим или нестандартным показателям.
Поскольку проблема зарегистрирована разработчиками как ошибка, первым шагом проверим актуальность релиза конфигурации. В версиях, где выпущено официальное исправление (патч или обновление релиза), документ берет границы расчетной базы из реквизитов ручного периода при повторном заполнении строк.
Если премия должна рассчитываться от базы текущего месяца, методически верным решением в типовой конфигурации является перенос расчета в итоговый документ зарплаты:
Данные для расчета зарплаты.Начисление зарплаты и взносов.Если требуется рассчитать премию в межрасчетном документе от оклада текущего месяца с учетом отработанных дней, но без предварительного расчета зарплаты, показатель РасчетнаяБаза можно заменить прямой формулой. Посмотрим на пример такой формулы в карточке начисления:
Оклад * ВремяВДнях / НормаДней * ПроцентПремии / 100
В этом случае документ Премия рассчитывает сумму на основании планового оклада сотрудника и фактически введенных табелей или отклонений за текущий месяц, не обращаясь к регистру расчета базы за прошлые периоды.
Если специфика учета требует обязательного ввода суммы вручную расчетчиком непосредственно в отдельном документе по сложной формуле, применимы следующие технические решения:
Премия.