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