К статье
Практический материал

Другое · 10 мин

Как рассчитать записи регистра расчета в 1С

Как рассчитать записи регистра расчета в 1С: проведение документов, перерасчеты, проверка результата, типовые ошибки и способы исправления.

Регистр расчета — ключевой механизм учета начислений и удержаний в 1С: в нем хранятся записи о зарплате, отпускных, больничных, премиях и других видов расчета с привязкой к сотруднику, периоду действия и фактическому результату. «Рассчитать записи» означает заставить систему заполнить ресурс «Результат» на основании введенных данных: оклада, отработанного времени, тарифа, процента и формулы вида расчета.

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

Ниже разобран практический порядок расчета записей регистра: от подготовки данных до проверки результата и устранения типичных проблем. Материал ориентирован на конфигурации семейства 1С:ЗУП и самописные решения на платформе 8.3, где механика планов видов расчета и регистров расчета работает одинаково.

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

Механизм строится на трех связанных объектах. План видов расчета описывает сами виды начислений (оклад, премия, удержание) и хранит формулу расчета. Регистр расчета хранит записи: сотрудник, период действия, вид расчета, значения показателей и рассчитанный результат. Документ (начисление зарплаты, отпуск, больничный) создает движения по регистру и при проведении инициирует расчет.

Формула вида расчета опирается на показатели: оклад, отработанное время, тарифная ставка, процент. Например, классическая формула оплаты по окладу выглядит как «Оклад / Норма дней × Отработано дней». Если хотя бы один показатель не заполнен, результат будет нулевым или расчет вообще не выполнится — система не «догадывается» о недостающих данных.

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

Подготовка данных перед расчетом

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

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

График работыЗаполнен на месяц расчета

Норма дней и часов в отчете «Табель» не равна нулю

ПоказателиЕсть значения на дату

Оклад и проценты заданы в кадровом документе или регистре значений

ОтсутствияВведены до расчета

Отпуска и больничные проведены за расчетный месяц

Базовые начисленияРассчитаны раньше зависимых

Премии от базы считаются после окладов

Расчет записей при проведении документа

В типовых конфигурациях расчет запускается автоматически: при нажатии «Провести» документ «Начисление зарплаты и взносов» формирует записи в регистре расчета и вызывает процедуру расчета по формулам. Результат можно увидеть прямо в табличной части документа и в движениях через кнопку «Перейти — Движения документа».

В самописных конфигурациях расчет программируется вручную в модуле объекта или менеджера регистра. Типовой подход — получить набор записей, рассчитать его методом Рассчитать() с параметрами, затем записать. Расчет с учетом базы и графика выполняется платформой, если корректно настроены связи регистра с планом видов расчета и регистром графиков.

bsl
НаборЗаписей = РегистрыРасчета.ОсновныеНачисления.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(СсылкаНаДокумент);
НаборЗаписей.Прочитать();
НаборЗаписей.Рассчитать();
НаборЗаписей.Записать(, Истина);

После проведения всегда сверяйте результат с ожиданием хотя бы по одному сотруднику: оклад делится на норму дней и умножается на отработанные дни. Расхождение даже в копейках сигнализирует о неверной норме времени или лишнем дне в периоде действия записи.

Перерасчеты: когда и как их запускать

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

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

Порядок перерасчета записей
  1. 1
    Исправьте исходные данные: оклад, график, документ отсутствия
  2. 2
    Откройте регистр перерасчетов и убедитесь, что записи появились
  3. 3
    Перепроведите расчетный документ за затронутый период
  4. 4
    Проверьте, что регистр перерасчетов очистился
  5. 5
    Сверьте новый результат в расчетном листке сотрудника

Ручное редактирование результата в записи регистра вместо перерасчета — плохая практика: при следующем перепроведении документа система перезапишет значение по формуле, и ручная правка исчезнет, создав расхождения в учете.

Проверка результата расчета

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

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

Контрольные точки

Как проверить результат

Результат в записи регистра
Норма

Сумма заполнена и совпадает с табличной частью документа

Тревожный признак

Ноль или пусто при заполненных показателях

Период действия
Норма

Совпадает с месяцем начисления, дни отсутствий вытеснили оклад

Тревожный признак

Оклад посчитан за полный месяц при наличии отпуска

Регистр перерасчетов
Норма

Пуст после перепроведения документов

Тревожный признак

Записи остаются — перерасчет не выполнен

Расчетный листок
Норма

Итог совпадает с суммой записей по сотруднику

Тревожный признак

Расхождения между листком и движениями документов

Типичные ошибки и их устранение

Самая частая проблема — нулевой результат из-за незаполненного графика или показателя. Диагностируется просто: откройте запись регистра, посмотрите значения показателей и норму времени. Вторая ошибка — двойной расчет: документ провели повторно, не отменив старые движения, или завели дублирующее начисление. Лечится отменой проведения лишнего документа.

Третья группа ошибок связана с базой: премия «процентом от базы» посчитана раньше оклада, поэтому база оказалась пустой. Решение — соблюдать очередность: сначала первичные начисления, затем зависимые, в конце удержания. Четвертая — неверный период действия записи, из-за чего вытеснение не срабатывает и сотруднику начисляется и оклад, и отпускные за одни дни.

Типичные ошибки
01
Расчет при незаполненном графике — результат нулевой, зарплата не начисляется
02
Ручная правка результата в регистре — правка теряется при перепроведении документа
03
Премия от базы рассчитана до оклада — база пустая, премия равна нулю
04
Игнорирование регистра перерасчетов — старые ошибки остаются в учете
05
Дублирование документов начисления — задвоение сумм в расчетном листке

Программный расчет и особые сценарии

Расчет с учетом вытеснения

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

Расчет зависимых начислений по базе

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

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

Частые вопросы

Почему запись регистра расчета есть, а результат равен нулю?

Чаще всего не заполнен один из показателей формулы (оклад, процент) или нулевая норма времени из-за незаполненного графика работы. Откройте запись, проверьте значения показателей и норму дней за период действия.

Как пересчитать записи за прошлый месяц?

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

Можно ли изменить результат расчета вручную?

Технически можно, но не рекомендуется: при перепроведении документа ручная правка будет перезаписана формулой. Если формула не подходит, скорректируйте показатели или настройте отдельный вид расчета.

Что делать, если премия «процентом от базы» равна нулю?

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

Как понять, что перерасчет выполнен полностью?

Регистр перерасчетов должен опустеть — платформа удаляет обработанные записи. Дополнительно сверьте расчетный листок сотрудника с движениями документа: суммы должны совпадать.

Почему оклад начислен за полный месяц, хотя был отпуск?

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

Итог

Что важно запомнить

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