Ваши комментарии

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

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

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

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

Добрый день.

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

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

Добрый день!

Да, будет ( ближе к отчетности...)

Можете поставить 1 в 

Настройка -> 6. Общие настройки системы -> 6. Настройки режимов корректировки. -> Диалог выбора исполняемой должности

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