Как получить процент северной надбавки по сотруднику в 1С:ЗУП 2.5?

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

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

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

Особенности хранения данных о северной надбавке

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

Исходные сведения, определяющие шкалу и динамику роста процента, хранятся отдельно:

  1. В периодическом регистре сведений СведенияОСтажеРаботыНаСевере. Ведущим измерением здесь является ФизЛицо, а не Сотрудник. В ресурсах и реквизитах регистра содержатся дата отсчета, порядок начисления (перечисление ПорядокНачисленияСеверныхНадбавок), начальный процент, а также количество месяцев и дней северного стажа, зафиксированных на эту дату.
  2. Сам процент рассчитывается программно алгоритмами конфигурации на требуемую дату исходя из количества дней, прошедших с момента фиксации начального стажа.

Способ 1. Расчет через общий модуль ФормированиеПечатныхФормЗК

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

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


// Определяем физическое лицо сотрудника
ФизЛицо = СотрудникСсылка.ФизЛицо;
ДатаРасчета = ТекущаяДата(); // Либо ВложеннаяВыборка.ДатаПриема, период отчета и т.д.

Отбор = Новый Структура("ФизЛицо", ФизЛицо);
СрезСеверныйСтаж = РегистрыСведений.СведенияОСтажеРаботыНаСевере.СрезПоследних(ДатаРасчета, Отбор);

СС_Период = '00010101';
СС_НачальныйПроцентСевернойНадбавки = 0;
СС_ПорядокНачисленияСеверныхНадбавок = Справочники.ПорядокНачисленияСеверныхНадбавок.ПустаяСсылка();
СС_СеверныйСтажДней = 0;
СС_СеверныйСтажМесяцев = 0;

Если СрезСеверныйСтаж.Количество() > 0 Тогда
    СтрокаСтажа = СрезСеверныйСтаж[0];
    СС_Период                            = СтрокаСтажа.Период;
    СС_НачальныйПроцентСевернойНадбавки   = СтрокаСтажа.НачальныйПроцентСевернойНадбавки;
    СС_ПорядокНачисленияСеверныхНадбавок = СтрокаСтажа.ПорядокНачисленияСеверныхНадбавок;
    СС_СеверныйСтажДней                  = СтрокаСтажа.СеверныйСтажДней;
    СС_СеверныйСтажМесяцев               = СтрокаСтажа.СеверныйСтажМесяцев;
КонецЕсли;

НадбавкаСевПроц = 0;
Если ЗначениеЗаполнено(СС_ПорядокНачисленияСеверныхНадбавок) Тогда
    НадбавкаСевПроц = ФормированиеПечатныхФормЗК.ПолучитьПроцентСевернойНадбавкиНаДату(
        СС_Период,
        СС_ПорядокНачисленияСеверныхНадбавок,
        СС_НачальныйПроцентСевернойНадбавки,
        СС_СеверныйСтажМесяцев,
        СС_СеверныйСтажДней,
        ДатаРасчета
    );
КонецЕсли;

Данная функция анализирует шкалу порядка начисления, прибавляет к начальному стажу время, прошедшее от СС_Период до ДатаРасчета, и возвращает итоговое числовое значение процента.

Способ 2. Использование функции ПроведениеРасчетов.ПолучитьПроцентыСевернойНадбавкиЗаПериод

Если нам необходимо получить шкалу изменения процента за интервал времени или выполнить расчет в контексте начисления заработной платы, обратимся к общему модулю ПроведениеРасчетов. Метод ПолучитьПроцентыСевернойНадбавкиЗаПериод() применяется при расчете самого документа «Начисление зарплаты сотрудникам организаций».

Особенности применения этого метода:

  1. На вход передается таблица физических лиц с указанием интервалов (ДатаНачала и ДатаОкончания).
  2. Если необходимо получить процент строго на конкретный день, в качестве начала и конца периода передается одна и та же дата.
  3. Метод возвращает таблицу значений с рассчитанными процентами и периодами их действия. Это особенно важно, если сотрудник в течение расчетного месяца пересекает границу стажа, дающую право на повышенный процент — в таком случае начисление разбивается на несколько периодов с разными ставками.

Способ 3. Получение процента из типовых кадровых отчетов

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

  1. Переходим в подсистему Кадровый учет.
  2. Открываем отчет Списки сотрудников организаций.
  3. В настройках структуры отчета добавляем поле северной надбавки или группировку по стажу работы на Севере. Конфигурация сформирует реестр с рассчитанным процентом на дату формирования отчета.

Важные нюансы при расчете

При разработке алгоритмов получения процента северной надбавки следует помнить о следующих моментах:

  1. Привязка к физическому лицу: Вся история северного стажа привязана к справочнику ФизическиеЛица. Если сотрудник работает по внутреннему или внешнему совместительству, северный стаж и вычисленный процент будут одинаковыми для всех его позиций, но вид расчета должен быть назначен по каждому трудовому договору отдельно.
  2. Возрастные ограничения: Для категорий сотрудников, имеющих право на ускоренное начисление северной надбавки (до 30 лет), алгоритм внутри типовых функций дополнительно учитывает дату рождения физлица. По достижении 30 лет порядок расчета автоматически меняется в соответствии с законодательством.
  3. Максимальные ограничения: Процент надбавки не может превышать лимит, определенный нормативной группой (например, 30%, 50%, 80% или 100%). Типовые функции платформы контролируют эти пороги автоматически.
← На главную