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