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

Разработка и Конфигурация · 9 мин

Что такое регистры расчета в 1С и как с ними работать

Что такое регистры расчета в 1С, зачем нужны планы видов расчета, как настраиваются периодические расчеты, вытеснение и перерасчеты. Практические примеры и ошибки.

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

Главная особенность объекта — он не работает в одиночку. Регистр расчета всегда связан с планом видов расчета, который определяет, какие виды начислений и удержаний вообще существуют в системе (оклад, премия, НДФЛ, алименты). Записи регистра — это конкретные строки расчета по сотрудникам или объектам с результатом, периодом действия и ссылкой на вид расчета.

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

Из чего состоит механизм расчета в 1С

Механизм периодических расчетов строится на трех обязательных компонентах. Первый — план видов расчета: перечень всех начислений и удержаний с их свойствами (способ расчета, зависимость от базы, вытесняющие виды). Второй — сам регистр расчета, где хранятся строки расчетов с результатами. Третий — документы, которые вводят записи в регистр: «Начисление зарплаты», «Больничный лист», «Приказ на отпуск».

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

Период действия и вытеснение: как работает ключевой механизм

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

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

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

Зависимость по базе: расчеты от результатов других расчетов

Второй ключевой механизм — расчет по базе. Многие начисления вычисляются от суммы других начислений: премия как процент от оклада, районный коэффициент от всех основных начислений, НДФЛ от налогооблагаемой базы. В плане видов расчета для такого вида указывают базовые виды расчета.

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

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

Перерасчеты: что делать при изменении данных задним числом

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

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

Порядок настройки перерасчета
  1. 1
    Создайте объект «Перерасчет» и укажите измерение (например, Сотрудник)
  2. 2
    Свяжите перерасчет с регистром расчета в свойствах регистра
  3. 3
    Настройте в плане видов расчета ведущие и базовые виды расчета
  4. 4
    Напишите процедуру, которая читает записи перерасчета и повторно рассчитывает строки
  5. 5
    Проверьте: измените оклад задним числом и убедитесь, что зависимая премия попала в перерасчет

Где регистры расчета применяются на практике

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

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

Когда какой регистр выбрать

Регистр расчета

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

Регистр накопления

Простые обороты и остатки: продажи, склад, деньги. Не поддерживает вытеснение и базу.

Регистр сведений

Хранение значений, а не расчетов: ставки, тарифы, оклады. Результаты расчетов здесь хранить не следует.

Типичные ошибки при работе с регистрами расчета

Самая частая проблема — неправильная настройка связей в плане видов расчета. Если не указать вытесняющие виды, оклад не уменьшится при больничном. Если не указать базовые виды — премия посчитается от нуля. Эти настройки делаются до запуска в эксплуатацию, изменение их на рабочей базе требует пересчета существующих записей.

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

Типичные ошибки
01
Расчет базы запросом по физической таблице вместо виртуальной таблицы базы — суммы не учитывают вытеснение
02
Отсутствие обработки перерасчетов — после исправлений задним числом данные расходятся
03
Заполнение результата напрямую без формулы расчета — при любом изменении записи результат не пересчитается
04
Изменение вытесняющих видов на рабочей базе без пересчета старых записей

Как проверить корректность расчетов

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

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

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

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

Результат оклада при больничном
Норма

Оклад уменьшился пропорционально дням больничного

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

Оклад не изменился — вытеснение не настроено

Премия от оклада
Норма

Сумма равна проценту от фактической базы

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

Премия нулевая или от полного месяца при неполном периоде

Очередь перерасчетов
Норма

Пуста после закрытия месяца

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

Копятся необработанные записи

Частые вопросы о регистрах расчета

Чем регистр расчета отличается от регистра накопления?

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

Можно ли использовать регистр расчета без плана видов расчета?

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

Что такое фактический период действия?

Это периоды, которые остались у записи после применения вытеснения. Одна запись оклада за месяц может разбиться на несколько фактических периодов, если внутри месяца были больничный и отпуск. Данные доступны через виртуальную таблицу «ФактическийПериодДействия».

Почему перерасчет не срабатывает автоматически?

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

Подходит ли регистр расчета для расчета амортизации?

Да, если нужна логика зависимостей и перерасчетов — например, доначисление амортизации при изменении стоимости основного средства задним числом. Для простого линейного расчета без зависимостей достаточно регистра сведений и регламентной операции.

Как удалить ошибочную запись из регистра расчета?

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

Итог

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

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