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

Вы не ответили на мой вопрос выше.

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

Добрый день!

Распишите задачу более подробно.

все виды ндфл в квитке в одну сумму

вы хотите чтобы в "квитке всегда была только одна строка "мифическое начисление"?

Ничего не требуется.

Информация об отправке пишется в ..\ZPL\log\Full.log

Добрый день

102й ( и прочие скриптовые квитки) отправляется только в виде текста

в виде Excel можно отправить 200 и 201

Добрый день.

% оплаты БЛ определяется по страховому стажу сотрудника 

В общем случае достаточно верно указать стаж.. ( вкладка: СФР, поле: Страховой стаж  для БЛ)

Добрый день.

Нельзя. 

Пользуйтесь полным наименованием.

Пример расчета

KvartalNrv(scheduleNumber,absMonth)
{
    //расчет выполняем только для месяцев, в которых начинается следующий квартал.
    //для января берем в расчет период[октябрь;декабрь], для апреля берем [январь;март] и т.д.
    var kdate=KDateFromInt(absMonth);
   if( kdate.GetMonth()!=1 && kdate.GetMonth()!=4 && kdate.GetMonth()!=7 && kdate.GetMonth()!=10 )
     return 0;        
    double nrv=0;
    //цикл по месяцам квартала
    for(int m=GetAbsMonthForBegKvartal(absMonth-1);m<=GetAbsMonthForEndKvartal(absMonth-1);m++)
        nrv+=NrvByScheduleNumber(scheduleNumber,m,true);
   return nrv;    
}    
NrvByScheduleNumber(scheduleNumber,absMonth,bHours)
{
  int tmpMrasch = mrasch;
  s50(absMonth);
  //грузим нужный график
  rwnorma(scheduleNumber,0);
  s118();
  double nrv= bHours
   ? norm(2)
   : norm(1);
  if ( mrasch!=tmpMrasch )
    s50(tmpMrasch);
    
  return nrv;  
}

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

return KvartalNrv(1,KDateFromStr("10.2024").GetAbs());
//return KvartalNrv(1,mrasch);

Остается полученное значение поделить  на 3..

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