SetSimv()
{
   SysSetSimv();
   UserSetSimv();
}


SysSetSimv()
{
  simv_nr = "2";   
  // Нормативные рабочие дни в нормативном графике.
  // В нормативном графике может применяться несколько обозначений 
  // таких дней (если есть какие-то отличия с точки зрения расчета 
  // по этим дням).
  // Тогда здесь все они должны быть перечислены.
  // Например, simv_nr="234";
  // Можно некоторым символам нормативных рабочих дней поставить в соответствие
  // некоторое количество ночных часов:
  // AddNightHours('3',4.00);

  rsimv = "Р"; 
  // Обозначение отработанных дней в табеле лицевого
  // счета. Если несколько simv_nr, то каждый из них
  // может заменяться на свой rsimv, в соответствии
  // с его позицией.  Например, rsimv="РЦМ";
  // Если для всех simv_nr одно обозначение фактически
  // отработанного дня, то ставится
  //  либо так: rsimv="РРР";    либо так: rsimv="Р";

  simv_vyhodn = "0"; 
  // Обозначения выходных дней и праздников
  // в нормативном графике. Если в нормативном графике
  // применяется несколько обозначений таких дней,
  // то все они должны быть здесь перечислены.

  simv_otpsub = "1"; 
  // Обозначения суббот, идущих в зачет отпускных дней,
  // в нормативном графике. Если в нормативном графике
  // применяется несколько обозначений таких дней,
  // то все они должны быть здесь перечислены.

  return;

// ------------------
// Например, при наличии трехсменных графиков работы в организации
// можно ввести такие обозначения:
//
// simv_nr = "123"; // '1'- 1 смена, '2'- 2 смена, '3'- 3 смена, 
// rsimv = "Р"; 
// simv_vyhodn = "0"; 
// simv_otpsub = "9"; 
//
// ( При этом, конечно, следует соответственно заполнять нормативные графики.)
// ------------------
// Система, исходя из обозначений, определенных выше, обеспечит
// правильную работу по расчету основных видов оплат - оклад, тариф, оклад
// по часам; правильный расчет отпуска, расчет РВ в б/листе и в некот. других
// ситуациях. Все остальные особенности обозначений в норм.графике и табеле
// ЛС, если их нужно учитывать, учитывайте самостоятельно в рамках алгоритмов
// расчета видов Н-У ( в функции calculat и др.).

}

rname0 (&name,tip,nmax)
//--------------------------------------------------------
// tip=0 - чтение ТН и Ф И.О. из кадр.части тек.ЛС в name
// tip=1 - чтение ТН и ФИО полного из кадровой части ЛС
// tip=3 - строка запроса ЛС (она же выводится в scr01)
//--------------------------------------------------------
// name - должна быть достаточной длины. В нее можно 
// писать не больше nmax символов.
//-------------------------------
{
   char f[81],im[81],o[81];
   long num,tnum,otdel;
   int i;

   polnyi_tn(num);
   tnum=num%sizetn; otdel=num/sizetn;
   kch_from("kat",f);
   kat=atoi(f);
   kch_from("f\0",f);
   kch_from("i\0",im);
   kch_from("o\0",o);

   i=poiskkrai(f,21); f[i]='\0';

   switch (tip)
   {
      case 0: // ФИО с инициалами
         sprintf(name,"%6ld %s %c.%c.",tnum,f,im[0],o[0]);
         break;

      case 3: // строка запроса
         if ( kat )
         {
            sprintf(name,"%6ld %s %c.%c. ( %ld; кат.%d %1s",tnum,f,im[0],o[0],
                                      otdel,kat,CatName(kat-1));
            i=poiskkrai(name,strlen(name));
            name[i]=' ';
            name[i+1]=')';
            name[i+2]='\0';
         }
         else
            sprintf(name,"%6ld %s %c.%c. (%ld)",tnum,f,im[0],o[0],otdel);
      break;

      case 1: // полное ФИО
         i=poiskkrai(im,15); im[i]='\0';
         i=poiskkrai(o,20); o[i]='\0';
         sprintf(name,"%6ld %s %s %s",tnum,f,im,o);
      break;
   }
   return(1);
}

ssc_calcScript(sscd, day1, day2, krabot, c)
{
   return PriorityCall("User_ssc_calc","Sys_ssc_calc",sscd, day1, day2, krabot, c);
}

Sys_ssc_calc(sscd, day1, day2, krabot, c)
{
  // return ssc_calc(sscd, day1, day2, krabot, c);

  double ssc=0.;
  switch(krabot)
  {
    /* несписочн.состав */  /* 05.12.94 */
       
    case SSC_SHORT_NRV:  // то же, что и 2, только без ограничения НРВ
       ssc = sscd       * static_cast_to_float(day2-day1+1)/countday;   
       break;

    case SSC_SOVM_NRV:  // то же, что и 4, только без ограничения НРВ
    {
       double koef = 0.5;
       // до 2002 года был коэффициент 0.5 и после 09.2006 снова 0.5 (см. ст.284 ТК)
       if ( mrasch>168 && mrasch<226 ) koef=0.4;
       ssc = koef * sscd * static_cast_to_float(day2-day1+1)/countday;
    }
    break;

    case SSC_NONAME:  // ???
       ssc = 0.;                                            
       break;

    case SSC_SOVM_VN:  // внутренний совместитель
       ssc = 0.;                                            
       break;

    case SSC_SOVMEST:  // совместитель (внешний)
    {
       double koef = 0.5;
       // до 2002 года был коэффициент 0.5 и после 09.2006 снова 0.5 (см. ст.284 ТК)
       if ( mrasch>168 && mrasch<226 ) koef=0.4;
       ssc = koef * MIN ( sscd,1. ) * static_cast_to_float(day2-day1+1)/countday;
    }
    break;

    case SSC_DEKRET:  // в отпуске по уходу за ребенком
       ssc = 0.;                                            
       break;

    case SSC_SHORTDAY:  // с сокращенным рабочим днем
       ssc = MIN ( sscd,1. ) * static_cast_to_float(day2-day1+1)/countday; 
       break;

    case SSC_DOGOVOR:  // договор подряда
    case SSC_OSN:      // основное место работы
    default: 
       ssc = ( day2-day1 + 1 - c ) * 1. / countday;         
       break;
  }
  return ssc;
}


Tabel_Sootv()
{
  return PriorityCall("User_Tabel_Sootv","Sys_Tabel_Sootv");
}


int KolSimTab = 72;

string TA[KolSimTab], // табель АМБы
       TB[KolSimTab], // табель буквенный
       TD[KolSimTab], // табель цифровой
       TC[KolSimTab]; // табель буквенный-бюджетный

int ON[KolSimTab]; // внутренние коды: -1 - выходные дни; 0-10 - отработаные;
                   // больше 10 - неотработанные

Sys_Tabel_Sootv()
{
// Таблица соотвествия условных обозначений табеля АМБы 
// и кодов принятых в формах Т-12 и Т-13
  
  TA[0] ="Р"; TB[0] ="Я";  TC[0] ="Я";  TD[0] ="01"; ON[0] =  1; // Продолжительность работы в дневное время
  TA[1] ="4"; TB[1] ="Н";  TC[1] ="Н";  TD[1] ="02"; ON[1] =  2; // Продолжительность работы в ночное время
  TA[2] ="Ы"; TB[2] ="РВ"; TC[2] ="В";  TD[2] ="03"; ON[2] =  3; // Продолжительность работы в выходные и нерабочие праздничные дни
  TA[3] ="С"; TB[3] ="С";  TC[3] ="С";  TD[3] ="04"; ON[3] =  4; // Продолжительность сверхурочной работы
  TA[4] ="М"; TB[4] ="ВМ"; TC[4] ="ВМ"; TD[4] ="05"; ON[4] =  5; // Продолжительность работы вахтовым методом
  TA[5] ="К"; TB[5] ="К";  TC[5] ="К";  TD[5] ="06"; ON[5] = 11; // Служебная командировка
  TA[6] ="У"; TB[6] ="У";  TC[6] ="";   TD[6] ="11"; ON[6] = 12; // Повышение квалификации с отрывом от работы
  TA[7] ="Й"; TB[7] ="ПМ"; TC[7] ="";   TD[7] ="08"; ON[7] = 13; // Повышение квалификации с отрывом от работы в другой местности
  TA[8] ="О"; TB[8] ="ОТ"; TC[8] ="О";  TD[8] ="09"; ON[8] = 14; // Ежегодный основной оплачиваемый отпуск
  TA[9] ="Ь"; TB[9] ="ОД"; TC[9] ="О";  TD[9] ="10"; ON[9] = 15; // Ежегодный дополнительный оплачиваемый отпуск
  TA[10]="У"; TB[10]="У";  TC[10]="ОУ"; TD[10]="11"; ON[10]= 16; // Дополнительный отпуск в связи с обучением с сохранением среднего заработка работникам, совмещающим работу с обучением
  TA[11]="Щ"; TB[11]="УВ"; TC[11]="";   TD[11]="12"; ON[11]=  6; // Сокращенная продолжительность рабочего времени для обучающихся без отрыва от производства с частичным сохранением заработной платы
  TA[12]="С"; TB[12]="УД"; TC[12]="ОУ"; TD[12]="13"; ON[12]= 17; // Дополнительный отпуск в связи с обучением без сохранения заработной платы
  TA[13]="Д"; TB[13]="Р";  TC[13]="Р";  TD[13]="14"; ON[13]= 18; // Отпуск по беременности и родам (отпуск в связи с усыновлением новорожденного ребенка)
  TA[14]="Т"; TB[14]="ОЖ"; TC[14]="Р";  TD[14]="15"; ON[14]= 19; // Отпуск по уходу за ребенком до достижения им возраста трех лет
  TA[15]="И"; TB[15]="ДО"; TC[15]="О";  TD[15]="16"; ON[15]= 20; // Отпуск без сохранения заработной платы, предоставленный работнику по разрешению работодателя
  TA[16]="К"; TB[16]="ОЗ"; TC[16]="О";  TD[16]="17"; ON[16]= 21; // Отпуск без сохранения заработной платы при условиях, предусмотренных действующим законодательством Российской Федерации
  TA[17]="Т"; TB[17]="ДБ"; TC[17]="О";  TD[17]="18"; ON[17]= 22; // Ежегодный дополнительный отпуск без сохранения заработной платы
  TA[18]="Б"; TB[18]="Б";  TC[18]="Б";  TD[18]="19"; ON[18]= 23; // Временная нетрудоспособность (кроме случаев, предусмотренных кодом "Т") с назначением пособия согласно законодательству
  TA[19]="Ф"; TB[19]="Т";  TC[19]="Б";  TD[19]="20"; ON[19]= 24; // Временная нетрудоспособность без назначения пособия в случаях, предусмотренных законодательством
  TA[20]="Э"; TB[20]="ЛЧ"; TC[20]="";   TD[20]="21"; ON[20]=  7; // Сокращенная продолжительность рабочего времени против нормальной продолжительности рабочего дня в случаях, предусмотренных законодательством
  TA[21]="Я"; TB[21]="ПВ"; TC[21]="П";  TD[21]="22"; ON[21]= 25; // Время вынужденного прогула в случае признания увольнения, перевода на другую работу или отстранения от работы незаконными с восстановлением на прежней работе
  TA[22]="Г"; TB[22]="Г";  TC[22]="Г";  TD[22]="23"; ON[22]= 26; // Невыходы на время исполнения государственных или общественных обязанностей согласно законодательству
  TA[23]="П"; TB[23]="ПР"; TC[23]="П";  TD[23]="24"; ON[23]= 27; // Прогулы (отсутствие на рабочем месте без уважительных причин в течение времени, установленного законодательством)
  TA[24]="Ч"; TB[24]="НС"; TC[24]="";   TD[24]="25"; ON[24]=  8; // Продолжительность работы в режиме неполного рабочего времени по инициативе работодателя в случаях, предусмотренных законодательством
  TA[25]="0"; TB[25]="В";  TC[25]="В";  TD[25]="26"; ON[25]= -1; // Выходные дни (еженедельный отпуск) и нерабочие праздничные дни
  TA[26]="1"; TB[26]="В";  TC[26]="В";  TD[26]="26"; ON[26]= -2; // Дополнительные выходные дни (оплачиваемые)
  TA[27]="Х"; TB[27]="НВ"; TC[27]="В";  TD[27]="28"; ON[27]= -3; // Дополнительные выходные дни (без сохранения заработной платы)
  TA[28]="З"; TB[28]="ЗБ"; TC[28]="";   TD[28]="29"; ON[28]= 28; // Забастовка (при условиях и в порядке, предусмотренных законом)
  TA[29]="Л"; TB[29]="НН"; TC[29]="";   TD[29]="30"; ON[29]= 29; // Неявки по невыясненным причинам (до выяснения обстоятельств)
  TA[30]="В"; TB[30]="РП"; TC[30]="";   TD[30]="31"; ON[30]= 30; // Время простоя по вине работодателя
  TA[31]="Е"; TB[31]="НП"; TC[31]="";   TD[31]="32"; ON[31]= 31; // Время простоя по причинам, не зависящим от работодателя и работника
  TA[32]="Ш"; TB[32]="ВП"; TC[32]="";   TD[32]="33"; ON[32]= 32; // Время простоя по вине работника
  TA[33]="Ю"; TB[33]="НО"; TC[33]="";   TD[33]="34"; ON[33]= 33; // Отстранение от работы (недопущение к работе) с оплатой (пособием) в соответствии с законодательством
  TA[34]="А"; TB[34]="НБ"; TC[34]="";   TD[34]="35"; ON[34]= 34; // Отстранение от работы (недопущение к работе) по причинам, предусмотренным законодательством, без начисления заработной платы
  TA[35]="Ж"; TB[35]="НЗ"; TC[35]="";   TD[35]="36"; ON[35]= 35; // Время приостановки работы в случае задержки выплаты заработной платы
}                                               

perevod_ls_dop_script()
{
  return PriorityCall("User_perevod_ls_dop", "Sys_perevod_ls_dop");
}

Sys_perevod_ls_dop()
{
  return 1;
}