Почему отпуск без сохранения оплаты не уменьшает оклад в ЗУП 3.1 и как это исправить

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

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

Проявление проблемы: конфликт ролей кадровика и расчетчика

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

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

Техническая природа ошибки: регистры и флаги

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

Однако для самого процесса начисления зарплаты движок расчета опирается на другой важный регистр — Данные о времени для расчета зарплаты. Записи в этот регистр вносятся только в тот момент, когда документ переходит в статус «Рассчитан» или «Утвержден». Если этот этап пропущен, система расчета считает, что отклонений от планового графика не было.

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


// Фрагмент кода, влияющий на видимость движений по регистрам расчета
Объект[ОписаниеДокумента.РеквизитСостояние] = ПраваНаДокумент.ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений;

Этот код выставляет атрибут ПерерасчетВыполнен в значение Истина, что провоцирует документ совершить все необходимые движения по расчетным регистрам. Если у пользователя недостаточно прав или документ не прошел стадию утверждения, этот флаг остается ложным.

Механизм «Многофункциональных документов»

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

  1. Кадровик заполняет сведения о периоде и сотрудниках.
  2. Расчетчик заходит в этот же документ и нажимает кнопку «Утвердить» (флаг Расчет утвердил).

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

Способ 1: Восстановление видимости флага утверждения

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

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

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

Способ 2: Административное исправление (Групповая обработка)

Если документов много, и заходить в каждый физически невозможно, проанализируем ситуацию с помощью массового изменения данных. Нам понадобится обработка «Групповое изменение реквизитов».

  1. Выберем тип объекта: Отпуск без сохранения оплаты или Отпуск без сохранения оплаты списком.
  2. В критериях отбора укажем нужный период (например, текущий месяц).
  3. Найдем реквизит Расчет утвердил (в базе он может называться ПерерасчетВыполнен или ДокументРассчитан в зависимости от версии).
  4. Установим значение в Да и выполним изменение.

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

Почему это происходит после переноса из 2.5?

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

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

Резюме

Если ЗУП 3.1 «не видит» отпуска за свой счет при начислении зарплаты, выполните проверку по следующему алгоритму:

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

← На главную