«Правила перерасчета» являются вспомогательными объектами метаданных компоненты «Расчет». Они предназначены для автоматического отслеживания актуальности результатов проведенных расчетов при вводе новых записей журнала расчетов.
При создании правила перерасчета в конфигураторе определяются виды расчетов, при редактировании которых правило перерасчета «срабатывает», и виды расчетов, которые должны быть перерасчитаны при срабатывании данного правила.
Список видов расчета, на основании которых срабатывает правило перерасчета условно называется «ведущие виды расчета». Список видов расчета, которые должны быть перерасчитаны при срабатывании данного правила условно называется «зависимые виды расчета».
Для организации правильного перерасчета доплат следует в качестве ведущих видов расчета указать те, на основании которых считаются доплаты (например: оклад, тариф, сдельная оплата), а в качестве зависимых видов расчета следует указать собственно перерасчитываемые доплаты.
После ввода в систему такого правила перерасчетов журнал расчетов будет вести себя описанным ниже образом. При этом сначала рассмотрим случай для взаимосвязи видов расчета в одном периоде.
Итак, если в журнале расчетов появится новая (в результате проведения документа), исчезнет (при отмене проведения) или будет исправлена существующая запись с одним из «ведущих» видов расчета (в нашем примере оклад, тариф, сдельная оплата), то будет снят признак «Рассчитана» со всех записей, соответствующих доплатам, если найдутся таковые с тем же периодом действия, что и введенная, удаленная или исправленная запись.
Если при этом вводится запись с периодом действия не в текущем расчетном периоде, а в одном из прошлых (например, расчет оклада задним числом за прошлый месяц), то система введет записи-перерасчеты для всех доплат соответствующего прошлого периода.
Правило перерасчета может быть двух типов: перерасчет «по текущему периоду» или «по будущим периодам».
В первом случае перерасчитываются заданные виды расчетов с тем же периодом действия, что и новая введенная запись. Во втором — перерасчитываются записи одного или нескольких будущих расчетных периодов.
Средства языка предоставляют возможность непосредственного доступа к атрибутам и методам правил перерасчета, объявленных в конфигураторе, в любом программном модуле (все объявленные в конфигураторе правила перерасчета принадлежат глобальному контексту конфигурации). Во всех текстах программных модулей для доступа к атрибутам или вызова методов правил перерасчета можно записать соответствующий метод или атрибут через точку после полного имени правила перерасчета.
Полное имя правила перерасчета записывается следующим образом:
ПравилоПерерасчета.<ХХХХХ>,
где <ХХХХХ> — идентификатор Правила Перерасчета, объявленный в конфигураторе.
Англоязычный синоним ключевого слова ПравилоПерерасчета — RecalculationRule.
Пример:
КолПериодов = ПравилоПерерасчета.Главное.КоличествоПериодов;
ВР = ВидРасчета.ПоОкладу;
ЗависитОтОклада = ПравилоПерерасчета.ПересчДоплат.ИмеетВедущий(ВР);
Тип правила перерасчета.
Синтаксис:
Тип
Англоязычный синоним:
Type
Описание:
Атрибут Тип позволяет прочитать/установить значение типа правила перерасчета. Данный атрибут может принимать следующие значения:
· 0 — зависимые виды расчетов должны быть перерасчитаны в том же периоде, что и вводимая запись журнала расчетов;
· 1 — зависимые виды расчетов должны быть перерасчитаны в нескольких периодах, следующих за периодом действия вводимой записи журнала расчетов (количество периодов задано атрибутом КоличествоПериодов).
Пример:
Тип = ПравилоПерерасчета.Главное.Тип;
Количество перерасчитываемых периодов для правила перерасчета.
Синтаксис:
КоличествоПериодов
Англоязычный синоним:
NumberOfPeriods
Описание:
Атрибут КоличествоПериодов позволяет прочитать/установить количество периодов перерасчета.
Пример:
КолПер = ПравилоПерерасчета.Главное.КоличествоПериодов;
Возвращает количество «ведущих» видов расчета.
Синтаксис:
КоличествоВедущих()
Англоязычный синоним:
NumberOfLeadings
Возвращаемое значение:
Количество «ведущих» видов расчета.
Описание:
Метод КоличествоВедущих возвращает количество «ведущих» видов расчета (при вводе которых в журнал расчетов необходимо произвести перерасчеты согласно данного правила).
Пример:
// выведем все виды расчета от которых зависят доплаты
Для Сч = 1 По ПравилоПерерасчета.Доплаты.КоличествоВедущих() Цикл
Сообщить(ПравилоПерерасчета.Доплаты.ПолучитьВедущий(Сч));
КонецЦикла;
Установить принадлежность вида расчета к ведущим для правила перерасчета.
Синтаксис:
ИмеетВедущий(<ВидРасчета>)
Англоязычный синоним:
HasLeading
Параметры:
<ВидРасчета> |
Вид расчета. |
Возвращаемое значение:
Число: 1, если данное правило перерасчета имеет заданный вид расчета в качестве ведущего (т. е. при вводе этого вида расчета в журнал расчетов сработает данное правило перерасчета); 0, если данное правило перерасчета не имеет заданный вид расчета в качестве ведущего.
Описание:
Метод ИмеетВедущий позволяет установить принадлежность вида расчета к ведущим для правила перерасчета.
Пример:
// зависит ли доплата от премии?
Зависит = ПравилоПерерасчета.Доплаты.ИмеетВедущий(ВидРасчета.Премия);
Возвращает вид расчета из списка «ведущих» расчетов.
Синтаксис:
ПолучитьВедущий(<НомерВР>)
Англоязычный синоним:
GetLeading
Параметры:
<НомерВР> |
Числовое выражение — номер вида расчета в списке «ведущих» расчетов. |
Возвращаемое значение:
Вид расчета с номером <НомерВР> из списка «ведущих» расчетов.
Описание:
Метод ПолучитьВедущий возвращает вид расчета с номером <НомерВР> из списка «ведущих» расчетов.
Пример:
ВидВедРасч = ПравилоПерерасчета.Доплаты.ПолучитьВедущий(Инд);
Добавляет вид расчета в список «ведущих».
Синтаксис:
ДобавитьКакВедущий(<ВидРасчета>)
Англоязычный синоним:
AddAsLeading
Параметры:
<ВидРасчета> |
Вид расчета. |
Описание:
Метод ДобавитьКакВедущий добавляет <ВидРасчета> в список «ведущих».
Пример:
ПравилоПерерасчета.Доплаты.ДобавитьКакВедущий(ВидРасчета.Премия);
Удаляет все виды расчета из списка «ведущих».
Синтаксис:
УдалитьВсеВедущие()
Англоязычный синоним:
DeleteAlILeadings
Описание:
Метод УдалитьВсеВедущие удаляет все виды расчета из списка «ведущих».
Пример:
ПравилоПерерасчета.Доплаты.УдалитьВсеВедущие();
Возвращает количество «подчиненных» видов расчета.
Синтаксис:
КоличествоПодчиненных()
Англоязычный синоним:
NumberOfDependents
Возвращаемое значение:
Количество «подчиненных» видов расчета.
Описание:
Метод КоличествоПодчиненных возвращает количество «подчиненных» видов расчета (для которых необходимо произвести перерасчеты согласно данного правила).
Пример:
Колич = ПравилоПерерасчета.Доплаты.КоличествоПодчиненных();
Установить принадлежность вида расчета к «подчиненным» для правила перерасчета.
Синтаксис:
ИмеетПодчиненный(<ВидРасчета>)
Англоязычный синоним:
HasDependent
Параметры:
<ВидРасчета> |
Вид расчета. |
Возвращаемое значение:
Число: 1, если данное правило перерасчета имеет заданный вид расчета в качестве подчиненного (т. е. для этого вида расчета в журнале расчетов сработает данное правило перерасчета); 0, если данное правило перерасчета не имеет заданный вид расчета в качестве подчиненного.
Описание:
Метод ИмеетПодчиненный позволяет установить принадлежность вида расчета к подчиненным для правила перерасчета.
Пример:
Подч = ПравилоПерерасчета.Доплаты.ИмеетПодчиненный(ВидРасчета.Премия);
Возвращает вид расчета из списка «подчиненных» расчетов.
Синтаксис:
ПолучитьПодчиненный(<НомерВР>)
Англоязычный синоним:
GetDependent
Параметры:
<НомерВР> |
Числовое выражение — номер вида расчета в списке «подчиненных» расчетов. |
Возвращаемое значение:
Вид расчета с номером <НомерВР> из списка «подчиненных» расчетов.
Описание:
Метод ПолучитьПодчиненный возвращает вид расчета с номером <НомерВР> из списка «подчиненных» расчетов.
Пример:
ВидПодчРасч = ПравилоПерерасчета.Доплаты.ПолучитьПодчиненный(Инд);
Добавляет вид расчета в список «подчиненных».
Синтаксис:
ДобавитьКакПодчиненный(<ВидРасчета>)
Англоязычный синоним:
AddAsDependent
Параметры:
<ВидРасчета> |
Вид расчета. |
Описание:
Метод ДобавитьКакПодчиненный добавляет <ВидРасчета> в список «подчиненных».
Пример:
ПравилоПерерасчета.Доплаты.ДобавитьКакПодчиненный(ВидРасчета.Премия);
Удаляет все виды расчета из списка «подчиненных».
Синтаксис:
УдалитьВсеПодчиненные()
Англоязычный синоним:
DeleteAllDependents
Описание:
Метод УдалитьВсеПодчиненные удаляет все виды расчета из списка «подчиненных».
Пример:
ПравилоПерерасчета.Доплаты.УдалитьВсеПодчиненные();
Устанавливает необходимость применять или не применять все правила перерасчетов при вводе новых записей в журнал расчетов.
Синтаксис:
Применять(<ФлагПрименения>)
Англоязычный синоним:
Use
Параметры:
<ФлагПрименения> |
Число: 1 — применять; 0 — не применять. |
Возвращаемое значение:
Текущее значение флага применения (до исполнения метода).
Описание:
Метод Применять устанавливает необходимость применять или не применять все заданные в конфигурации правила перерасчетов при изменении состава или исправлении записей журнала расчетов.
Пример:
ПравилоПерерасчета.Применять(1);