Разбор от сообщества: Настройка автоматизированного учета кадров в 1С:ЗУП 3.1 | infolimp.ru

Разбор от сообщества: Настройка автоматизированного учета кадров в 1С:ЗУП 3.1

27 августа 2026 · infolimp.ru

Автоматизация кадрового учёта в 1С:ЗУП 3.1 давно стала стандартом, но даже в типовых механизмах расчёта аванса скрывается ловушка, о которой молчат инструкции. Анализируем, почему «Кадровый перевод» в середине месяца может не пересчитать аванс, и как это приводит к ошибкам в зарплате за месяц. Статья для тех, кто уже устал от поверхностных чек-листов и хочет понять механику изнутри.

Как работает расчёт аванса в ЗУП 3.1: детальный разбор

Большинство специалистов знают, что аванс (зарплата за первую половину месяца) в ЗУП 3.1 рассчитывается на основании плановых начислений, зафиксированных в регистре сведений ПлановыеНачисления. Однако мало кто задумывается, как именно программа выбирает сумму на дату расчёта аванса.

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

Регистр «ПлановыеНачисления» и его роль

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

Проблема возникает, когда дата перевода попадает на тот же день, что и дата расчёта аванса, или когда перевод оформлен задним числом, а документ не перепроведён. В этом случае программа может «увидеть» старую запись, если новая ещё не активна на момент расчёта.

Ключевой тезис: Аванс рассчитывается по плановым начислениям, действующим на дату начала месяца, а не на дату фактического расчёта. Это приводит к тому, что перевод, сделанный после 1-го числа, не влияет на аванс за текущий месяц, если только не используется способ «Расчёт за первую половину месяца».

Ловушка: кадровый перевод в середине месяца и аванс

Рассмотрим типовую ситуацию. Сотрудник принят на работу с окладом 50 000 руб., способ расчёта аванса — «Процент от оклада» (40%). 15-го числа месяца он переводится на другую должность с окладом 70 000 руб. Ожидание: аванс за первую половину месяца должен быть рассчитан пропорционально: за 14 дней по 50 000 и за 1 день по 70 000? Или хотя бы по новому окладу, если перевод был до 15-го?

На практике ЗУП 3.1 (типовое поведение) при способе «Процент от оклада» берёт плановое начисление, действующее на 1-е число месяца. Поскольку на 1-е число действовал оклад 50 000, аванс будет рассчитан как 40% от 50 000 = 20 000 руб. Новый оклад 70 000 вступит в силу только с 15-го числа, и на аванс он не повлияет. Это логично, если аванс считается за первую половину месяца, но многие ожидают, что перевод «пересчитает» аванс.

Ещё более коварная ситуация — когда перевод оформлен задним числом (например, 14-го числа, но документ проведён 16-го). Если расчёт аванса был выполнен 15-го, то он уже зафиксирован. Перепроведение документа перевода не пересчитает аванс автоматически — потребуется перезаполнить и перепровести документ начисления аванса.

Пример кода: как проверить плановые начисления на дату аванса

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

Функция ПолучитьОкладНаДату(Сотрудник, Дата)
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   ПлановыеНачисления.Сумма КАК Сумма
    |ИЗ
    |   РегистрСведений.ПлановыеНачисления КАК ПлановыеНачисления
    |ГДЕ
    |   ПлановыеНачисления.Сотрудник = &Сотрудник
    |   И ПлановыеНачисления.ВидРасчета = &ВидРасчета
    |   И ПлановыеНачисления.Период ДО &Дата
    |   И (ПлановыеНачисления.ОкончаниеПериода > &Дата ИЛИ ПлановыеНачисления.ОкончаниеПериода ЕСТЬ NULL)";
    
    Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
    Запрос.УстановитьПараметр("ВидРасчета", ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Оклад (по часам)"));
    Запрос.УстановитьПараметр("Дата", Дата);
    
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        Возврат 0;
    Иначе
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        Возврат Выборка.Сумма;
    КонецЕсли;
КонецФункции

Этот запрос покажет, какая сумма оклада «видна» на дату расчёта аванса. Если на 15-е число всё ещё старый оклад — значит, перевод не учтён.

Сравнение подходов: способы расчёта аванса

Выбор способа расчёта аванса напрямую влияет на то, как кадровые изменения отразятся на сумме. Ниже приведено сравнение трёх основных способов, доступных в ЗУП 3.1.

Расширение «НОПик» для 1С — встраиваемый коннектор к внешнему AI с интеллектуальным поиском по базе. Задавайте вопросы обычными словами - AI сам найдёт нужное. 45 дней бесплатно.

Попробовать НОПик →
Знаете ответ на такие вопросы не хуже автора статьи? Пройдите бесплатную анонимную проверку уровня на infolimp.ru - 3 практических задачи, 15 минут, публичный токен-профиль, который можно показать работодателю или заказчику. Без регистрации по почте.

Проверить свой уровень бесплатно →
Способ расчёта аванса Условия применимости Реакция на кадровый перевод в середине месяца Риски
Процент от оклада Подходит для большинства организаций, если оклад не меняется часто Не пересчитывается автоматически; аванс считается по окладу на 1-е число месяца