Почему 1С:ЗУП считает обычный день праздничным и как убрать лишние строки в начислении зарплаты?

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

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

Разберем первопричины: почему программа «видит» праздник там, где его нет

Для начала проанализируем, как 1С:ЗУП определяет статус дня. Программа обращается к цепочке данных: Производственный календарь — График работы — Индивидуальный график — Табель учета рабочего времени. Если на любом из этих этапов произошел сбой или была допущена логическая ошибка, расчетный механизм может квалифицировать день некорректно.

Выясним основную причину, описанную в нашей ситуации. Зачастую проблема кроется в кадровом переводе, оформленном последним числом месяца. Рассмотрим ситуацию: сотрудник переводится на новый график работы с 31 января. Программа в этот момент должна «разрезать» период начислений. Из-за особенностей релиза 3.1.8 алгоритм заполнения может ошибочно подтянуть настройки из предыдущего графика или некорректно сопоставить данные за один-единственный день перевода.

Шаг 1: Проверка производственного календаря и региональных особенностей

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

  1. Перейдем в раздел «Настройка» — «Производственные календари».
  2. Проверим основной календарь (РФ). 31 января там должно быть отмечено как рабочий день.
  3. Важный момент: если в вашей базе ведется учет по нескольким регионам, проверьте региональные календари. Иногда пользователи случайно устанавливают региональный праздник (например, религиозный или местный день города), который выпадает на нужную дату.

Если в календаре все верно, перейдем к анализу графиков работы конкретного сотрудника.

Шаг 2: Анализ графиков работы и регистра «Данные графиков работы»

Проанализируем график работы сотрудника. Даже если визуально в печатной форме графика 31 января — рабочий день, программная «начинка» может содержать ошибки. В версии ЗУП 3.1.8 существовал баг, при котором записи в регистре сведений ДанныеГрафиковРаботы могли дублироваться или повреждаться при обновлении системы.

Чтобы исключить эту проблему, попробуем выполнить следующие действия:

  1. Откроем карточку графика сотрудника («Настройка» — «Графики работы сотрудников»).
  2. Нажмем кнопку «Изменить свойства графика».
  3. Ничего не меняя, нажмем «Записать и закрыть». Это инициирует перезапись регистра ДанныеГрафиковРаботы и может исправить «фантомный» праздник.

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

Шаг 3: Кадровый перевод и «наложение» периодов

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

В релизах ветки 3.1.8 механизм определения «Вида дня» в день перевода иногда дает сбой, если перевод происходит «день в день». Программа видит изменение состояния и по какой-то внутренней логике (возможно, из-за конфликта с данными о праздничных днях в прошлом году или переносах) подставляет признак праздничного дня.

Что мы можем сделать:

Шаг 4: Проверка скрытых документов «Работа в выходные и праздники»

Разберем ситуацию, когда сотрудника нет в явном списке документа Работа в выходные и праздники, но строка все равно появляется. Проанализируем, нет ли в системе документов, введенных «будущим числом» или по ошибке захватывающих период конца месяца.

Рекомендуется воспользоваться универсальным отчетом по регистру сведений ДанныеОперативногоУчетаРабочегоВремениСотрудников. Если там за 31 января стоит признак работы в выходной, то 1С:ЗУП будет обязана вывести строку с доплатой, даже если сумма будет равна нулю из-за отсутствия часов в табеле.

Шаг 5: Очистка кэша и принудительное обновление данных

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

Попробуем выполнить следующую последовательность действий:

  1. Удалим сотрудника из документа Начисление зарплаты и взносов.
  2. Запишем документ.
  3. Проверим регистр Данные о времени для расчета среднего заработка (общий). Если там остались записи за 31 января с некорректным видом времени, их нужно очистить.
  4. Снова добавим сотрудника в документ начисления кнопкой «Подбор».

Как отмечают опытные специалисты, в версии 3.1.8 такие ошибки часто исчезают сами собой после перехода на более стабильные релизы (например, 3.1.10 и выше), где исправлены алгоритмы обработки граничных дат при кадровых переводах. Если возможность обновления отсутствует, единственным надежным способом остается ручное удаление пустых строк «Доплаты» перед окончательным проведением документа, чтобы не загромождать расчетный листок лишней информацией.

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

← На главную