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

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

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

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

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

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

Рассмотрим пример

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

В случае если механизм перерасчетов будет опираться на список базовых видов расчета, очевидно, что при изменениях по виду расчета А выяснится необходимость перерасчета только для вида расчета Б. И только после внесения изменений (перерасчета) по виду расчета Б, выяснится необходимость перерасчета для В. Во избежание подобного поведения механизма перерасчета введено понятие "ведущих" видов расчета, список которых, как правило, больше либо шире, чем список "базовых".  Для нашего случая такой список для вида расчета В, будет состоять из двух строк - А и Б (см. рисунок).

Теперь рассмотрим, почему подобные цепочки зависимостей не приводят к необходимости расширять список "ведущих" видов расчета за счет "вытесняющих". Дело в том, что система не допускает настройки списка вытесняющих видов расчета подобной той, которую мы рассмотрели для базовых видов расчета. Если вид расчета А вытесняет вид расчета Б, а тот в свою очередь вытесняет вид расчета В, то вид расчета В должен вытесняться и видом расчета А (см. раздел "Особенности поведения системы при записи объекта Вид расчета"). Эта особенность приводит к тому, что для последнего в подобной цепочке зависимостей вида расчета всегда будет определен "полный" список вытесняющих видов расчета.