В системе 1С:Предприятие регистры расчета — это один из ключевых объектов конфигурации, без которого невозможно организовать корректный учет зарплаты, налогов, страховых взносов и других периодических начислений. Они позволяют хранить историю изменений расчетных показателей, автоматизировать перерасчеты при ретроактивных изменениях и обеспечивать прозрачность формирования итоговых сумм. Если вы когда-нибудь сталкивались с вопросом, почему в 1С:Зарплата и Управление Персоналом (ЗУП) или 1С:ERP некоторые начисления "не сходятся" с прошлыми периодами — проблема, скорее всего, кроется именно в настройках регистров расчета.

Эта статья поможет разобраться, что такое регистр расчета, как он устроен внутри, в каких случаях его необходимо использовать, а когда можно обойтись более простыми механизмами (например, регистрами накопления). Мы детально рассмотрим структуру регистра, типичные ошибки при работе с ним, а также приведём практические примеры настройки для расчета зарплаты, больничных и отпускных. Особое внимание уделим вопросам производительности и оптимизации — ведь неправильное использование регистров расчета может замедлить работу базы в разы.

Что такое регистр расчета и зачем он нужен

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

  • 📅 Хранить данные по периодам (месяц, квартал, год) с возможностью ретроактивного перерасчета.
  • 🔄 Автоматически корректировать прошлые начисления при изменении базовых параметров (например, оклада или тарифной ставки).
  • 📊 Формировать детализированные отчеты по каждому виду расчета (зарплата, премии, удержания).
  • ⚖️ Обеспечивать баланс между начислениями и удержаниями (например, НДФЛ или алименты).

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

С технической точки зрения регистр расчета представляет собой многомерную таблицу, где:

  • Измерения — это "координаты" записи (сотрудник, вид расчета, подразделение).
  • Ресурсы — собственно расчетные показатели (сумма начисления, количество дней, ставка).
  • Реквизиты — дополнительные атрибуты (например, причина перерасчета или комментарий).
📊 Как часто вы работаете с регистрами расчета в 1С?
Ежедневно
Несколько раз в неделю
Редко, только при настройке
Никогда не использовал

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

Новички в часто путают регистры расчета и накопления, ведь оба хранят данные и поддерживают обороты. Однако их назначение принципиально разное:

Критерий Регистр расчета Регистр накопления
Назначение Расчет периодических показателей (зарплата, налоги, взносы) Учет остатков и оборотов (товары на складе, денежные средства)
Поддержка ретроактивности Есть (автоматический перерасчет прошлых периодов) Нет (данные фиксируются "как есть")
Привязка к периодам Обязательна (месяц, день, квартал) Не обязательна (можно хранить данные без привязки ко времени)
Типичные объекты учета Сотрудники, виды начислений, удержания Номенклатура, склады, контрагенты
Производительность Ниже (из-за сложных механизмов перерасчета) Выше (простая структура данных)

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

⚠️ Внимание: В конфигурациях 1С:ЗУП и 1С:ERP уже предусмотрены стандартные регистры расчета для зарплаты (например, НачисленияСотрудниковОрганизаций или УдержанияСотрудниковОрганизаций). Изменять их структуру без крайней необходимости не рекомендуется — это может нарушить работу типовых механизмов.

Структура регистра расчета: измерения, ресурсы, реквизиты

Чтобы правильно настроить регистр расчета, нужно понимать его внутреннюю структуру. Она состоит из трех основных компонентов:

1. Измерения

Это "координаты", по которым группируются данные. Например, для регистра начислений зарплаты типичными измерениями будут:

  • 👤 Сотрудник (кто получает начисление)
  • 🏢 Организация (в какой компании работает сотрудник)
  • 💰 Вид расчета (оклад, премия, больничный)
  • 📅 Период регистрации (месяц, за который производится расчет)

2. Ресурсы

Это собственно расчетные показатели, которые хранятся в регистре. Для зарплаты это могут быть:

  • 💵 Сумма (итоговая сумма начисления или удержания)
  • 📆 Количество дней (например, дней отпуска или больничного)
  • % Процент (например, процент премии или удержания)

3. Реквизиты

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

  • 📝 Основание (приказ, соглашение)
  • 🔄 Причина перерасчета (изменение оклада, ошибка в данных)
  • 📌 Комментарий (пояснения бухгалтера)

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


Измерения:

- Сотрудник (СправочникСсылка.Сотрудники)

- Организация (СправочникСсылка.Организации)

- ПериодРегистрации (Дата)

Ресурсы:

- Сумма (Число, 15, 2)

- КоличествоДней (Число, 5, 0)

Реквизиты:

- ДокументОснование (ДокументСсылка.ПриказНаОтпуск)

- ДатаНачала (Дата)

- ДатаОкончания (Дата)

⚠️ Внимание: Избыточное количество измерений или ресурсов в регистре расчета может значительно замедлить работу системы, особенно при большом количестве сотрудников. Оптимальное число измерений — 3-5, ресурсов — 2-4.
💡

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

Когда использовать регистр расчета, а когда — другие объекты

Несмотря на мощь регистров расчета, они подходят не для всех задач. Вот четкие критерии, когда их применение оправдано:

✅ Используйте регистр расчета, если:

  • 🔹 Нужно хранить историю изменений (например, оклады сотрудников за несколько лет).
  • 🔹 Требуется автоматический перерасчет при изменении базовых данных (например, перерасчет отпускных при повышении оклада).
  • 🔹 Расчеты привязаны к конкретным периодам (месяц, квартал, год).
  • 🔹 Нужно учитывать взаимосвязь между начислениями и удержаниями (например, НДФЛ от зарплаты).

❌ Не используйте регистр расчета, если:

  • 🔸 Данные не изменяются ретроактивно (например, разовая выплата по акту).
  • 🔸 Нужно хранить простые остатки (товары на складе, денежные средства).
  • 🔸 Расчеты не привязаны к периодам (например, инвентаризация).
  • 🔸 Объем данных очень большой (более 1 млн записей), а перерасчеты не нужны.

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

☑️ Проверка необходимости регистра расчета

Выполнено: 0 / 4

Примеры использования регистров расчета в 1С:ЗУП

Рассмотрим три типичных сценария, где регистры расчета незаменимы:

1. Расчет зарплаты

В типовой конфигурации 1С:Зарплата и Управление Персоналом для этого используется регистр НачисленияСотрудниковОрганизаций. Он хранит:

  • 👤 Сотрудника и организацию.
  • 💰 Вид начисления (оклад, премия, северные надбавки).
  • 📅 Период (месяц начисления).
  • 💵 Ресурсы: сумма начисления, количество дней/часов.

При изменении оклада с 1 июля система автоматически пересчитает зарплату за январь-июнь, если это предусмотрено настройками вида расчета.

2. Больничные листы

Для больничных используется регистр БольничныеЛисты (или аналогичный). Особенности:

  • 📅 Период регистрации — даты нетрудоспособности.
  • 💊 Ресурсы: сумма пособия, количество дней, средний заработок.
  • 🔄 При изменении среднего заработка (например, из-за корректировки зарплаты за прошлый год) происходит автоматический перерасчет больничного.

3. Отпускные

Регистр ОтпускаСотрудников хранит:

  • 📅 Даты начала и окончания отпуска.
  • 💵 Сумму отпускных и средний дневной заработок.
  • 🔄 При изменении оклада или премий за расчетный период отпускные пересчитываются автоматически.

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

💡

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

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

Даже опытные пользователи иногда допускают ошибки, которые ведут к некорректным расчетам или замедлению работы системы. Вот наиболее распространенные из них:

  1. Избыточные измерения.

    Добавление лишних измерений (например, "Подразделение", если оно дублирует данные из справочника сотрудников) увеличивает объем данных и замедляет перерасчеты. Оптимальное число измерений — не более 5.

  2. Неправильная настройка периодов.

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

  3. Отсутствие индексов.

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

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

    Прямое изменение данных в регистре через "Все функции" или SQL может нарушить целостность расчетов. Для корректировок используйте документы или обработки.

  5. Игнорирование механизма перерасчета.

    Если в виде расчета не указано, что он зависит от других начислений (например, премия от оклада), при изменении оклада премия не пересчитается автоматически.

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

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

  • 📈 Объем данных увеличился на 30%.
  • ⏳ Перерасчет зарплаты за год стал занимать 10 минут вместо 2.
  • 🔍 Отчеты стали сложнее читать из-за лишней детализации.
Как проверить, есть ли лишние измерения в регистре?

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

1. Нужна ли эта аналитика для отчетов?

2. Используется ли это измерение в расчетных формулах?

3. Можно ли получить эти данные из других полей?

Если на все вопросы ответ "нет" — измерение можно удалить.

Как оптимизировать работу регистров расчета

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

1. Минимизируйте количество измерений

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

2. Используйте правильные типы данных

Для ресурсов выбирайте минимально необходимые типы:

  • 💰 Для сумм — Число(15, 2) (а не Число(20, 5)).
  • 📅 Для дат — Дата (а не строка).
  • 🔢 Для количеств — Число(5, 0) (если дней не может быть больше 99999).

3. Настройте индексы

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


Сотрудник + ПериодРегистрации + ВидРасчета

4. Ограничивайте периоды перерасчета

Если в виде расчета указано, что он зависит от других начислений "за все время", то при изменении оклада система пересчитает данные за все прошлые годы. Это может занять часы! Лучше ограничить зависимость, например, "за последний год".

5. Используйте механизм "Периодичность регистрации"

Если данные меняются редко (например, оклады), установите периодичность "Месяц". Если же изменения частые (например, ежедневные начисления), выберите "День". Неправильный выбор ведет к избыточным записям.

6. Архивируйте старые данные

Для крупных баз (более 1000 сотрудников) имеет смысл архивировать данные старше 3-5 лет в отдельную таблицу. Это уменьшит объем активных данных и ускорит расчеты.

Пример оптимизации: в базе с 500 сотрудниками и историей за 10 лет регистр начислений содержал 1,2 млн записей. После архивации данных старше 5 лет и удаления лишних измерений:

  • 📉 Объем регистра уменьшился на 60%.
  • ⚡ Перерасчет зарплаты ускорился с 15 до 3 минут.
  • 📊 Отчеты стали формироваться в 2 раза быстрее.
💡

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

FAQ: Частые вопросы по регистрам расчета в 1С

❓ Как посмотреть данные в регистре расчета?

Откройте меню Все функции → Регистры расчета, выберите нужный регистр (например, НачисленияСотрудниковОрганизаций) и нажмите "Открыть список". Здесь можно просмотреть все записи, отфильтровать их по периоду или сотруднику, а также экспортировать в Excel.

Внимание: прямое редактирование записей может нарушить целостность данных. Для изменений используйте документы (например, "Корректировка начислений").

❓ Почему после изменения оклада не пересчитались прошлые начисления?

Скорее всего, в настройках вида расчета (оклад) не указано, что он влияет на другие начисления (например, премию или отпускные). Откройте вид расчета в конфигураторе, перейдите на закладку "Зависимости" и проверьте, какие начисления должны пересчитываться при его изменении.

Также убедитесь, что в регистре расчета для оклада установлен флаг "Ведет историю" — иначе изменения не будут отслеживаться.

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

Да, но делать это нужно осторожно. Лучше использовать документы корректировки (например, "Корректировка записей регистров"). Прямое удаление через "Все функции" может привести к:

  • 🔴 Нарушению баланса между начислениями и удержаниями.
  • 🔴 Ошибкам в отчетах (например, в 6-НДФЛ или РСВ).
  • 🔴 Проблемам с перерасчетом связанных начислений.

Если ошибка критична, сделайте резервную копию базы перед удалением.

❓ Как ускорить перерасчет зарплаты в большом регистре?

Вот несколько способов:

  1. Ограничьте период перерасчета (например, только за последний год).
  2. Отключите ненужные виды расчета в настройках документа "Начисление зарплаты".
  3. Используйте фоновые задания для длительных операций.
  4. Архивируйте старые данные (старше 3-5 лет).
  5. Проверьте наличие индексов по ключевым полям (сотрудник + период).

Если перерасчет все равно занимает слишком много времени, рассмотрите возможность разбиения базы по организациям или периодам.

❓ В чем разница между регистром расчета и регистром бухгалтерии?

Эти объекты решают разные задачи:

Критерий Регистр расчета Регистр бухгалтерии
Назначение Расчет зарплаты, налогов, страховых взносов Ведение бухгалтерского учета (проводки, остатки)
Периодичность Обязательна (месяц, день) Не обязательна (можно без привязки к датам)
Перерасчет Автоматический (при изменении базовых данных) Ручной (через документы или операции)
Примеры использования Начисление зарплаты, больничные, отпускные Учет основных средств, расчеты с поставщиками

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