В каком регистре в ЗУП 3.1 хранится северная надбавка и как ее вывести в печатную форму?

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

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

Где хранятся данные: обзор основных регистров

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

  1. Регистр сведений «Проценты северной надбавки физических лиц». Это основной источник данных о текущем проценте надбавки для конкретного физического лица. Именно здесь система фиксирует изменения процента во времени. Если у сотрудника меняется стаж и, согласно шкале, должен вырасти процент, программа создает в этом регистре записи на будущие даты.
  2. Регистр сведений «Параметры выплаты северной надбавки физических лиц». В этом регистре хранится информация о «северной группе» сотрудника (от 1 до 4), которая определяет динамику роста надбавки, а также сведения о стаже работы в северных регионах.
  3. Регистр сведений «Плановые начисления». Даже если у физического лица в личных данных указан процент СН, она будет рассчитываться только в том случае, если она назначена сотруднику как плановое начисление. Это происходит при приеме на работу или кадровом переводе в подразделение с соответствующими территориальными условиями.

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

Программный интерфейс против прямых запросов

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

Для получения процента северной надбавки в ЗУП 3.1 следует использовать функции общего модуля КадровыйУчетРасширенный. Разберем пример кода, который позволяет получить актуальный процент на дату формирования документа:


// Пример получения процента северной надбавки для сотрудника
ДатаСведений = Объект.ДатаПриема; // или ДатаДокумента
ПроцентСН = КадровыйУчетРасширенный.ПроцентСевернойНадбавки(Объект.ФизическоеЛицо, ДатаСведений);

Если ПроцентСН <> 0 Тогда
    // Выводим значение в печатную форму
КонецЕсли;

Эта функция удобна тем, что она учитывает все внутренние механизмы программы: анализирует шкалы, стаж и актуальность данных на конкретный момент времени. Выясним причину, по которой это решение является наиболее стабильным: оно инкапсулирует в себе логику «среза последних» и обработки будущих записей регистра.

Связь с территориальными условиями и начислениями

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

  1. В карточке Организации или Подразделения, куда принимается сотрудник, должны быть указаны территориальные условия (РКС или МКС).
  2. В документе приема на вкладке «Оплата труда» в списке начислений должно присутствовать предопределенное начисление Северная надбавка.

Если вам нужно проверить, назначена ли надбавка именно в текущем документе, лучше обратиться к табличной части Начисления самого документа ПриемНаРаботу. Посмотрим на пример проверки:


// Проверка наличия северной надбавки в документе
НадбавкаНайдена = Ложь;
Для Каждого СтрокаНачисления Из Объект.Начисления Цикл
    // Проверяем по категории начисления или конкретному виду
    Если СтрокаНачисления.Начисление.КатегорияНачисления = Перечисления.КатегорииНачисленийИУдержаний.СевернаяНадбавка Тогда
        НадбавкаНайдена = Истина;
        ТекущийПроцент = СтрокаНачисления.Показатель1; // Обычно первый показатель - это процент
        Прервать;
    КонецЕсли;
КонецЦикла;

Такой подход гарантирует, что вы выведете именно то значение, которое было утверждено кадровиком в момент приема сотрудника на работу, включая возможные ручные корректировки.

Автоматический расчет и будущие записи

Важно помнить об особенности ЗУП 3.1: программа автоматически рассчитывает даты изменения процента СН. Если мы заглянем в регистр ПроцентыСевернойНадбавкиФизическихЛиц, мы можем увидеть там записи на годы вперед. Поэтому при формировании запроса или использовании функций всегда строго контролируйте Дату среза. Для документа приема это всегда должна быть либо дата самого документа, либо дата приема сотрудника на работу.

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

Резюмируем: для быстрого решения используйте функцию КадровыйУчетРасширенный.ПроцентСевернойНадбавки. Для максимально точного соответствия данным документа — анализируйте табличную часть Начисления. А если требуется понимание структуры хранения — ищите данные в регистре сведений ПроцентыСевернойНадбавкиФизическихЛиц.

← На главную