0
Отвечен

Выборка размера северной надбавки из РВ видов НУ

svetlanav 7 лет назад в Расчеты начислений и удержаний / Алгоритмы обновлен Гашков Николай (Эксперт) 7 лет назад 11

Поправьте, пожалуйста, скрипт. В колонке 33 символом 3 отмечены виды СН. Как подсуммировать РВ по этим видам по основному подразделению, источнику, совместительству и без учета пересчетных строк.

Спасибо.

UserDefineSev(month, d1, d2)
{
int stolbec = 33;
double n2=0;
  var Prop = CreateObject("APropBE");
  Prop.Init(GetGeneralSrcLS(),GetGeneralSubjectLS(),GetGeneralPodrLS(),GetGeneralCombineLS()); //Основной источник
  var CurProp = GetCurPropCountLS();   // По  должностям
char buf[256];
char func[256];
sprintf(func,"R_Col_T(3,'н',%d,0,0,Prop)%s",stolbec);
CallFuncReceive(func,buf,250,2);  
n2 = atof(buf)/100; 
return n2;

}

Script

Ответ

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

Попробуйте так:

UserGetRvColProp(col,sim, prop)
{
  int Flags=CL_SOURCE|CL_MV;//выборка по виду по месяцу начисления
  double rv=0.; 
  //цикл по видам ТВХ
  for(int pos=0;pos<cntplus;pos++)
  {
     char cur_sim=Sim_For_Position(pos,col-1);
     if ( cur_sim!=sim)  
      continue;
     rv+=CashSummProp(0,kodnu1[pos],mrasch,mrasch,42,Flags,prop); 
  }
  return rv;
}

Использовать так:

var Prop = CreateObject("APropBE");
Prop.Init(GetGeneralSrcLS(),GetGeneralSubjectLS(),GetGeneralPodrLS(),GetGeneralCombineLS());
return UserGetRvColProp(25,'3', Prop);
ХОРОШО, МНЕ ПОНРАВИЛОСЬ
Оценка удовлетворенности от svetlanav 7 лет назад
Ответ
На рассмотрении

Попробуйте так:

UserGetRvColProp(col,sim, prop)
{
  int Flags=CL_SOURCE|CL_MV;//выборка по виду по месяцу начисления
  double rv=0.; 
  //цикл по видам ТВХ
  for(int pos=0;pos<cntplus;pos++)
  {
     char cur_sim=Sim_For_Position(pos,col-1);
     if ( cur_sim!=sim)  
      continue;
     rv+=CashSummProp(0,kodnu1[pos],mrasch,mrasch,42,Flags,prop); 
  }
  return rv;
}

Использовать так:

var Prop = CreateObject("APropBE");
Prop.Init(GetGeneralSrcLS(),GetGeneralSubjectLS(),GetGeneralPodrLS(),GetGeneralCombineLS());
return UserGetRvColProp(25,'3', Prop);

Пересчетные строки суммирует. Если за предыдущий месяц доначислили СН, берет и из этой строки РВ. Нужно подсуммировать РВ текущего месяца за текущий месяц.

Спасибо большое!!

Еще одна проблема. Эта функция срабатывает только после окончательного расчета ЛС. Пока не запишем рассчитанные значения видов СН, мы не можем прочитать их этой функцией. 

Перед вызовом 

UserGetRvColProp()

добавьте

toMatrLS();

Как только начинаем использовать UserDefineSev, вид СН перестает считаться.

Можете выложить 897 алгоритм, чтобы мы сами переименовали эту UserDefineSev.

Или можно что-то другое придумать? 

Текущее состояние алгоритма: 897.txt

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