Почему в документе Премия в 1С:ЗУП 3.1 не меняется расчетная база при ручном выборе периода?

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

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

Причина проблемы: ошибка конфигурации № 30153016

Проанализируем программный механизм сбора данных. Если в карточке начисления установлен период сбора базы «предыдущий месяц», алгоритм проведения и заполнения документа должен определять интервал дат. При ручном переопределении периода в шапке документа ожидается, что алгоритм расчета обратится к выбранным датам.

Однако в ряде версий линейки 1С:ЗУП 3.1 процедура формирования запроса расчетной базы обращалась к смещениям, заданным непосредственно в настройках самого начисления, полностью игнорируя даты ручного периода из формы документа. Фирма «1С» официально зафиксировала данное поведение как Ошибку 30153016: «В документе "Премия" при заполнении расчетной базы не учитывается заданный вручную период, по итогам работы за который начисляется премия».

Особенности обновления данных в табличной части

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

  1. Изменим даты ручного периода в шапке документа.
  2. Очистим строки табличной части документа или воспользуемся кнопкой заполнения заново.
  3. При ручном подборе сотрудников повторно выберем их в документ, чтобы инициировать процедуру перерасчета по актуальным границам периода.

Концептуальные ограничения типового механизма

Рассмотрим, почему разработчики платформы изначально ограничивают расчет за текущий период в отдельных документах. Если начисление выполняется отдельным документом (например, Премия), то текущий месяц недоступен для автоматического выбора в карточке начисления. Это обусловлено логикой последовательности расчетов: при расчете межрасчетного начисления в середине месяца существует высокий риск не учесть результаты базовых начислений (оклада, надбавок, доплат), которые еще не зарегистрированы или не закрыты документом Начисление зарплаты и взносов.

По этой причине базовый функционал ориентирован на то, что премия по отдельному документу рассчитывается по уже закрытым прошлым периодам.

Влияние ручного изменения периода на средний заработок

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

  1. Премия будет отнесена не к месяцу ее фактического начисления, а к указанному базовому интервалу.
  2. Если вручную выбранный период выйдет за границы расчетного периода (12 месяцев), сумма может полностью выпасть из расчета среднего заработка.
  3. Возможны искажения при пропорциональном делении премии по коэффициенту отработанного времени, если в выбранном периоде были отклонения (невыходы, больничные).

Способы решения и обходные пути

Разберем практические способы реализации расчета премии, если требуется привязать ее к текущим или нестандартным показателям.

Способ 1. Обновление конфигурации или применение исправления

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

Способ 2. Расчет через плановое начисление в документе начисления зарплаты

Если премия должна рассчитываться от базы текущего месяца, методически верным решением в типовой конфигурации является перенос расчета в итоговый документ зарплаты:

  1. Создаем показатель для ввода процента премии через документ Данные для расчета зарплаты.
  2. Настраиваем премию как плановое начисление с расчетом в документе Начисление зарплаты и взносов.
  3. В конце месяца ответственное лицо вносит значения показателей по сотрудникам, после чего документ начисления зарплаты собирает фактическую базу текущего месяца и сразу начисляет итоговую сумму премии.

Способ 3. Изменение формулы начисления без показателя расчетной базы

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

Оклад * ВремяВДнях / НормаДней * ПроцентПремии / 100

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

Способ 4. Доработка через внешнюю обработку или расширение

Если специфика учета требует обязательного ввода суммы вручную расчетчиком непосредственно в отдельном документе по сложной формуле, применимы следующие технические решения:

  1. Подключаемая внешняя обработка заполнения: регистрируется в справочнике дополнительных отчетов и обработок. По кнопке заполнения обработка запрашивает любые произвольные начисления за нужный интервал дат и программно заполняет колонки расчетной базы и результата в документе Премия.
  2. Расширение конфигурации: переопределяет процедуру расчета базы в модуле документа, заставляя алгоритм корректно считывать переданный пользовательский период без изменения конфигурации поставщика.
← На главную