0
Отвечен

Как вытащить в шапку части квитка РВ по виду?

KTV 5 лет назад в Справки, квитки и прочие формы печати обновлен Гашков Николай (Эксперт) 5 лет назад 6

Добрый день!

Как в форме квитка 102, разбиваемому по совместительствам, вытащить по каждому совместительству фактически отработанное РВ по виду НУ?

Т.е. нужен скриптовый аналог функции R_Time.

Script Квиток
ХОРОШО, МНЕ ПОНРАВИЛОСЬ
Оценка удовлетворенности от KTV 5 лет назад
На рассмотрении

Добрый день.

Разве 102 квиток не печатает РВ по видам!?

РВ по виду можно получить скриптовой ф-цией rvvid()

Извините, может не совсем корректно описала задачу.

В шапке каждой части квитка (по каждому совместительству) нужно, чтобы был выведен оклад, факт.РВ и норма РВ.

Оклад и норму я вытащила, а факт.РВ не нашла. 

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

Оклад и НРВ печатаете так:? 

ФРВ по какому виду нужно выводить?На одной должности может быть несколько строк с таким кодом?

Да, так.

ФРВ выводится по коду 143 или 296, на одной должности только одна строка с одним из этих кодов.

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

UserBeginPrintPartCheckHeader(tipKv)
{
  int combine=__CurrentCheckProp.GetCombine();//внутренний  код "печатаемой должности"  
  //печатаем "значение" оклада и НРВ
  if ( !Excel )
  {
   char str[256];
   sprintf(str," Оклад: %.2f Норма: %.2f (%.2f)",UserGetOklad(994,combine),UserGetNorm(combine,2),UserGetNorm(combine,1));
   print(str);
     double frv=UserGetFrv(143,combine);//берем ФРВ из вида 143
   if (frv<0.001)// ФРВ в 143 нулевое - возьмем из 296 вида.     
         frv=UserGetFrv(296,combine);
     sprintf(str," ФРВ: %.2f ",frv);
     print(str);
  }
}
UserGetFrv(code,combine)
{
    int rowkod[ROWMAX];//массив с номерами строк
  var Prop = CreateObject("APropBE");Prop.Init(CLL_TOTAL_SRC,CLL_TOTAL_SUBJECT,CLL_TOTAL_PODR,combine); //инициализируем APropBE вн.кодом совместительства
  int cntrow=poiskosnkodProp(Extern_To_Intern(code),rowkod,0,Prop);//получаем список строк с внешним кодом code
  var monthKvitok=KDateFromInt_WithDay(1,mtek);
  for (int row=0; row < cntrow; row++)                    //перебираем все строки
  {
    //фильтр на недействующие строки
    var DatB = KDateFromD(GetBegDate(rowkod[row]));
    var DatE = KDateFromD(GetEndDate(rowkod[row]));
    if (DatB.GTM(monthKvitok)||DatE.LTM(monthKvitok)) 
      continue; 
        double rv=0;
        rvvid("=",GetCode(rowkod[row]),mrasch-mtek,rv); 
        if(rv>0.001)
            return rv;
  }  
    return 0;
}

USFUNCRW.S

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