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