0
На рассмотрении

Расчет по среднему с помощью KCalcSredn

mid2018 5 лет назад в Расчеты начислений и удержаний / Алгоритмы обновлен 5 лет назад 9

Добрый день!

В связи с появлением услуг типа "Массовая диспансеризация"  увеличились объемы работ по расчету среднего.

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

класса KCalcSredn.

Но, поскольку, при любом расчете среднего в архив подшивается "Таблица расчета среднего",

возможно ли появление в классе KCalcSredn  появление метода который бы выводил такую таблицу?

На рассмотрении

Добрый день!

Sredn.Calculate(1); // расчет среднего c выводом таблицы расчета среднего

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

При инициализации расчета «по-среднему», что имеется в виду под  "номер рассчитываемой строки" т.е. - откуда брать значение для int crow? 


void InitSredn (int crow, int kod_alg, Date DateBeg, unsigned Flag );

Параметры:

crow - номер рассчитываемой строки

Номер строки можно получить через функцию  poiskosnkod

int rowkod[ROWMAX];//массив с номерами строк
int cntrow=poiskosnkodProp(Extern_To_Intern(104.02),rowkod,1,0);
int crow=rowkod[0]; //номер строки для вида с кодом 104.02

Получается, что перед использованием этого метода (InitSredn) расчетчик  должен во всех ЛС вручную добавить вид для среднего?

Вопрос связан с тем, что уже несколько лет на предприятии для определенных условий сумма отпуска рассчитывается через таблицу с помощью метода (Sredn.InitOtp(DateBeg,0);)  и уже потом разносится в ЛС с открытием вида отпуска и проставлением символов в табеле.

Вот и для "по-среднему" расчетчики просили сделать такую же таблицу.

Нет.

Например, таблица "Расчет резерва по отпускам с точным расчетом страховых" работает без строки вида.

Во втором методе способа расчета по-среднему  (InitByPointer)  что за таблица имеется в виду в параметре  Adr?

Синтаксис:    void InitByPointer ( long Adr, unsigned FlagClear );

Параметры:

Adr - адрес для инициализации таблицы

Вопрос по другому методу.

В методе InitByPointer что за таблица имеется в виду в параметре Adr?

Синтаксис:     void InitByPointer ( long Adr, unsigned FlagClear );

Параметры:   Adr - адрес для инициализации таблицы

Для расчета по-среднему с помощью класса KCalcSredn  задействован метод  InitSredn,

который требует, при обращении к нему, указать номер строки в матрице.

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

В инструкции это выглядит так:

    1.4 Чистим поле ”Признак разноски” и разносим (F6) в ЛС виды для расчета среднего.

           (в ЛС должны добавиться новые виды НУ с датами начала и конца действия).                1.5 Рассчитываем (Alt_F4) среднее за день и суммы оплаты ”по-среднему” для разноски                 в  ЛС.

    1.6 Чистим поле ”Признак разноски” и разносим (F6) в ЛС результаты расчетов.

           (в ЛС у новых видов НУ должны заполниться: РВ, Сумма, БЗ).


Видно, что пункт 1.4 лишний, и если бы метод  InitSredn требовал не номер строки в матрице

а дату начала действия вида,  то оба пункта разноски (1.4, 1.6) можно было бы схлопнуть 

в один. 

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

дату начала действия вида на основании которой определяется период для расчета 

среднего.

Возможно ли добавить такой метод в класс  KCalcSredn?

Сервис поддержки клиентов работает на платформе UserEcho