Разработка и Конфигурация · 10 мин
Регистры расчета в 1С: что это и как они работают
Регистры расчета в 1С: назначение, период действия, виды расчета, вытеснение и перерасчеты. Практическое руководство по работе и настройке механизма.
Регистр расчета — это объект метаданных в платформе 1С:Предприятие, предназначенный для хранения и обработки периодических расчетов: начисления зарплаты, отпускных, больничных, алиментов, коммунальных платежей и других величин, которые зависят от периода времени. В отличие от регистров накопления, где данные просто суммируются по движениям документов, регистр расчета «понимает» логику периодов действия, базовых периодов и взаимного вытеснения видов расчета.
Типичный пример: сотруднику начислен оклад за месяц, но две недели он был на больничном. Регистр расчета позволяет описать, что больничный вытесняет оклад по периоду, а премия рассчитывается от базы, в которую входит только фактически отработанное время. Вся эта логика реализуется штатными механизмами платформы без ручного программирования сложных проверок.
Понимание устройства регистров расчета необходимо и разработчикам, создающим собственные подсистемы учета, и консультантам, внедряющим типовые решения вроде «1С:Зарплата и управление персоналом». Ошибки в настройке приводят к неверным суммам, «потерянным» начислениям и некорректным перерасчетам прошлых периодов.
Из чего состоит механизм расчета в 1С
Регистр расчета не работает изолированно — это часть связки из нескольких объектов конфигурации. Главный партнер регистра — план видов расчета, который задает перечень самих расчетов: «Оклад по дням», «Премия процентом», «Удержание по исполнительному листу». У каждого вида расчета есть формула, базовые и вытесняющие виды расчета.
Движения в регистр расчета создают документы-регистраторы: «Начисление зарплаты», «Больничный лист», «Приказ на отпуск». Каждая запись регистра содержит вид расчета, сотрудника (или другой объект аналитики из измерений), период регистрации, период действия (начало и конец) и результат — рассчитанную сумму.
Дополнительно регистр может ссылаться на график работы сотрудника (обычно это регистр сведений с данными о рабочем времени), от которого считается норма дней или часов. Без графика платформа не сможет автоматически вычислить долю отработанного времени для расчета по окладу.
Период регистрации и период действия: в чем разница
Ключевая особенность регистра расчета — два разных понятия периода. Период регистрации показывает, в каком расчетном месяце запись попала в учет. Период действия — за какой фактический интервал времени произведен расчет. Эти периоды могут не совпадать: больничный за конец января часто вводится и регистрируется в феврале, когда сотрудник принес листок нетрудоспособности.
Периодичность регистра расчета задается при его создании: в пределах периода регистрации, по позиции документа или непериодический вариант. Для зарплатных расчетов почти всегда используется режим «в пределах периода регистрации» с месячной периодичностью — это соответствует логике расчетного месяца.
Фактический период действия — производная величина: это период действия записи с учетом вытеснения. Если оклад действует весь месяц, а больничный вытесняет его на десять дней, фактический период действия оклада распадется на два интервала до и после больничного. Получить фактический период можно виртуальной таблицей «ФактическийПериодДействия».
Вытеснение видов расчета
Вытеснение — механизм, который не позволяет двум несовместимым начислениям действовать одновременно. Сотрудник не может одновременно получать оклад и оплату отпуска за одни и те же дни. В плане видов расчета для каждого вида указывается список вытесняющих: у оклада это отпуск, больничный, командировка, простой и другие отсутствия.
Платформа обрабатывает вытеснение автоматически при расчете: запись с большим приоритетом (вытесняющий вид) «разбивает» период действия вытесняемой записи. Разработчику остается в модуле расчета использовать фактический период действия для определения отработанного времени.
Типичная ошибка — настраивать вытеснение в обе стороны или забывать о новых видах расчета. Если добавили новый вид отсутствия (например, отпуск без сохранения оплаты), его нужно включить в список вытесняющих у всех повременных начислений, иначе сотрудник получит двойную оплату за дни отсутствия.
База для расчета и зависимые начисления
Многие расчеты зависят от результатов других: премия считается процентом от оклада, районный коэффициент — от суммы основных начислений. Для этого в плане видов расчета задаются базовые виды расчета, а в регистре — базовый период. Виртуальная таблица «База» позволяет запросом получить сумму результатов базовых видов расчета за указанный период.
Базовый период может не совпадать с периодом действия. Квартальная премия, начисленная в апреле, имеет период действия «апрель», но базовый период — январь–март. Платформа при построении базы учитывает именно базовый период записи, поэтому важно заполнять его корректно при проведении документа.
Есть тонкость: база строится по периоду регистрации или по периоду действия — это выбирается при обращении к виртуальной таблице. Для премий обычно берут базу по периоду действия, чтобы учесть «чужие» начисления прошлых месяцев, зарегистрированные позже.
При расчете зависимых начислений всегда проверяйте, что базовые записи уже рассчитаны. Если премию посчитать раньше оклада, база будет нулевой. В типовых решениях порядок расчета управляется очередностью видов расчета и механизмом перерасчетов.
Перерасчеты: как 1С отслеживает устаревшие записи
Перерасчет — отдельный объект конфигурации, связанный с регистром расчета. Он автоматически фиксирует записи, которые стали недостоверными после изменения данных. Классический сценарий: зарплата за месяц рассчитана, а потом задним числом ввели больничный. Записи оклада и зависимых начислений попадают в перерасчет, и программа требует их пересчитать.
Перерасчеты бывают двух типов по способу срабатывания: по дополнению (когда появилась новая запись, вытесняющая существующую) и по изменению базы (когда изменился результат базового вида расчета). Настройка выполняется в свойствах вида расчета — там указывается, какие виды при изменении должны вызывать перерасчет текущего.
Игнорировать перерасчеты нельзя: если записи числятся в перерасчете, значит, в учете есть суммы, не соответствующие первичным документам. В типовых конфигурациях перерасчеты выполняются при очередном расчете зарплаты автоматически или через специальную обработку.
Как устроена запись и расчет на практике
Типовой цикл работы выглядит так: документ при проведении создает набор записей регистра, заполняя вид расчета, период действия и исходные данные (например, размер оклада). Затем процедура расчета обходит записи, для каждой получает нужные данные — график работы, фактический период, базу — и вычисляет результат, который записывается в ресурс регистра.
Расчет обычно выполняется программно в модуле объекта или общем модуле. Платформа предоставляет методы набора записей для чтения данных с отбором, а виртуальные таблицы — для получения фактических периодов и базы. В управляемых решениях расчет часто вынесен на сервер и выполняется пакетно для всех сотрудников подразделения.
После расчета результат проверяется: сумма по виду расчета должна сходиться с расчетным листком, записей в перерасчете быть не должно, а фактические периоды не должны пересекаться некорректно. Эти контрольные точки помогают поймать ошибки до формирования отчетности.
Как проверить результат
Список перерасчетов пуст после расчета
Остались записи — есть устаревшие суммы
Вытесненные дни исключены из периода оклада
Оклад действует в дни больничного — вытеснение не настроено
Премия посчитана от суммы фактических начислений
База нулевая или включает лишние виды расчета
Типичные ошибки при работе с регистрами расчета
Большинство проблем связано не с платформой, а с настройкой плана видов расчета и порядком ввода документов. Ниже — ошибки, которые встречаются чаще всего.
Отдельно стоит упомянуть производительность. Регистры расчета в крупных организациях содержат миллионы записей, и запросы к виртуальным таблицам без отборов по подразделению или сотруднику могут выполняться очень долго. Всегда накладывайте условия в параметрах виртуальной таблицы, а не в секции ГДЕ запроса.
Часто задаваемые вопросы
Чем регистр расчета отличается от регистра накопления?
Регистр накопления хранит приходы и расходы ресурсов (товары, деньги) и умеет считать остатки и обороты. Регистр расчета хранит периодические записи с периодом действия, поддерживает вытеснение видов расчета, базовые периоды и перерасчеты. Для зарплаты и повременных начислений нужен именно регистр расчета, для складских остатков — регистр накопления.
Можно ли использовать регистр расчета без плана видов расчета?
Нет. При создании регистра расчета обязательно указывается связанный план видов расчета — именно он определяет, какие виды начислений и удержаний могут храниться в регистре, а также задает логику вытеснения и базовых зависимостей.
Что делать, если записи зависли в перерасчете?
Нужно выполнить повторный расчет записей, входящих в перерасчет. В типовых конфигурациях это происходит при очередном расчете зарплаты или через специальную обработку перерасчетов. Если записи не уходят, проверьте, что документы-источники проведены и данные для расчета (графики, базовые начисления) заполнены.
Как получить фактически отработанное время сотрудника?
Используйте виртуальную таблицу «ФактическийПериодДействия» регистра расчета — она возвращает интервалы с учетом вытеснения. Данные о норме времени берутся из графика работы, связанного с регистром. Отношение фактического времени к норме дает долю для расчета повременных начислений.
Подходит ли регистр расчета для расчета коммунальных платежей или аренды?
Да, механизм универсален: он применим к любым периодическим расчетам с зависимостями и вытеснением — начисление квартплаты, абонентская плата, расчеты с арендодателями. В типовых решениях для ЖКХ используется тот же принцип, что и в зарплатных конфигурациях.
Что важно запомнить
Регистр расчета в 1С — механизм периодических расчетов с периодом действия, вытеснением, базовыми зависимостями и перерасчетами. Корректная работа обеспечивается настройкой плана видов расчета, правильным порядком расчета записей и исправлением данных только через документы.