Перерасчеты в 1С 8.3

Курс

Перерасчет

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

Например, был начислен оклад, который составил 20 000. Затем была рассчитана премия в размере 10% от оклада, которая составила 2 000. Если сейчас изменить сумму оклада, то запись с премией станет не актуальной, ее нужно будет пересчитать. Для автоматического отслеживания таких ситуаций и предназначен перерасчет.

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

Перерасчет

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

Объект перерасчетаВид расчета

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

Для каждого измерения перерасчета будет добавлена еще одна колонка:

Объект перерасчетаВид расчетаСотрудник

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

В свойствах измерения нужно указать связь текущего и ведущих регистров:

Связь измерений перерасчета

В свойстве Измерение регистра нужно указать измерение текущего регистра расчета, на которое будет установлен отбор при создании записей перерасчета.

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

Если после расчета премии Иванова изменить оклад Иванова, то в таблице перерасчета появится следующая запись:

Объект перерасчетаВид расчетаСотрудник
Начисление ЗП №3ПремияИванов

То есть нужно пересчитать премию Иванова из документа №3.

Посмотреть таблицу перерасчета можно с помощью запроса:

Записи перерасчета

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

Условия возникновения перерасчета

Автоматическое формирование записей перерасчета выполняется при записи в регистр расчета.

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

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

  1. Должна быть настроена связь видов расчета через табличную часть Ведущие виды расчетов:
Ведущие виды расчетов
  1. Измерения регистра расчета должны быть указаны в свойстве Данные ведущих регистров измерения перерасчета:
Данные ведущих регистров
  1. Ведущая запись должна попадать в базовый период зависимой. Если был изменен оклад за июль 2021, то пересчитать нужно только ту премию, у которой базовый период включает июль 2021.

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

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

Удаление записей перерасчета

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

Программная работа с перерасчетом

Добавление записей перерасчета

Для добавления записей перерасчета нужно создать набор записей, установить отбор по объекту перерасчета, добавить новые записи и записать в базу данных:

Удаление записей перерасчета

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

Отбор в перерасчете можно установить только по объекту перерасчета, нельзя сразу установить отбор по виду расчета и измерениям и получить только одну запись.


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Понравилась статья? Поделиться с друзьями:
Комментарии: 1
  1. Яшка

    я не видел ни где такая подробная информатия, спасибо вам. тоже мне понадобится для экзамена спец по платформе

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok