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

1. Прикрепил сохраненку с поставки.ZPL_zplinfo_full(20200731_144728).cab 

Январь 2020 показывает 114 часов вместо 136. Тип double, но месяц задаётся 202001.00, а в скрипте получается от даты начала (например, 202001.01)

2. По срокам не скажете, примерно, когда?

Добрый день. 

Вопросы по настройке:

1. Факт и норма часов заполняется не у всех сотрудников. Если заполняется, то не правильно. Возможно, причина во втором параметре функции skoljko(hoursWorked, kDateBegin.GetDouble()...Работает, если обрезать значение после "."

2. Заполнения факта и нормы времени по периоду действия должности из табеля и для всех видов (в т.ч. страховых взносов) - это рекомендация разработчиков МТБЗ?  

Может быть, правильнее: 

  • заполнять время для списка начислений по настройке (например, "список видов оклада")
  • факт заполнять по строке вида (либо дни, либо часы по "C2" в ТВХ) 
  • норма за месяц (либо дни, либо часы) и по графику строки начисления

3. На поставке совместительства разбиваются, у клиента не фильтрует.

По форме "Данные о среднеспис.численности и ФОТ медицинских работников" (релиз 601.2) выводит данные без группировки по должностям. На демо-версии формирую на 3х человек с одной должностью - получаю 3 строки, и в каждой строке среднесписочная численность "2".

Раньше способ проходил, правда перезапускал КЗ после каждой смены месяца, иначе табель бился.

А как лучше разнести? Через s50?

Посмотрите, пожалуйста, этим кодом лицевые не испорчу.

//РАЗНОСКА ВИДА С НОВЫМ BZ
RaznNewVid(Extern_Cod,NewDate,NewSum,Base)
{
 int rowkod[ROWMAX];//массив с номерами строк
 var Prop = CreateObject("APropBE");
 int cntrow=poiskosnkodProp(Extern_To_InternE(Extern_Cod),rowkod,1,Prop); //поиск по точному коду
 var NewD=CreateObject("KDate");
 NewD.SetDate(static_cast_to_string(NewDate)); //дата начала деяствия нового вида
 
  if(cntrow > 0)
  {
   var DatB = CreateObject("KDate"); DatB.SetDateD(GetBegDate(rowkod[0])); //дата начала действия строки
   var DatE = CreateObject("KDate"); DatE.SetDateD(GetEndDate(rowkod[0])); //дата конца действия строки 
   var DatEnew = CreateObject("KDate"); DatEnew.SetDateD(NewD.GetDouble()); // новая дата конца действия строки

   double ikod=GetCode(rowkod[0]);  //точный внутренний код строки

   //фильтруем строки не действующие на новую дату
   if (DatB.LT(NewD) && DatE.GT(NewD)) //дата_начала вида меньше новой даты и дата_окончания больше новой даты
   {
    PutEndDate(rowkod[0],DatEnew.Dec()); //заменяем дату конца на новую дату минус 1 день
    PutBase(rowkod[0],Base); //разносим БЗ старой строки из таблицы разноски
    PutSumm(rowkod[0],colc1,Base); //разносим сумму в старую строку из таблицы разноски 
   
    toMatrLS();
    struct SumElemS E_N;
      E_N.summa=atof(NewSum);
      E_N.rv=0;
      E_N.m=mrasch;
      E_N.mv=mrasch;
      E_N.mp=INVALID_MONTH_VALUE;
      E_N.dayp=INVALID_DAY_VALUE;

    double NewCode = PutSummProp(Extern_To_Intern(Extern_Cod),E_N,GetPropOfRow(ikod),BE_FREESUM); 
    toUseal(1);
 
    if(NewCode > 0)
    {
      int rowkodN[ROWMAX];//массив с номерами строк
      int cntrowN=poiskosnkodProp(NewCode,rowkodN,1,GetPropOfRow(NewCode));
      if(cntrowN > 0) 
      {
        PutBegDate(rowkodN[0],NewD.GetDouble()); //дата начала новой строки
        PutBase(rowkodN[0],NewSum); //БЗ новой строки
      }
      return NewCode; 
    }
   }
  } 
  return 0;
}

База локальная. Видимо, поврежден файл sets.mdb, т.к. при смене ширины колонок изменения не сохраняются. Замена файла (из архива) исправляет ситуацию. Подскажите какие настройки хранятся в этом файле.

Символ * в 22-ом исправляет заполнение. Настройку делали с разбивкой по совместительствам и всё работало до обновления(сравнивали с отчетами прошлых кварталов, настройки не менялись).

Если нужна разбивка налога по совместительствам, то настраиваем аналог 554 для внебюджета? 



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