0
Отвечен

Заполнение табеля прошлых месяцев на этапе внедрения

Виктор Д. 4 года назад в Расчеты начислений и удержаний / Алгоритмы обновлен Вячеслав Шинкарев (менеджер разработки) 4 года назад 4

Добрый день

в далеком 2008 году Вы мне помогали с такой вот функцией

// А потом в таблице пишем функцию разноски:

// Код:

// FillDayTabel("20.12.2007","10.01.2008","*","Б"); return имя_столбца_из_которого_разносим;

// Первый и второй параметр - дата начала и дата конца (в достаточно произвольном виде: целое число (будет трактоваться как абсолютный или относительный месяц, но не календарный!), строка вида "ДД.ММ.ГГГГ", строка вида "ГГГГММ.ДД".

// Третий - что меняем: * - все, n - нормативные дни, r - рабочие, "nr" - нормативные и рабочие и т.д.

// Четвертый - на что меняем.

//

FillDayTabel(&Dat1, &Dat2, &simv, &na_simv )

{

var DatB = CreateObject("KDate");

var DatE = CreateObject("KDate");

double d1 = GetDateFromFuncRWScript(Dat1); // получаем дату в виде ГГГГММ.ДД

double d2 = GetDateFromFuncRWScript(Dat2);

DatB.SetDateD(d1);

DatE.SetDateD(d2);

int mraschtmp = mrasch;

int mend = DatE.GetAbs(), z1,z2;

for ( int absm=DatB.GetAbs(); absm<=mend; ++absm )

{

if ( absm!=mrasch ) s50(absm);

s6400(d1,d2,z1,z2,data); // определяем дни которые надо заполнить в очередном месяце

if ( zamena_simv_v_tab (simv,na_simv,calm,z1,z2,-1,0) )

s145(s120(mrasch),1);

}

if ( mraschtmp!=mrasch )

s50(mraschtmp);

}


вопрос: как её изменить чтобы разносить табеля с учетом совместительства ?

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

что от совместительства известно? Внешний код?
extCombine в параметры
Код видоизменить (в начало вставить):


FillDayTabel(&Dat1, &Dat2, &simv, &na_simv, extCombine )
{
   int IDCombine=ExtCombineToInt(extCombine);
var tmp=CreateObject("TmpCurCombine");
tmp.Init(IDCombine);
 
старый код...
   

Добрый день

сделал все как Вы написали, добавил в таблицу поле "Код совместительства" (Combine)

передаю в функцию, по "осн" разносит, по "св1" нет.

ошибок не выдает

заработало, только не

   int IDCombine=ExtCombineToInt(extCombine);

а

   var IDCombine=ExtCombineToInt(extCombine);

вопрос решен, спасибо.

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