Как выполнить перерасчет по недопоставке с изменением тарифа. Исправления и перерасчеты заработной платы Формы команд в зависимости от состояния документа

Отправить эту статью на мою почту

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

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

К примеру, по какой-либо причине работник был вынужден выйти из отпуска раньше - второго октября. Чтобы отразить это действие и перерасчитать сумму, открываем изначальный документ и нажимаем на соответствующую гиперссылку “Исправить” внизу документа.

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

Переходим на закладку “Перерасчет прошлого периода”. Видим, что сумма начисленная ранее будет сторнирована.

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

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

Далее рассмотрим второй пример. Сотрудник организации написал заявление на отпуск начинающегося с 1 октября по 14 октября. Аналогично отпуск был исчислен и выплачен через ведомость. Но заработная плата за предыдущий месяц - сентябрь, еще не могла быть рассчитана, так как это текущий месяц. По окончании месяца и расчета заработной платы за сентябрь возникает необходимость пересчитать отпускные. Откроем первоначальный документ отпуска, в котором у нас появится информация, что требуется перезаполнить сведения о среднем заработке. Это означает, что данные изменились.

Аналогичным образом нажимаем на ссылку “Исправить”, в результате чего также будет создан новый документ “Отпуск”, в котором ранее начисленная сумма будет сторнирована, а на закладке “Начислено (подробно)” новое начисление отпуска с учетом новых условий расчета. На разницу начислений будет исчислен новый НДФЛ. После чего проводим документ.

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

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

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

Согласно пункту 1.2 Порядка заполнения расчета по страховым взносам, приведенному в Приложении № 2 к приказу ФНС России от 10.10.2016 № ММВ-7-11/551@, плательщик обязан внести необходимые изменения в Расчет и представить в налоговый орган уточненный отчет, если обнаружились неотраженные или неполные сведения, а также ошибки, приводящие к занижению суммы страховых взносов, подлежащей уплате.

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

  • все ли сведения были отражены;
  • были ли допущены ошибки, и привели ли они к занижению суммы страховых взносов к уплате.

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

Уточненный Расчет по страховым взносам

Обязанность сдать уточненный расчет возникает, если после представления отчета в ИФНС оказалось, что переданы неполные или неверные сведения о сотрудниках, или обнаружились ошибки, приводящие к занижению суммы страховых взносов к уплате.

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

1. Сотрудник не сообщил своевременно об изменениях в своих личных данных, и в ИФНС представлены недостоверные сведения о нем в Разделе 3 Расчета.

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

3. На этапе начальной настройки программы «1С:Зарплата и управление персоналом 8» допустили ошибку, исключив премию из расчетной базы по страховым взносам. Исправление ошибки приводит к доначислению взносов.

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

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

Рассмотрим особенности перерасчета страховых взносов в «1С:Зарплате и управлении персоналом 8» редакции 3 на примерах.

Пример 1

При расчете страховых взносов для подразделения Склад применялся льготный тариф страховых взносов Резиденты технико-внедренческой особой экономической зоны (код тарифа «05»). Этот тариф предусматривает в 2018 году отчисления в ПФР в размере 13 %; в ФСС 2,9 %; в ФФОМС 5,1 %. Именно так и производился расчет взносов для сотрудницы В.С. Плющ. При ежемесячном заработке 10 000 руб. сумма страховых отчислений за месяц составила:

  • в ПФР - 1 300 руб.;
  • в ФФОМС - 510 руб.;
  • в ФСС - 290 руб.

Указанные суммы были отражены в расчете по страховым взносам за I квартал 2018 года.

Когда выяснилось, что подразделение утратило право на применение льготного тарифа страховых взносов, то в соответствии с письмами ФНС России от 25.10.2017 №?ГД-4-11/21611@ и Минфина России от 18.12.2017 №?03-15-06/84443 появилась необходимость представить уточняющий Расчет. Для его формирования надлежит пересчитать страховые взносы с новыми ставками.

В карточке Подразделения следует очистить поле Льготный тариф страх. взносов . Теперь для подразделения применяется тариф, используемый для организации и указанный в карточке Организации на закладке Учетная политика и другие настройки по ссылке Учетная политика в поле Вид тарифа .

В Примере 1 для организации установлен Основной тариф страховых взносов (код тарифа «01»), предусматривающий в 2018 году ставки отчислений: в ПФР в размере 22 %; ФСС 2,9 %; ФФОМС 5,1 %. Очевидно, что в ПФР «недоплачено» 9 % взносов (22 % - 13 %), и изменился код тарифа.

В рассматриваемом Примере 1 для перерасчета взносов следует пересмотреть порядок учета доходов. Для регистрации порядка учета доходов и пересчета страховых взносов прошлого периода предназначен документ (меню Налоги и взносы ). На закладке Сведения о доходах необходимо вручную уточнить все доходы сотрудников. При этом на закладке Исчисленные взносы автоматически будет произведен перерасчет страховых взносов.

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

  • в ПФР - 2 200 руб.;
  • в ФФОМС и в ФСС - сумма не изменилась и составила, соответственно, 510 руб. и 290 руб.

После выполнения перерасчетов страховых взносов за I квартал следует подготовить уточняющие Расчеты. Используя сервис 1С-Отчетность, необходимо создать новые отчеты за исправляемые периоды и на Титульном листе указать Номер корректировки (рис. 2). Уточнения коснулись всех сотрудников подразделения, так как у всех изменился код тарифа. Поэтому Разделы 3 в уточненном Расчете формируются по всем сотрудникам подразделения. В других случаях, когда формирование уточненного Расчета вызвано изменениями в данных или начислениях отдельных сотрудников, в Разделе 3 отображаются данные только по этим сотрудникам. Остальные разделы уточняющего Расчета в любом случае заполняются полностью новыми данными.

Рис. 2. Титульный лист уточняющего расчета по страховым взносам за I квартал 2018 года

Право представления уточненного Расчета по страховым взносам

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

1. Сотруднику начислили зарплату за полный отработанный месяц. Расчет по страховым взносам сдали в ИФНС, но впоследствии выяснилось, что сотрудник был на больничном или в отпуске за свой счет. Начисление, не входящее в базу для расчета взносов, заменило начисление, облагавшееся страховыми взносами, что привело к переплате взносов.

2. Любые перерасчеты начислений сотрудника, приводящие к перерасчету страховых взносов в сторону их уменьшения.

Пример 2

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

  • оплата по окладу - 7 500 руб.;
  • оплата командировки (по среднему заработку) за июнь - 2 500 руб.

Исчислены страховые взносы по основному тарифу. В июне взносы с зарплаты С.С. Горбункова составили:

  • в ПФР - 2 200 руб.;
  • в ФФОМС - 510 руб.;
  • в ФСС - 290 руб.

Эти взносы были уплачены и включены в Расчет за полугодие 2018 года. Представленный в бухгалтерию больничный лист на период 25.06.2018-30.06.2018 не создает причины для формирования уточненного Расчета. Зарегистрированный в программе документ Больничный лист сторнирует начисленную ранее сумму командировочных (рис. 3).

Рис. 3. Перерасчет командировочных в документе «Больничный лист»

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

  • в ПФР - 550 руб.;
  • в ФФОМС - 127,50 руб.;
  • в ФСС - 72,50 руб.

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

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

Однако до окончания месяца не следует делать поспешных уточнений Расчета. Ведь в течение месяца регистрируются различные документы. В какой-то момент документ Больничный лист действительно может отсторнировать доходы прошлого месяца, а по результатам расчета зарплаты за месяц иной документ, например, Начисление зарплаты и взносов , произведет доначисления, превышающие сторно-доходы прошлого периода. В результате на сумму сторно командировки уменьшатся доходы текущего месяца, никаких минусов за прошлый месяц не останется, и корректирующий отчет изменений не покажет.

Необходимость представления уточненного Расчета по страховым взносам

В ряде случаев, несмотря на отсутствие обязанности по представлению уточненного Расчета, у страхователя нет иной возможности сообщить о своей переплате взносов, кроме подачи уточненки:

1. У сотрудника в результате перерасчета взносов в текущем периоде образовывается отрицательная сумма. Отчет с отрицательной суммой не может быть сдан в ИФНС. Следовательно, выход один - сформировать уточненный отчет за прошлый период.

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

Пример 3

В этом случае, в отличие от предыдущего Примера 2, отрицательная сумма страховых взносов, образовавшаяся при сторнировании командировки, не будет компенсирована начислениями. Несмотря на то, что за счет начислений других сотрудников общая сумма страховых взносов будет положительной, в Разделе 3 у сотрудника останутся отрицательные значения, а это недопустимо. И поэтому бухгалтеру придется создать документ Перерасчеты страховых взносов , пересчитать взносы за июнь, сформировать и представить в ИФНС уточненный Расчет.

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

От редакции. В статье читайте о реализованном в «1С:Предприятии 8» механизме проверки контрольных соотношений расчета по страховым взносам, который учитывает данные корректировочных Расчетов.

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

Рассмотрим корректировку начислений с данным видом операции в программе 1С: Учет в управляющих компаниях ЖКХ, ТСЖ и ЖСК , ред. 3.0 на примере услуги «Отопление».

1. Предположим, что в январе было произведено начисление услуги «Отопление» на сумму 900 рублей по л/с №2011067001:

Примечание: в примере услуга «Отопление» рассчитывается по общей площади. Площадь помещения 50 м2, тариф 18 рублей.

2. В феврале становится известно, что в январе расчет должен был произойти по тарифу 13 рублей. Для проведения перерасчета

создаем документ «Корректировка начислений» с видом операции «Недопоставка».

Заполняем документ:

  • указываем дату документа и период перерасчета - январь 2015;
  • указываем количество дней, которое нужно перерассчитать, в примере - 31 день;
  • указываем объект перерасчета, в данном случае л/с №2011067001;
  • указываем услугу, по которой будет производиться перерасчет, в данном случае «Отопление»;
  • устанавливаем флажок «Частичный перерасчет», выбираем вариант перерасчета «с понижением тарифа на» и вводим число, на которое необходимо увеличить или уменьшить тариф, в данном случае 18 – 13 = 5;
  • заполняем табличную часть с помощью кнопки «Заполнить»;
  • нажимаем кнопку «Рассчитать» для выполнения перерасчета:

Начисление января было выполнено по тарифу 18 руб.: 18*50=900 руб.

Перерасчет выполнен по тарифу 13 руб.: (18-5)*50 = 650 руб. Отсюда сумма перерасчета равна 250 руб.

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

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

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

Честно говоря, я долго пытался придумать, для чего еще нужны расчеты, но не придумал, поэтому будем рассматривать задачу расчета зарплаты.

Что такое расчеты

В принципе, конечный продукт расчета зарплаты - это набор записей регистра расчета вида:

Сотрудник

Период

Вид расчета

Результат

Данные

Комментарий

Измерение

Служебный

Служебный

Реквизит

Значение в колонке «Данные» отражают базовый оклад работника (согласно трудового договора), но эта сумма может быть увеличена премиями, уменьшена штрафами и невыходами и т.п., поэтому реальная сумма к выплате заносится после выполнения расчета в колонку «Результат». В этом и заключается расчет. Сумма по колонке «Ресурс» для данного сотрудника - причитающаяся ему зарплата.

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

Каждая запись регистра расчетов относится к определенному виду расчета и периоду времени.

Виды расчетов

Каждая запись видов расчета имеет служебный реквизит - вид расчетов.

Вид расчетов можно представлять себе как элемент особого справочника типа «План видов расчетов» - он также имеет реквизиты, табличные части, предопределенные и заведенные пользователем элементы. В системе может быть несколько таких «справочников».

Для примера заведем план видов расчета Основной и в нем предопределенные виды расчета оклад , премия , невыход , командировка .

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

Вид расчета

Описание

Пример

По базовому периоду

Результат расчета зависимого периода зависит от результата базового периода. Если результат базового периода изменится, то результат зависимого периода нужно пересчитать.

Премия зависит по базовому периоду от оклада.

Вытеснение по периоду

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

Невыход влияет на фактический период действия оклада.

Ведущие расчеты

Расчет зависит от ведущего расчета, но не прямо а косвенно, т.е. расчет А зависит от базового расчета Б, а расчет Б зависит от базового расчета В, следовательно А косвенно зависит от В, т.е. А зависит от ведущего расчета В. В самом деле, при изменении расчета В может измениться Б и следовательно может измениться А. Система автоматически не отслеживает такие сложные зависимости, поэтому нужно указывать какие расчеты являются ведущими.

Премия зависит по базе от оклада, но также косвенно зависит и от невыхода.

В силу подобного влияния, период действия записи регистра расчетов делится на четыре периода:

Период

Описание

Период регистрации

В каком периоде зарегистрировано событие, т.е. обычно когда введен документ.

Период действия

В каком периоде действует событие, т.е. к какому периоду относится событие.

Базовый период

Имеет смысл только для периодов, имеющих базовый период - описывает интервал базового периода.

Фактический период действия

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

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

Графики времени

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

График времени - это простой регистр сведений, одно измерение которого хранит дату, другое связывается с измерением регистром расчета, а один из ресурсов используется для учета времени.

Измерение, которое связывается с регистром расчета обычно носит смысл «вид графика».

Дата

Вид графика

Значение

11.01.05 пт

Пятидневка

11.01.05 пт

Шестидневка

12.01.05 сб

Пятидневка

12.01.05 сб

Шестидневка

Почему используется измерение дата, а не периодический регистр сведений? Все очень просто - если 11 января в пятницу по пятидневке у нас 8 рабочих часов, то это еще не значит, что на следующий день у нас будет опять же 8 рабочих часов. А ведь если бы мы использовали периодический регистр, значение на следующий день бралось бы из предыдущего дня при отсутствии записей.

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

Перерасчет

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

Для этого и служат перерасчеты.

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

По сути перерасчеты - это список записей регистра расчета, которые нужно перерасчитать .

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

Если мы заведем измерение «Сотрудник» в перерасчете, то при изменении базового расчета по сотруднику в перерасчеты добавятся зависимые записи только по этому сотруднику.

Практическое задание

Достаточно теории. Попробуем изучить детали на практике. За основу возьмем каркасную конфигурацию.

Постановка задачи:

Пусть премия задается фиксированным процентом к окладу (за вычетом невыходов и командировочных).

Командировочные пусть оплачиваются в двойном окладе + фиксированная сумма выплат за каждый день командировки.

Пусть за невыходы с сотрудника взымается штраф в размере половины оклада за период невыхода.

Ход выполнения:

Начальная подготовка

Создадим новый план видов расчета «Основной».

Определим виды расчета и зависимости между ними:

Базовые

Вытесняющие

Ведущие

Оклад

Невыход, Командировка

Премия

Невыход, Командировка

Оклад, Невыход, Командировка

Командировка

Невыход

Занесем эти виды расчета в план видов расчета «Основной» и в свойствахвидов расчета поставим зависимости согласно таблице.

В регистре расчета зарплаты сделаем измерение «Сотрудник» типа «ФизическиеЛица » - чтобы в регистре был разрез аналитики по сотрудникам.

В конфигурации уже имеется документ «Начисление зарплаты».

В нем две даты в шапке - «дата» и «период регистрации», а также по две даты «дата начала» и «датаконца » в каждой строчке.

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

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

Модуль документа будет выглядеть примерно так:

Для К аждого ТекСтрокаСписок Из Список Цикл

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

Движение = Движения.Р асчеты.Добавить ();

Движение.С торно = Ложь;

Движение.В идРасчета = ТекСтрокаСписок.ВидРасчета ;

Движение.П ериодДействияНачало = НачалоДня (ТекСтрокаСписок.ДатаНачала );

Движение.П ериодДействияКонец = КонецДня ();

Движение.П ериодРегистрации = ПериодРегистрации ;

Движение.Б азовыйПериодНачало = НачалоДня (ТекСтрокаСписок.ДатаНачала );

Движение.Б азовыйПериодКонец = КонецДня (ТекСтрокаСписок.ДатаОкончания );

Движение.С отрудник = ТекСтрокаСписок.Сотрудник ;

Движение.Г рафикРаботы = ТекСтрокаСписок.График ;

Движение.Р езультат = 0;

Движение.Д анные = ТекСтрокаСписок.Размер ;

КонецЦикла ;

Реквизит Сторно нужен чтобы сторнировать записи (аналог минуса).

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

Все документы датировать будем 20.01.2003, период регистрации будем ставить 02.01.2003 (специально указываю не начальные и конечные данные, здесь это неважно, все равно при записи в ПериодРегистрации преобразуется в начало периода 01.01.2003). Январь 2003 года используем, потому что за этот период заполнены графики работ.

Заведем перерасчет «Перерасчет», добавим в него измерение «Сотрудник», связанное с измерением «Сотрудник».

Играем с Перерасчетами.

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

ВЫБРАТЬ

РасчетыПерерасчет.О бъектПерерасчета ,

РасчетыПерерасчет.В идРасчета ,

РасчетыПерерасчет.С отрудник

ИЗ

РегистрРасчета.Р асчеты.Перерасчет КАК РасчетыПерерасчет

Сформируем три документа - первым начислим оклад сотрудникам А и Б. Сотрудник А работает с 1 по 31 января, Б работает с 1 по 20 января. Вторым начислим премию сотруднику Б за период с 1 по 31 января, третьим назначим невыход сотруднику А с 20 по 25 января.

Играем с Фактическим периодом действия.

Создадим новый запрос - на этот раз в него добавим данные таблицы РегистрыРасчета.Р асчеты.ФактическийПериодДействия .

Сформируем запрос и увидим, что сотруднику А период действия оклада разбит на два периода - с 1 по 19 и с 26 по 31 января. Надеюсь вам понятно, что период был разбит на два, т.к. невыход вытеснил оклад.

Думаю, механизмы работы регистра расчета проясняются на глазах.

Изучаем графики.

Теперь попробуем начислить зарплату по окладу сотрудника.

Создадим новый запрос по регистру расчета используя виртуальную таблицу РегистрыРасчета.Р асчеты.ДанныеГрафика . У этой виртуальной таблицы можно задать параметр - условие отбора записей, например Сотрудник=&ВыбСотрудник и ВидРасчета=&ВидРасчета и График=&ВидГрафика .

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

Колонка результата

Значение

ЗначениеПериодДействия

На какой период действия в часах была запись в регистре.

ЗначениеФактическийПериодДействия

Сколько сотрудник фактически проработал в часах

ЗначениеБазовыйПериод

Для оклада смысла не имеет, для премии - количество рабочих часов в базовом периоде.

ЗначениеПериодРегистрации

Сколько рабочих часов в периоде регистрации (месяц январь)

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

Структура

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

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

записи, хранимые в базе данных, будут выглядеть следующим образом:

Связь с планом видов расчета

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

Периодичность

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

Подчинение регистратору

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

Связь с графиком времени

Для регистра расчета может быть указана связь с графиком времени. График времени представляет собой регистр сведений, в котором содержится временная схема исходных данных, участвующих в расчетах. Измерениями этого графика могут быть, например, график работы и дата, а ресурсом – количество рабочих часов в этой дате. Тогда можно будет связать запись регистра расчета с каким-либо конкретным графиком работы и в дальнейшем, средствами встроенного языка получать информацию о количестве рабочих часов, необходимую для выполнения расчетов.

Например, график времени, имеющий следующую структуру:

Перерасчеты

Регистр расчета может включать в себя специальные объекты - Перерасчеты :

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

Уникальность записей

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

Механизмы, реализуемые регистром расчета

Вытеснение по периоду действия

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

В общем случае, запись регистра расчета содержит две даты, определяющие период, на который распространяется действие данной записи. Этот период называется периодом действия записи. Однако, если вид расчета, к которому относится данная запись, может быть вытеснен другим видом расчета, то период действия данной записи является лишь "запрашиваемым" периодом, то есть "мы хотим, чтобы запись действовала в этом периоде". Реально, фактический период действия данной записи можно будет определить лишь после анализа всех записей видов расчета, которые вытесняют данный вид расчета по периоду действия. Фактический период действия будет представлять собой набор периодов, являющихся подмножеством исходного периода действия данной записи. Если не будет найдено ни одной записи, вытесняющей данную по периоду действия, то фактический период действия данной записи будет равен ее периоду действия. Другим крайним случаем вытеснения по периоду действия является полное вытеснение данной записи другими записями. В этом случае фактический период действия записи будет отсутствовать.

Каждая запись регистра расчета содержит вид расчета, к которому она относится. Чтобы определить, какие записи должны вытеснять данную запись по периоду действия, регистр расчета использует связь с планом видов расчета, в котором описано взаимное влияние видов расчета друг на друга. Использование этой связи позволяет регистру расчета определять фактический период действия каждой записи.

Зависимость по базовому периоду

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

База представляет собой числовое значение, которое должно быть использовано для расчета результата данной записи. База рассчитывается путем анализа результатов расчета других записей, от которых данная запись зависит по базовому периоду. Таким образом, в общем случае, запись регистра расчета содержит две даты, определяющие период, в котором нужно анализировать записи видов расчета, от которых данный вид расчета зависит по базе - базовый период. Использование связи с планом видов расчета позволяет регистру расчета определять виды расчета, от которых данный вид расчета зависит по базовому периоду.

Регистр расчета поддерживает два вида зависимости по базовому периоду:

  • зависимость по периоду действия;
  • зависимость по периоду регистрации.

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

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

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

Формирование записей перерасчета

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

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

Функциональные возможности регистра расчета

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

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