В конфигурации «1С:Зарплата и управление персоналом» (ЗУП) редакции 3.1 расчет районного коэффициента (РК) и северной надбавки (СН) является базовой функциональностью для регионов с особыми климатическими условиями. Однако при разработке внешних отчетов, печатных форм или интеграций программисту часто требуется извлечь эти значения программно. Ситуация осложняется тем, что коэффициенты могут зависеть не только от организации, но и от конкретного подразделения или даже временной территории, на которой работает сотрудник. Рассмотрим подробно, как правильно получать эти данные, используя стандартные механизмы и прямые запросы. Если программный доступ необходим для миграции на новую систему или объединения баз, удобнее использовать перенос кадровых и расчётных данных между базами 1С:ЗУП 3.
Самым правильным и современным способом получения данных в ЗУП 3.1 является использование функций общего модуля КадровыйУчет. Этот метод позволяет получить готовый процент северной надбавки на определенную дату, не заботясь о том, в каких регистрах он хранится. Разберем по шагам, как вызвать этот метод.
Для получения процента северной надбавки мы воспользуемся функцией КадровыеДанныеСотрудников. Она возвращает таблицу значений с запрашиваемыми параметрами. Проанализируем следующий пример кода:
КадровыеДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Истина,
Объект.Сотрудник,
"ПроцентСевернойНадбавки", ТекущаяДата());
Если КадровыеДанныеСотрудников.Количество() = 1 Тогда
СевернаяНадбавка = КадровыеДанныеСотрудников[0].ПроцентСевернойНадбавки;
Если ТипЗнч(СевернаяНадбавка) = Тип("Число") Тогда
// Значение получено успешно
ИтоговыйПроцент = СевернаяНадбавка;
Иначе
// Если надбавка не назначена или возникла ошибка
ИтоговыйПроцент = 0;
КонецЕсли;
КонецЕсли;
Этот способ удобен тем, что система автоматически учитывает все кадровые перемещения сотрудника и изменения его стажа на указанную дату. Важно понимать: процент северной надбавки в ЗУП — это «плавающий» показатель. Он может измениться в середине месяца, если сотрудник перешагнул порог стажа, дающий право на следующий этап надбавки. При переходе из старых систем для сохранения всей истории начислений и перемещений можно использовать перенос кадровых и расчётных данных из УПП в ЗУП 3.1.
Если нам необходимо получить не только процент северной надбавки, но и значения показателей, которые используются в формулах расчета (например, сам районный коэффициент), стоит обратиться к регистру сведений ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников. Разберем ситуацию, когда нам нужно выгрузить текущие значения показателей для конкретного сотрудника.
Проанализируем пример запроса, который позволяет вытащить срез последних значений для всех показателей сотрудника, включая РК и СН:
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЗначенияПоказателей.Показатель КАК Показатель,
ЗначенияПоказателей.Значение КАК Значение,
ЗначенияПоказателей.ДействуетДо КАК ДействуетДо,
ЗначенияПоказателей.Организация КАК Организация
ИЗ
РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&ТекДата, Сотрудник = &Сотрудник) КАК ЗначенияПоказателей
В этом запросе мы получаем актуальные значения всех показателей. Чтобы найти конкретно районный коэффициент, в коде обработки результата запроса нужно будет сделать отбор по наименованию или ссылке на предопределенный показатель РайонныйКоэффициент.
В крупных организациях часто используется флаг «Использовать территории». В этом случае районный коэффициент и северная надбавка могут быть привязаны не к подразделению, а к справочнику Территории. Это позволяет корректно рассчитывать зарплату сотрудникам, которые в течение месяца перемещаются между разными объектами (например, из Владивостока в более северные районы).
Рассмотрим, как получить данные в этом случае. Программа хранит историю перемещений в регистре сведений ТерриторииСотрудников. Если значение РК в карточке организации равно 1.2, а в справочнике Территории для конкретного участка указано 1.3, то приоритет будет иметь значение территории. Проанализируем алгоритм поиска данных:
ТерриторииСотрудников на нужную дату.Территории и извлекаем коэффициент из этого справочника.Подразделения.Организации.Выясним причину, по которой значения коэффициентов могут различаться. В ЗУП 3.1 существует разделение на:
При программном получении данных всегда уточняйте, какой именно коэффициент вам нужен. В справочниках Организации, Подразделения и Территории это два разных реквизита. Например, в Приморском крае федеральный коэффициент может составлять 1.2, а для некоторых категорий работников или местностей местный коэффициент может быть выше.
Для корректного расчета надбавки во Владивостоке и других районах Дальнего Востока важно правильно заполнить северный стаж в карточке сотрудника. Посмотрим на основные правила, которые должна учитывать ваша программа при анализе стажа:
Для Приморского края (Южные районы Дальнего Востока) обычно устанавливается Группа 4. По закону, надбавка составляет до 30%. Однако порядок её накопления зависит от возраста сотрудника:
Если вам нужно программно вычислить, когда у сотрудника изменится процент надбавки, используйте регистр сведений ПараметрыПериодовСтажа. Именно на основании данных этого регистра система «понимает», что в середине месяца расчетную строку нужно разбить на две части с разными процентами СН.
Для простого получения текущего процента надбавки используйте метод КадровыйУчет.КадровыеДанныеСотрудников. Для получения значений районного коэффициента с учетом всех иерархий (Организация -> Подразделение -> Территория) лучше всего использовать запрос к соответствующим справочникам, предварительно определив актуальное место работы сотрудника на дату расчета через срез последних регистра КадроваяИсторияСотрудников.