Почему в 1С:ЗУП 3.1 не отменяется плановое начисление при кадровом переводе и как это исправить?

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

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

Суть проблемы: конфликт «персональных» начислений и штатного расписания

Проанализируем ситуацию. В программе существует фундаментальное разделение на начисления, которые жестко привязаны к штатному расписанию (ШР), и «персональные» начисления конкретного сотрудника. Когда мы используем документ Изменение плановых начислений на основании документа Изменение штатного расписания, система фиксирует это изменение в регистре сведений. Однако программная логика часто интерпретирует такой ввод как персональное изменение условий трудового договора.

При оформлении документа Кадровый перевод система по умолчанию старается сохранить уже действующие плановые начисления сотрудника. Это сделано для того, чтобы случайно не отменить важные персональные надбавки (например, за стаж, знание языка или личные достижения), которые не прописаны в ШР для конкретной позиции. В результате начисление «тянется» за сотрудником на новую должность, даже если в новой позиции ШР его нет.

Разбор программного механизма заполнения начислений

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


Процедура РедактированиеСоставаНачисленийДействующиеНачисленияВРеквизит(
    ДокументСсылка, 
    СотрудникиДаты, 
    Форма, 
    ОписаниеТаблицыВидовРасчета, 
    РежимРаботы, 
    ДатаСобытия = Неопределено, 
    ДатаОкончания = Неопределено, 
    ИсключатьВременноОтмененные = Ложь) Экспорт 

    Если СотрудникиДаты.Количество > 0 Тогда 
        Если РежимРаботы = 0 Тогда 
            // Режим работы со штатным расписанием
            РедактированиеСоставаНачисленийШтатногоРасписанияДействующиеНачисленияВРеквизит(
                ДокументСсылка, СотрудникиДаты, Форма, ОписаниеТаблицыВидовРасчета); 
        Иначе 
            // Режим работы с начислениями сотрудника
            РедактированиеСоставаНачисленийСотрудниковДействующиеНачисленияВРеквизит(
                ДокументСсылка, СотрудникиДаты, Форма, ОписаниеТаблицыВидовРасчета, Ложь, , ИсключатьВременноОтмененные); 
        КонецЕсли; 
        
        ВводНачисленийДанныеВРеквизит(Форма, ОписаниеТаблицыВидовРасчета, РежимРаботы, Истина);
        // ... установка представлений и комментариев
    КонецЕсли; 
КонецПроцедуры

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

Решение 1: Использование кнопки «Заполнить по штатному расписанию»

Самый простой и правильный способ заставить программу «увидеть» актуальные начисления — это ручное инициирование пересчета. Рассмотрим, как это сделать:

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

Решение 2: Проверка настроек и последовательности документов

Часто «капризы» программы связаны с настройками расчета зарплаты. Проанализируем настройки системы:

Перейдем в раздел Настройка — Расчет зарплаты. Проверим состояние флажка «Проверять соответствие документов штатному расписанию». Если этот флаг выключен, программа не будет выдавать предупреждений о несоответствии и позволит провести перевод с «лишним» начислением без тени сомнения. Включение этой настройки поможет пользователю вовремя заметить проблему при проведении документа.

Также важно соблюдать хронологию. Если Кадровый перевод создается той же датой, что и Изменение плановых начислений, может возникнуть конфликт времени внутри дня. Система может сначала обработать отмену, а затем «вернуть» начисление. Рекомендуем сначала полностью завершить все изменения в ШР, убедиться, что они вступили в силу, и только после этого приступать к оформлению кадровых перемещений.

Решение 3: Особенности работы в версии 3.1.23 и выше

В современных версиях 1С:ЗУП был пересмотрен алгоритм работы с ФОТ (фондом оплаты труда). Теперь программа более строго отслеживает связь начисления с позицией ШР. Если начисление было добавлено документом Изменение плановых начислений некорректно (например, не была выбрана явная связь с позицией в скрытых механизмах), оно переходит в разряд «постоянных персональных надбавок».

Рассмотрим рекомендуемый алгоритм действий (Best Practice) для минимизации ошибок:

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

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

← На главную