Почему в ЗУП 3.1 не заполняются 'Отработано дней календарных' для расчета среднего заработка и как это исправить?

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

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

В чем проявляется проблема?

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

Типичная картина в форме «Ввод данных для расчета среднего заработка» такова:

  1. ОбщийЗаработок – заполнен.
  2. ОтработаноЧасов – заполнен.
  3. НормаДней (по пр. календарю) – заполнен.
  4. НормаЧасов (по пр. календарю) – заполнен.
  5. ОтработаноДнейКалендарных – пустой или ноль.

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

Как ЗУП определяет вид среднего заработка: среднедневной или среднечасовой?

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

Например:

Если стандартный показатель СреднийЗаработокОбщий дает неверный результат, в пользовательских начислениях можно явно использовать СреднедневнойЗаработок или СреднечасовойЗаработок.

Анализ кода и истинная причина проблемы

Для глубокого понимания проблемы мы должны обратиться к коду конфигурации ЗУП 3.1. Ключевая область, отвечающая за регистрацию данных о времени для расчета среднего, находится в общем модуле УчетСреднегоЗаработка, а именно, в процедуре ЗарегистрироватьДанныеВремениДляРасчетаОбщегоСреднегоЗаработка.

Давайте посмотрим на фрагмент запроса, который определяет количество календарных дней:


СУММА(ВЫБОР
    КОГДА ФПД.Сторно = ИСТИНА
        ТОГДА -ДанныеКалендаряПоФПД.ДнейКалендарных
    ИНАЧЕ ДанныеКалендаряПоФПД.ДнейКалендарных
КОНЕЦ) КАК ДнейКалендарных

Здесь система суммирует календарные дни. Но ключевым моментом является условие соединения с временной таблицей ВТДанныеПроизводственногоКалендаряПоГрафикам, а также условия, фильтрующие записи:


ВТФПДСотрудников КАК ФПД
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТДанныеПроизводственногоКалендаряПоГрафикам КАК ДанныеКалендаряПоФПД
    ПО (ДанныеКалендаряПоФПД.НачалоПериода = ФПД.НачалоПериода)
        И (ДанныеКалендаряПоФПД.ОкончаниеПериода = ФПД.ОкончаниеПериода)
        И (ДанныеКалендаряПоФПД.ГрафикРаботы = ФПД.ГрафикРаботы)
        И (ФПД.ЗачетНормыВремени)
        И (ФПД.ЗачетОтработанногоВремени
            ИЛИ ФПД.Отгул)

Как мы видим из кода, для заполнения ДнейКалендарных необходимо, чтобы поле ФПД.ЗачетНормыВремени было истинно. Это поле является реквизитом вида времени, используемого в начислении. После подробного анализа мы выяснили, что причина кроется в виде учета рабочего времени, установленном в настройках начисления. Если в начислении выбран вид времени «Начисление за работу неполную смену в пределах нормы времени», то для него внутренне устанавливается ЗачетНормыВремени = Ложь. Это и является критическим фактором, который приводит к тому, что система не включает отработанные дни в расчет среднего заработка.

Решение проблемы: изменение вида учета рабочего времени

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

  1. Откройте карточку проблемного начисления (например, оклад, который учитывается при расчете среднего заработка). Для этого перейдите в раздел «Настройки» → «Начисления».
  2. Найдите и откройте начисление, которое неверно влияет на расчет среднего заработка.
  3. На вкладке «Основное» или «Учет времени» (в зависимости от версии ЗУП и конкретного начисления) найдите настройку «Вид учета времени» или аналогичную.
  4. Измените значение с «Начисление за работу неполную смену в пределах нормы времени» на «За работу полную смену в пределах нормы времени».
  5. Сохраните изменения в начислении.

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

Почему «Начисление за работу неполную смену в пределах нормы времени» вызывает проблему?

Разберем назначение этих двух видов времени, чтобы понять логику 1С:

На партнерских ресурсах 1С и в статьях экспертов неоднократно указывается, что «Не следует использовать в настройках учета времени положение «Начисление за работу неполную смену в пределах нормы времени», вместо него следует выбирать «За работу в полную смену в пределах нормы». Это прямое указание на то, что использование первого вида времени для основных начислений, влияющих на среднедневной заработок, является методологической ошибкой.

Действия после изменения настройки

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

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

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

Важные замечания и потенциальные последствия

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

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

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

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

← На главную