Откуда 1С берёт базу для расчёта: базовый период на практике
Содержание
Базовый период в 1С — это интервал дат, за который программа собирает начисления-основу (базу) для другого начисления. Премия 10% за квартал берёт базу с 1 января по 31 марта, отпускные — за 12 месяцев до начала отпуска. Задаётся он в записи регистра расчёта: у неё есть реквизиты БазовыйПериодНачало и БазовыйПериодКонец.
Пользователь ЗУП чаще всего видит базовый период под другими именами: «расчётный период» среднего заработка, «период, за который начисляется премия». Разработчик настраивает его в конфигураторе — в свойствах регистра расчёта и плана видов расчёта. Ниже обе стороны: что настроить и как проверить, что база посчитана верно.
Что такое базовый период в 1С и зачем он нужен
В платформе 1С:Предприятие 8.3 расчёт зарплаты построен на регистрах расчёта. Каждое начисление — запись регистра. Одни начисления зависят от других: премия — от оклада, доплата за вредность — от отработанного времени, пособие — от заработка за прошлые годы.
Начисления, от которых зависит расчёт, называют базовыми. Базовый период отвечает на вопрос «за какие даты брать базовые начисления».
Без него программа не знает, что премию за квартал нужно считать от окладов января, февраля и марта, а не только от текущего месяца.
📌 Где базовый период нужен чаще всего:
- 💰 премии за квартал или год, рассчитанные процентом от начислений;
- 🏖️ отпускные и компенсация отпуска — по среднему заработку;
- 🩺 пособия по нетрудоспособности и по беременности и родам;
- 📊 доплаты процентом от фактического заработка за прошлые месяцы.
Базовый период, период регистрации и период действия: в чём разница
У записи регистра расчёта может быть три периода. Их путают, и отсюда большая часть вопросов «почему база не та».
| Период | Что означает | Пример для премии за 1-й квартал |
|---|---|---|
| Период регистрации | Месяц, в котором начисление отражено в учёте | Апрель |
| Период действия | Даты, к которым начисление относится по существу | Апрель (или период работы, если начисление по времени) |
| Базовый период | Даты, из которых берутся базовые начисления | 1 января — 31 марта |
💡 Простое правило: период регистрации — «когда начислили», период действия — «за что», базовый период — «от чего считали».
Как платформа выбирает записи в базу
В плане видов расчёта для вида расчёта задаётся зависимость от базы. Вариантов три:
- Не зависит — база не нужна, базовый период не используется.
- По периоду регистрации — в базу попадают записи базовых видов расчёта, у которых период регистрации входит в базовый период.
- По периоду действия — в базу попадает та часть базовых начислений, чей фактический период действия пересекается с базовым периодом.
Разница видна на сторно. Допустим, в апреле сторнировали часть мартовского оклада. По периоду регистрации эта запись относится к апрелю и в базу первого квартала не войдёт. По периоду действия она относится к марту и уменьшит базу премии.
Где задаётся базовый период в 1С
В конфигураторе: регистр и план видов расчёта
Чтобы у записей появились реквизиты базового периода, в свойствах регистра расчёта включают флажок «Базовый период». После этого у регистра появляются стандартные реквизиты БазовыйПериодНачало и БазовыйПериодКонец.
Дальше настраивают план видов расчёта, к которому привязан регистр:
- Откройте вид расчёта (например, «Премия квартальная») в режиме 1С:Предприятие или в предопределённых данных.
- На закладке базовых видов расчёта укажите, от каких начислений он считается: оклад, доплаты, надбавки.
- В свойствах вида расчёта выберите тип зависимости: по периоду регистрации или по периоду действия.
Изменение структуры регистра в рабочей базе требует обновления конфигурации базы данных. Делайте это в нерабочее время и после резервной копии: на время обновления пользователи будут отключены.
В ЗУП 3.1: где пользователь видит базу
В типовой «Зарплате и управлении персоналом» базовый период заполняется программой по правилам начисления. Пользователь управляет им косвенно:
- в карточке начисления (
Настройка → Начисления) указан состав базы — какие начисления в неё входят; - в документе премии выбирается период, за который она начисляется (месяц, квартал, год — зависит от настройки начисления);
- в документах «Отпуск» и «Больничный лист» показывается расчётный период и данные для среднего заработка.
Базовый период для среднего заработка: отпуск и больничный
Здесь базовый период установлен законом, и программа заполняет его автоматически. Знать правила нужно, чтобы проверить документ.
| Выплата | Расчётный период | Норма |
|---|---|---|
| Отпускные, компенсация отпуска | 12 календарных месяцев перед месяцем начала отпуска | ст. 139 ТК РФ, Положение № 922 |
| Пособие по нетрудоспособности, по беременности и родам | 2 календарных года перед годом наступления случая | ст. 14 закона № 255-ФЗ |
Пример. Отпуск начинается 15 апреля. Расчётный период — с 1 апреля прошлого года по 31 марта текущего. Апрель текущего года в базу не входит, даже если работник уже отработал в нём две недели.
Замена лет для пособий
Если в одном или обоих годах расчётного периода работник был в отпуске по беременности и родам или по уходу за ребёнком, по его заявлению эти годы можно заменить предшествующими. Условие — замена увеличивает пособие.
В ЗУП это делается в самом документе больничного: в блоке данных для расчёта среднего заработка есть возможность заменить годы. После замены проверьте, что программа подтянула заработок за новые годы — если работник тогда работал у другого работодателя, данные вносятся по справке о заработке.
💡 Если заработка в расчётном периоде не было или он ниже минимального, пособие считают от МРОТ. ЗУП делает это сам, но в документе видно, какой вариант применён, — стоит сверить.
Почему база посчитана неверно: частые причины
Когда сумма премии или отпускных не сходится с ручным расчётом, причина почти всегда в одном из пунктов ниже.
Ещё одна типичная ситуация — изменили базу задним числом. Например, в мае провели исправление мартовского оклада, а квартальная премия уже начислена в апреле. Премия посчитана от старой суммы и сама не изменится.
Как исправить ошибки в базе и пересчитать начисление
Шаг 1. Найдите, что не так в базе
Сформируйте расчётный листок или анализ начислений за весь базовый период. Сравните, какие начисления там есть и какие вы ожидали увидеть в базе.
Шаг 2. Исправьте источник
- Начисление не входит в базу — добавьте его в состав базы в карточке зависимого начисления.
- Ошибка в базовом начислении прошлого месяца — исправьте документ этого месяца через механизм исправления, а не правкой закрытого периода «вручную».
- Не те данные для среднего — исправьте их в самом документе отпуска или больничного либо внесите данные справки.
Шаг 3. Пересчитайте зависимое начисление
На уровне платформы для этого есть регистры перерасчёта. Когда меняются записи базы, платформа может зарегистрировать потребность в перерасчёте для зависимых записей. Конфигурация видит эти пометки и предлагает пересчитать.
В ЗУП это выглядит так: при следующем начислении зарплаты появляется перерасчёт прошлого периода, или документ премии нужно перезаполнить и провести повторно.
Не проводите копию документа премии, чтобы «досчитать» разницу. Получится двойное начисление и двойной НДФЛ. Если копию уже провели — отмените её проведение и пометьте на удаление.
Шаг 4. Проверьте налоги и взносы
Пересчёт меняет сумму начисления, а значит НДФЛ и взносы того месяца, где он отражён. Если месяц уже закрыт и отчётность сдана, оцените, нужна ли уточнённая отчётность.
Как заполнить базовый период программно
Если вы дописываете свой вид расчёта в расширении или нетиповой конфигурации, базовый период задают при формировании движений документа.
Движение = Движения.Начисления.Добавить();
Движение.ПериодРегистрации = НачалоМесяца(Дата);
Движение.ВидРасчета = ПланыВидовРасчета.Начисления.ПремияКвартальная;
Движение.Сотрудник = Сотрудник;
Движение.ПериодДействияНачало = НачалоМесяца(Дата);
Движение.ПериодДействияКонец = КонецМесяца(Дата);
// База — предыдущий квартал
НачалоПрошлогоКвартала = НачалоКвартала(ДобавитьМесяц(Дата, -3));
Движение.БазовыйПериодНачало = НачалоПрошлогоКвартала;
Движение.БазовыйПериодКонец = КонецКвартала(НачалоПрошлогоКвартала);
Имена регистра и видов расчёта здесь условные — подставьте свои.
Получить базу удобно запросом к виртуальной таблице базы. Она называется по шаблону База<ИмяБазовогоРегистра> и возвращает ресурсы с окончанием «База»:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Б.Сотрудник,
| Б.ВидРасчета,
| Б.РезультатБаза
|ИЗ
| РегистрРасчета.Начисления.БазаНачисления(
| &Измерения,
| &Измерения,
| ,
| Регистратор = &Ссылка) КАК Б";
Измерения = Новый Массив;
Измерения.Добавить("Сотрудник");
Запрос.УстановитьПараметр("Измерения", Измерения);
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Порядок обычный: сначала записать движения с заполненным базовым периодом, затем запросом получить базу и рассчитать результат, затем записать результат.
💡 В типовых конфигурациях не меняйте базовый период движений вручную в коде типовых документов. Для своей логики используйте расширение — так доработка переживёт обновление.
Пример: премия за квартал и отпускные
Квартальная премия 10%
Сотрудник получал оклад 60 000 ₽ в январе и феврале. В марте отработал половину месяца — оклад 30 000 ₽. Ещё в феврале была доплата за совмещение 5 000 ₽, она входит в базу.
База за 1 января — 31 марта: 60 000 + 60 000 + 30 000 + 5 000 = 155 000 ₽. Премия: 155 000 × 10% = 15 500 ₽. Начисление в апреле, базовый период — первый квартал.
Если доплату не включить в состав базы, премия выйдет 15 000 ₽. Разница в 500 ₽ — первый признак, что нужно открыть карточку начисления.
Отпускные
Отпуск 14 календарных дней с 15 апреля. Расчётный период отработан полностью, заработок за 12 месяцев — 720 000 ₽.
Среднедневной заработок: 720 000 / 12 / 29,3 = 2 047,78 ₽. Отпускные: 2 047,78 × 14 = 28 668,92 ₽.
Если в расчётном периоде был больничный, эти дни и выплаты за них исключаются, а знаменатель уменьшается. ЗУП делает это сам, но при сверке вручную об этом легко забыть.
Частые вопросы о базовом периоде
Можно ли поменять базовый период в уже проведённом документе ЗУП?
Базовый период может быть в будущем?
Зачем базовый период, если есть период действия?
Входит ли в базу начисление, которое ещё не проведено?
Есть ли базовый период в 1С:Бухгалтерии?
Источники
- Трудовой кодекс РФ, статья 139
- Федеральный закон от 29.12.2006 № 255-ФЗ, статья 14
- Постановление Правительства РФ от 24.12.2007 № 922