Как в 1С:ЗУП 3.1 рассчитать разовое начисление процентом от базы текущего месяца?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом IT и автоматизация бизнеса
← На главную

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

Почему в 1С:ЗУП 3.1 заблокирован выбор текущего месяца для разовых документов

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

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

Вариант 1. Использование документа «Премия» с ручным выбором периода

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

  1. Перейдем в раздел Настройка – Начисления и создадим новый вид начисления.
  2. В поле Назначение начисления укажем значение Премия. Чтобы избежать путаницы в кадровых отчетах и формах, в наименовании начисления можно указать фактическое название доплаты без слова «Премия».
  3. В переключателе Начисление выполняется выберем вариант По отдельному документу. В качестве расчетного документа будет использоваться документ Премия.
  4. Установим формулу расчета: ПроцентПремии * РасчетнаяБаза. Создадим показатель ПроцентПремии со значением, вводимым разово для каждого сотрудника.
  5. На вкладке Расчетная база укажем список базовых начислений и период сбора базы (например, предыдущий месяц по умолчанию).
  6. Сохраним начисление.

Теперь создадим документ Премия в разделе Зарплата. В поле вида премии выберем созданное начисление. В группе настроек Период, по итогам работы за который начисляется премия переключим значение на Задается вручную и укажем текущий месяц. При заполнении сотрудников и процентов программа корректно соберет расчетную базу за выбранный текущий период.

Вариант 2. Расчет в документе «Начисление зарплаты и взносов» через постоянный или временный показатель

Если выплата доплаты может происходить вместе с окончательным расчетом заработной платы, оптимально настроить автоматический расчет:

  1. В настройках начисления укажем назначение Повременная оплата труда и надбавки или Прочие начисления.
  2. Выберем способ выполнения: Ежемесячно (если начисление назначается сотруднику кадровым документом) либо Только если введен показатель.
  3. В формуле укажем: ПроцентДоплаты * РасчетнаяБаза. В показателе ПроцентДоплаты настроим ввод значения ежемесячно документом ввода данных для расчета.
  4. Зарегистрируем процент перед итоговым расчетом документом Данные для расчета зарплаты.
  5. При создании документа Начисление зарплаты и взносов система рассчитает окладную часть и в той же таблице сразу вычислит процентную доплату от текущей базы без ручных правок периодов.

Вариант 3. Программное снятие ограничения выбора текущего периода в коде

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

Откроем конфигурацию или расширение, найдем объект ПланВидовРасчетов.Начисления, форма ФормаВидаРасчета. Обратим внимание на функцию ДоступенВыборТекущегоПериода:


&НаКлиентеНаСервереБезКонтекста
Функция ДоступенВыборТекущегоПериода(Форма)
    
    Объект = Форма.Объект;
    
    Если Объект.СпособРасчета = ПредопределенноеЗначение("Перечисление.СпособыРасчетаНачислений.ДоплатаДоСреднегоЗаработка") 
        Или Объект.СпособРасчета = ПредопределенноеЗначение("Перечисление.СпособыРасчетаНачислений.ДоплатаДоСреднегоЗаработкаФСС")
        Или Объект.СпособРасчета = ПредопределенноеЗначение("Перечисление.СпособыРасчетаНачислений.ДоплатаДоСохраняемогоДенежногоСодержанияЗаДниБолезни") Тогда
        Возврат Истина;
    КонецЕсли;
    
    Если Не Форма.ЕстьПоказательРасчетнаяБаза
        И Объект.КатегорияНачисленияИлиНеоплаченногоВремени = ПредопределенноеЗначение("Перечисление.КатегорииНачисленийИНеоплаченногоВремени.Премия") Тогда 
        Возврат Истина;
    КонецЕсли;
    
    Если Объект.СпособВыполненияНачисления = ПредопределенноеЗначение("Перечисление.СпособыВыполненияНачислений.ПоОтдельномуДокументуДоОкончательногоРасчета") Тогда 
        // Закомментировав следующую строку, мы разрешаем выбор текущего месяца для разовых документов:
        // Возврат Ложь;        
    КонецЕсли;
    
    Возврат Истина;
    
КонецФункции

После отключения возврата значения Ложь в форме настройки начисления станет активен переключатель сбора расчетной базы за текущий месяц.

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

← На главную