Основная страница

 

Глава 24
Работа с Правилами перерасчета


 

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

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

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

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

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

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

Если при этом вводится запись с периодом действия не в текущем расчет­ном периоде, а в одном из прошлых (например, расчет оклада задним числом за прошлый месяц), то система введет записи-перерасчеты для всех доплат соот­ветствующего прошлого периода.

Правило перерасчета может быть двух типов: перерасчет «по текущему пе­риоду» или «по будущим периодам».

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

Контекст работы с правилами перерасчета

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

Полное имя правила перерасчета записывается следующим образом:

ПравилоПерерасчета.<ХХХХХ>,

где <ХХХХХ> — идентификатор Правила Перерасчета, объявленный в кон­фигураторе.

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

Пример:

КолПериодов = ПравилоПерерасчета.Главное.КоличествоПериодов;

ВР = ВидРасчета.ПоОкладу;

ЗависитОтОклада = ПравилоПерерасчета.ПересчДоплат.ИмеетВедущий(ВР);

Атрибуты правил перерасчета

Тип

Тип правила перерасчета.

Синтаксис:

Тип

Англоязычный синоним:

Type

Описание:

Атрибут Тип позволяет прочитать/установить значение типа правила пере­расчета. Данный атрибут может принимать следующие значения:

·         0 — зависимые виды расчетов должны быть перерасчитаны в том же перио­де, что и вводимая запись журнала расчетов;

·         1 — зависимые виды расчетов должны быть перерасчитаны в нескольких периодах, следующих за периодом действия вводимой записи журнала рас­четов (количество периодов задано атрибутом КоличествоПериодов).

Пример:

Тип = ПравилоПерерасчета.Главное.Тип;

КоличествоПериодов

Количество перерасчитываемых периодов для правила перерасчета.

Синтаксис:

КоличествоПериодов

Англоязычный синоним:

NumberOfPeriods

Описание:

Атрибут КоличествоПериодов позволяет прочитать/установить количест­во периодов перерасчета.

Пример:

КолПер = ПравилоПерерасчета.Главное.КоличествоПериодов;

Методы правил перерасчета

КоличествоВедущих

Возвращает количество «ведущих» видов расчета.

Синтаксис:

КоличествоВедущих()

Англоязычный синоним:

NumberOfLeadings

Возвращаемое значение:

Количество «ведущих» видов расчета.

Описание:

Метод КоличествоВедущих возвращает количество «ведущих» видов рас­чета (при вводе которых в журнал расчетов необходимо произвести перерасче­ты согласно данного правила).

Пример:

// выведем все виды расчета от которых зависят доплаты

Для Сч = 1 По ПравилоПерерасчета.Доплаты.КоличествоВедущих() Цикл

   Сообщить(ПравилоПерерасчета.Доплаты.ПолучитьВедущий(Сч));

КонецЦикла;

ИмеетВедущий

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

Синтаксис:

ИмеетВедущий(<ВидРасчета>)

Англоязычный синоним:

HasLeading

Параметры:

<ВидРасчета>

Вид расчета.

Возвращаемое значение:

Число: 1, если данное правило перерасчета имеет заданный вид расчета в качестве ведущего (т. е. при вводе этого вида расчета в журнал расчетов сработает данное правило перерасчета); 0, если данное правило перерасчета не имеет заданный вид расчета в качестве ведущего.

Описание:

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

Пример:

// зависит ли доплата от премии?

Зависит = ПравилоПерерасчета.Доплаты.ИмеетВедущий(ВидРасчета.Премия);

ПолучитьВедущий

Возвращает вид расчета из списка «ведущих» расчетов.

Синтаксис:

ПолучитьВедущий(<НомерВР>)

Англоязычный синоним:

GetLeading

Параметры:

<НомерВР>

Числовое выражение — номер вида расчета в списке «ведущих» расчетов.

Возвращаемое значение:

Вид расчета с номером <НомерВР> из списка «ведущих» расчетов.

Описание:

Метод ПолучитьВедущий возвращает вид расчета с номером <НомерВР> из списка «ведущих» расчетов.

Пример:

ВидВедРасч = ПравилоПерерасчета.Доплаты.ПолучитьВедущий(Инд);

ДобавитьКакВедущий

Добавляет вид расчета в список «ведущих».

Синтаксис:

ДобавитьКакВедущий(<ВидРасчета>)

Англоязычный синоним:

AddAsLeading

Параметры:

<ВидРасчета>

Вид расчета.

Описание:

Метод ДобавитьКакВедущий добавляет <ВидРасчета> в список «веду­щих».

Пример:

ПравилоПерерасчета.Доплаты.ДобавитьКакВедущий(ВидРасчета.Премия);

УдалитьВсеВедущие

Удаляет все виды расчета из списка «ведущих».

Синтаксис:

УдалитьВсеВедущие()

Англоязычный синоним:

DeleteAlILeadings

Описание:

Метод УдалитьВсеВедущие удаляет все виды расчета из списка «веду­щих».

Пример:

ПравилоПерерасчета.Доплаты.УдалитьВсеВедущие();

КоличествоПодчиненных

Возвращает количество «подчиненных» видов расчета.

Синтаксис:

КоличествоПодчиненных()

Англоязычный синоним:

NumberOfDependents

Возвращаемое значение:

Количество «подчиненных» видов расчета.

Описание:

Метод КоличествоПодчиненных возвращает количество «подчиненных» видов расчета (для которых необходимо произвести перерасчеты согласно дан­ного правила).

Пример:

Колич = ПравилоПерерасчета.Доплаты.КоличествоПодчиненных();

ИмеетПодчиненный

Установить принадлежность вида расчета к «подчиненным» для пра­вила перерасчета.

Синтаксис:

ИмеетПодчиненный(<ВидРасчета>)

Англоязычный синоним:

HasDependent

Параметры:

<ВидРасчета>

Вид расчета.

Возвращаемое значение:

Число: 1, если данное правило перерасчета имеет заданный вид расчета в качестве подчиненного (т. е. для этого вида расчета в журнале расчетов сработа­ет данное правило перерасчета); 0, если данное правило перерасчета не имеет заданный вид расчета в качестве подчиненного.

Описание:

Метод ИмеетПодчиненный позволяет установить принадлежность вида расчета к подчиненным для правила перерасчета.

Пример:

Подч = ПравилоПерерасчета.Доплаты.ИмеетПодчиненный(ВидРасчета.Премия);

ПолучитьПодчиненный

Возвращает вид расчета из списка «подчиненных» расчетов.

Синтаксис:

ПолучитьПодчиненный(<НомерВР>)

Англоязычный синоним:

GetDependent

Параметры:

<НомерВР>

Числовое выражение — номер вида расчета в списке «подчиненных» расчетов.

Возвращаемое значение:

Вид расчета с номером <НомерВР> из списка «подчиненных» расчетов.

Описание:

Метод ПолучитьПодчиненный возвращает вид расчета с номером <НомерВР> из списка «подчиненных» расчетов.

Пример:

ВидПодчРасч = ПравилоПерерасчета.Доплаты.ПолучитьПодчиненный(Инд);

ДобавитьКакПодчиненный

Добавляет вид расчета в список «подчиненных».

Синтаксис:

ДобавитьКакПодчиненный(<ВидРасчета>)

Англоязычный синоним:

AddAsDependent

Параметры:

<ВидРасчета>

Вид расчета.

Описание:

Метод ДобавитьКакПодчиненный добавляет <ВидРасчета> в список «подчиненных».

Пример:

ПравилоПерерасчета.Доплаты.ДобавитьКакПодчиненный(ВидРасчета.Премия);

УдалитьВсеПодчиненные

Удаляет все виды расчета из списка «подчиненных».

Синтаксис:

УдалитьВсеПодчиненные()

Англоязычный синоним:

DeleteAllDependents

Описание:

Метод УдалитьВсеПодчиненные удаляет все виды расчета из списка «подчиненных».

Пример:

ПравилоПерерасчета.Доплаты.УдалитьВсеПодчиненные();

Применять

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

Синтаксис:

Применять(<ФлагПрименения>)

Англоязычный синоним:

Use

Параметры:

<ФлагПрименения>

Число: 1 — применять; 0 — не применять.

Возвращаемое значение:

Текущее значение флага применения (до исполнения метода).

Описание:

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

Пример:

ПравилоПерерасчета.Применять(1);



Перейти  к оглавлению: Описание встроенного языка

Hosted by uCoz