Почему изменилась зарплата: разница двух месяцев по причинам, до копейки (ЗУП 3.1)
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Почему изменилась зарплата: разница двух месяцев по причинам, до копейки (ЗУП 3.1)
Вопрос, который задают каждый месяц
Сотрудник приходит в расчетный отдел: «В сентябре было 85 900, в октябре 43 657. Почему?» Расчетчик открывает два расчетных листка, кладет рядом и начинает сверять: оклад тот же, дней меньше, был отпуск, отпускные начислили еще в сентябре, плюс отпуск за ноябрь заранее, НДФЛ уменьшился. Минут через десять ответ готов. Еще через час приходит следующий сотрудник, а в конце месяца — руководитель с вопросом, почему вырос фонд оплаты труда по отделу.
Мы сделали отчет, который отвечает на этот вопрос сам: берет два месяца и раскладывает разницу по каждому сотруднику на причины. У каждой причины есть сумма и пояснение обычными словами. Сумма причин в точности равна разнице, до копейки, и строки «прочее, не объяснено» в отчете нет.

Это тот самый случай из первого абзаца. Минус 42 242 к выплате складывается так: отработал 12 дней вместо 22 — минус 31 818; отпуск за октябрь был начислен еще в сентябре, поэтому в октябре этих 25 000 нет; зато в октябре начислен отпуск за ноябрь — плюс 12 000; НДФЛ меньше на 2 576. Сложите — получится ровно −42 242,18.
Что есть в типовой
Расчетный листок, два десятка вариантов «Анализа начислений и удержаний», «История изменения оплаты труда» — все показывают суммы. Сказать, из-за чего два месяца разошлись, типовая не умеет, это делают руками по двум листкам.
Причины
| Причина | Когда появляется |
|---|---|
| Оклад, тариф, надбавки | у начисления изменились показатели (оклад, тарифная ставка, процент надбавки) или изменилась сумма при том же времени |
| Отработанное время | при тех же показателях отработано другое число дней или часов; в пояснении — неявки месяца: отпуск, больничный, прогул |
| Отпуск | отпускные появились, исчезли или начислены за другой месяц |
| Больничные и пособия | больничные, пособия по беременности и по уходу |
| Оплата по среднему | командировки, простой, другие начисления по среднему заработку |
| Премии | премии появились, исчезли, изменились |
| Разовые и прочие начисления | все остальные виды начислений |
| Перерасчеты прошлых месяцев | доначисления и сторно оплаты труда за прошлые месяцы |
| НДФЛ | налог изменился вместе с доходом или из-за вычетов |
| Удержания | исполнительные листы, займы, профсоюзные взносы и прочее, по видам |
Первой строкой у каждого сотрудника идет «Всего: было → стало» с суммами обоих месяцев. Она дает итоги «было» и «стало» на любом уровне группировки.
Причину вида начисления отчет определяет по его категории («Оплата отпуска», «Премия», «Оплата больничного» и т. д.), поэтому переименованные и свои виды начислений попадают куда надо, если у них правильно указана категория.
Как отчет делит оклад и время
Самое интересное — повременная оплата. Сотрудник получил меньше: из-за того, что меньше отработал, или из-за того, что ему снизили оклад? Бывает и то и другое сразу.
Для каждой строки начисления ЗУП хранит показатели, с которыми она рассчитана (регистр сведений «Значения показателей начислений»), и отработанное время (регистр расчета «Начисления»). По ним отчет считает «ставку» начисления в каждом месяце. Влияние ставки — это сумма прошлого месяца, умноженная на относительное изменение ставки. Остаток разницы по этому начислению относится ко времени. Так сумма двух причин всегда равна разнице по начислению, без округлений и остатков.
Почему не взять оклад из кадровых данных и не пересчитать «сколько должно было быть»? Потому что так почти никогда не сойдется: оклад меняется с середины месяца, надбавки бывают процентом от оклада, часть строк расчетчик фиксирует вручную. Показатели строки — это то, с чем ЗУП на самом деле считал, поэтому по ним сходится до копейки.
Как это выглядит на цифрах. Сотрудник в сентябре получил 65 000 за 22 дня. В октябре оклад подняли с 11-го числа, и в октябре две строки: 32 500 по старому окладу 65 000 и 35 000 по новому 70 000, по 11 дней каждая.
- Ставка строки — произведение ее показателей (здесь просто оклад). Чтобы получить ставку месяца, отчет делит сумму начисления на «долю времени»: каждая строка дает результат / ставку. В октябре это 32 500 / 65 000 + 35 000 / 70 000 = 0,5 + 0,5 = 1. Ставка месяца — 67 500 / 1 = 67 500. В сентябре — 65 000.
- Влияние ставки: 65 000 × (67 500 / 65 000 − 1) = +2 500.
- Остаток на время: (67 500 − 65 000) − 2 500 = 0. Так и есть, дней столько же.
Для оклада, тарифа и процентных надбавок это точное разложение. Если бы сотрудник еще и отработал меньше, доля времени была бы меньше единицы, и минус ушел бы во «время».
Несколько примеров с тестовой базы:
- оклад 75 000 → 80 000, отработано 22 дня в обоих месяцах: «Оплата по окладу: 75 000 → 80 000 при том же отработанном времени: 22 дн. (176 ч). Показатели: оклад 75 000 → 80 000» — все +5 000 в причину «Оклад»;
- оклад сменился с 11-го числа, в октябре две строки начисления: «Показатели: оклад 65 000 → 65 000 / 70 000» — видно, что новый оклад действовал часть месяца;
- оклад тот же, отработано 20 дней из 22: «отработано 20 дн. (160 ч), было 22 дн. (176 ч)» — все в «Отработанное время».
Если у вида начисления нет показателей или времени (праздничные, ночные, фиксированные суммы), разница идет одной строкой «было → стало» в причину по категории вида.
Отпуск, начисленный в прошлом месяце
Самый частый случай на практике, и как раз тот, на котором путаются. Отпуск с 11 октября начисляют в сентябре, потому что отпускные надо выплатить заранее. В сентябрьском листке зарплата больше обычного, в октябрьском — заметно меньше: дней отработано мало, а отпускных в октябре нет.
Отчет объясняет обе половины. В октябре: «отработано 12 дн., было 22. В октябре 2021: Отпуск основной 10 дн.» — неявки берутся по месяцу, в котором они были, а не по месяцу, в котором их начислили. Отдельной строкой: «В сентябре 2021 было начислено "Отпуск основной" за октябрь 2021: +25 000, в этом месяце такого начисления нет». Если отпуск потом перенесли или пересчитали, сторно ЗУП вычитается, и дни не задваиваются.
Отпуск «вперед» (в октябре начислили отпускные за ноябрь) попадает в «Отпуск» с пометкой «за ноябрь 2021».
Перерасчеты

Перерасчет за сентябрь, проведенный в октябре, идет отдельной причиной: «Перерасчет за сентябрь 2021: "Оплата по окладу" +5 000». Дни перерасчета ко времени октября не прибавляются, иначе получилось бы «отработано 42 дня» в месяце из 22 рабочих. Мы на это сами наступили в первой версии 🙂
Перерасчетом считается только оплата труда за прошлые месяцы. Премия за сентябрь, начисленная в октябре, — это не перерасчет, а премия: она попадет в «Премии» с пометкой «за сентябрь 2021».
Все сотрудники сразу

По умолчанию отчет показывает только сотрудников, у которых что-то изменилось. Тех, у кого оба месяца совпали до копейки, он прячет. Сотрудник, у которого итог не изменился, но внутри что-то поменялось (на кадре — Громова: оклад −5 000, премия +5 000), в отчет попадает. Для сводки по отделу такие случаи важны.
Флажок «Только сотрудники с изменениями» можно снять, тогда в отчет попадут все.
Руководителю и сотруднику

Вариант «Сводно по подразделениям» отвечает на вопрос «почему вырос (упал) фонд оплаты труда»: по каждому подразделению — было, стало и сколько дала каждая причина. Тут видно, например, что по «Руководству» минус 39 818 — это почти целиком время и отпуск одного человека, а не урезанные оклады.

Вариант «Для сотрудника (печать)» — то же самое без колонки причин, только пояснения и влияние на сумму к выплате. Отбор по сотруднику, «Печать» — и листок можно отдать в руки или отправить письмом. Глядишь, и в расчетный отдел с вопросом «почему меньше» будут ходить реже))
Итоги «было» и «стало» берутся из того же регистра накопления, по которому строится типовой расчетный листок, поэтому суммы в отчете с листком совпадают. «К выплате» — это начислено минус удержано за месяц, как в листке, а не то, что фактически пришло на карту.
Параметры обычные: месяц, с каким месяцем сравнить и организация. При открытии отчет сам ставит последний месяц с начислениями и предыдущий к нему, а в следующем месяце сдвигает их вперед. Если выбрать месяцы вручную (например, тот же месяц год назад), отчет их запомнит и трогать не будет. Плюс отборы по подразделению, сотруднику и причине: отбор «Причина = Перерасчеты прошлых месяцев» сразу покажет, у кого в этом месяце были перерасчеты.
Чего отчет не делает
- Не разбивает сотрудника по местам работы: если у человека два места в одной организации, он в отчете одной строкой.
- Не делит на ставку и время доплаты, у которых ЗУП не хранит отработанное время (праздничные, ночные, если они рассчитаны суммой) — они идут одной строкой «было → стало».
- Точно делит на «ставку» и «время» начисления вида «показатели × доля отработанного времени» (оклад, тариф, процентные надбавки). Если в формуле показатели складываются, раздел между этими двумя причинами приблизительный. Итог по начислению и по сотруднику при этом все равно точный.
- Ничего не записывает в базу и конфигурацию не меняет.
На чем проверено
Демобаза ЗУП 3.1 на платформе 8.5. В демобазе почти одни «Начисления зарплаты», поэтому сложные случаи мы создали сами: смену оклада, смену оклада с середины месяца, неполный месяц с отпуском, отпуск, начисленный в прошлом месяце, отпуск «вперед», перерасчет за прошлый месяц, премию за прошлый месяц, взаимную компенсацию, новое удержание. Скриншоты сняты на копии демобазы с этими случаями. Суммы в них введены вручную для примера: у Громовой, например, оклад в карточке не менялся, просто строка начисления зафиксирована на 60 000.
Главная проверка — сверка по всей демобазе: 105 пар соседних месяцев, 400 случаев «сотрудник × пара месяцев». Во всех сумма причин совпала с разницей «Начислено» и «К выплате» до копейки. Прогон был в безопасном режиме, как при подключении через «Дополнительные отчеты», под администратором и под расчетчиком без полных прав.
Не проверено:
- ЗУП на платформе 8.3 вживую: отчет собран платформой 8.3.27, но живой базы ЗУП на 8.3 у нас не было;
- ЗУП КОРП и ERP с зарплатным блоком — только сверкой метаданных: регистры и поля, на которые опирается отчет, на месте;
- повышенные ставки НДФЛ с 2025 года: в демобазе нет данных за 2025 год. Отчет ищет виды «НДФЛ с превышения…», но на живой базе это не проверялось.
Если у вас есть ЗУП КОРП или база с прогрессивным НДФЛ и вы попробуете отчет — напишите в комментариях, что получилось. И какие причины разницы у вас встречаются, а в отчете их нет?
Установка
- «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки» → «Добавить из файла…» →
ПочемуИзмениласьЗарплата.erf. - На вкладке «Размещение» указать раздел, например «Зарплата», и открыть доступ пользователям.
- Записать. Отчет откроется из выбранного раздела командой «Дополнительные отчеты».
Отчет работает в безопасном режиме и только читает данные. Конфигурацию снимать с поддержки не нужно. Запросы написаны с «РАЗРЕШЕННЫЕ», так что ограничения доступа на уровне записей ЗУП отчет не ломают: расчетчик с ограничением по подразделениям должен увидеть только своих сотрудников. Под расчетчиком отчет прогоняли, но у него в демобазе доступ ко всем сотрудникам, так что сам отбор по правам на урезанном доступе мы не видели.
Требования: платформа 8.3.27 и новее (в том числе 8.5), БСП в составе ЗУП.
Тестировалось на:
- Зарплата и управление персоналом 3.1.39.53, платформа 8.5.1.1150;
- Зарплата и управление персоналом 3.1.38.18, платформа 8.3.27.2214
Вступайте в нашу телеграмм-группу Инфостарт