Как настроить корректный расчет процента северной надбавки для сотрудников на вахте в 1С?

Программист 1С v8.3 (Обычные формы) 1С:Зарплата и Управление Персоналом Бухгалтерский учет Промышленность, строительство и АПК
← На главную

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

Правовые нормы и суть проблемы

В соответствии с частью 6 статьи 302 Трудового кодекса РФ, в стаж работы, дающий право на получение процентной надбавки к заработной плате работникам, выезжающим на вахту в РКС и МКС из других регионов, включаются:

  1. Календарные дни выполнения работ в районах Крайнего Севера и приравненных местностях.
  2. Фактические дни нахождения в пути от места нахождения работодателя (пункта сбора) до места выполнения работы и обратно, предусмотренные графиками работы на вахте.

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

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

Вариант 1. Учет межвахтового отдыха через табель и регистрацию невыходов

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

  1. Настройка классификатора времени: в справочнике Классификатор использования рабочего времени создаем новый элемент с наименованием «Межвахтовый отдых» (буквенный код «МО», признак Рабочее время = Ложь).
  2. Настройка видов расчета: в плане видов расчета Основные начисления организаций добавляем вид начисления «Межвахтовый отдых» с нулевой оплатой (способ расчета — «Нулевая сумма», вид времени — «Неотработанные полные смены, а также командировки»). Настраиваем список вытесняющих начислений для основных видов оплат (оклад по дням, оплата по часовому тарифу).
  3. Регистрация отклонений: документом Табель учета рабочего времени регистрируем код «МО» в дни нахождения сотрудника вне вахты, а документом Невыходы в организациях фиксируем период действия неотработанного времени.

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


// Запрос для получения количества дней межвахтового отдыха за период работы
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	СУММА(ОсновныеНачисления.ОплаченоДней) КАК ДнейМежвахты
    |ИЗ
    |	РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисления
    |ГДЕ
    |	ОсновныеНачисления.Сотрудник = &Сотрудник
    |	И ОсновныеНачисления.ВидРасчета = &ВидРасчетаМежвахта
    |	И ОсновныеНачисления.ПериодДействияКонец <= &ДатаРасчета";

Запрос.УстановитьПараметр("Сотрудник", ТекущийСотрудник);
Запрос.УстановитьПараметр("ВидРасчетаМежвахта", ПланыВидовРасчета.ОсновныеНачисленияОрганизаций.НайтиПоНаименованию("Межвахтовый отдых"));
Запрос.УстановитьПараметр("ДатаРасчета", КонецПериода);

Результат = Запрос.Выполнить().Выбрать();
СмещениеДней = 0;
Если Результат.Следующий() И Результат.ДнейМежвахты <> NULL Тогда
    СмещениеДней = Результат.ДнейМежвахты;
КонецЕсли;

// Смещаем дату для определения стажа
РасчетнаяДатаСтажа = ДатаНачалаСтажа + (СмещениеДней * 86400);

Вариант 2. Подсчет стажа по фактически отработанным дням через регистры учета времени

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

В этом случае процедура получения процента северной надбавки полностью переключается на суммирование фактически отработанных вахтовых смен и дней нахождения в пути:


// Подсчет накопленных дней стажа по данным фактически отработанного времени
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	СУММА(РабочееВремя.Дней) КАК ВсегоДнейСеверногоСтажа
    |ИЗ
    |	РегистрНакопления.РабочееВремяСотрудниковОрганизации КАК РабочееВремя
    |ГДЕ
    |	РабочееВремя.Сотрудник = &Сотрудник
    |	И РабочееВремя.ВидИспользованияРабочегоВремени В (&СписокСеверныхВидовВремени)
    |	И РабочееВремя.Период <= &ДатаРасчета";

СписокВидовВремени = Новый Массив;
СписокВидовВремени.Добавить(Справочники.КлассификаторИспользованияРабочегоВремени.Явка);
СписокВидовВремени.Добавить(Справочники.КлассификаторИспользованияРабочегоВремени.НайтиПоКоду("П")); // Дни в пути

Запрос.УстановитьПараметр("Сотрудник", ТекущийСотрудник);
Запрос.УстановитьПараметр("СписокСеверныхВидовВремени", СписокВидовВремени);
Запрос.УстановитьПараметр("ДатаРасчета", КонецПериода);

Выборка = Запрос.Выполнить().Выбрать();
НакопленоДней = 0;
Если Выборка.Следующий() И Выборка.ВсегоДнейСеверногоСтажа <> NULL Тогда
    НакопленоДней = Выборка.ВсегоДнейСеверногоСтажа;
КонецЕсли;

Полученное количество дней сопоставляется с шкалой северной надбавки для соответствующей группы местности (группы с 1 по 4) и возрастной категории сотрудника.

Вариант 3. Регулярная корректировка точки отсчета внешней обработкой

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

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

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

Отражение в персонифицированной отчетности

При реализации любого из предложенных вариантов важно контролировать корректность формирования персонифицированной отчетности (подраздел 1.2 формы ЕФС-1):

  1. Периоды непосредственной работы на вахте, дни в пути и межвахтовый отдых выделяются специальным кодом «ВАХТА».
  2. Коды территориальных условий (РКС или МКС) проставляются только для интервалов фактического нахождения на Севере и дней в пути.
  3. Период межвахтового отдыха за пределами Крайнего Севера передается с кодом «ВАХТА», но без территориальных признаков РКС/МКС.
← На главную