/*
UserTabelProcessData(ID_Combine, xmlNode, dateStart, dateEnd) 
   // эта функция для первоначальных проверок, если не нужно обрабатывать письмо то 
   // выполнить следующий код:
   //                           var err="Текст сообщения"; throw err;
{
   // ID_Combine - внутренний код исполняемой должности (к этому моменту она уже выбрана в TmpCurCombine
   // xmlNode - xml пришедший из КП (класс XMLDOMNode)
   // dateStart, dateEnd - даты начала и конца табеля (класс KDate)
   

}

UserTabelUpdateData(ID_Combine, xmlNode, dateStart, dateEnd) 
{  // в этой функции необходимо записать данные в ЛС
   // бросать здесь исключения нельзя ни в коем случае!!!

   // ID_Combine - внутренний код исполняемой должности (к этому моменту она уже выбрана в TmpCurCombine
   // xmlNode - xml пришедший из КП (класс XMLDOMNode)
   // dateStart, dateEnd - даты начала и конца табеля (класс KDate)




}

// Следующие функции аналогичны предыдущим двум, только здесь надо разнести РВ
// Если раскомментированы предыдущие 2 функции - то эти вызываться не будут
UserRVProcessData(ID_Combine, xmlNode, dateStart, dateEnd) 
   // эта функция для первоначальных проверок, если не нужно обрабатывать письмо то 
   // выполнить следующий код:
   //                           var err="Текст сообщения"; throw err;
   // если РВ в xml отличается от РВ в ЛС - взвести соответствующий флаг из Changes
   // в результате функции
{
   // ID_Combine - внутренний код исполняемой должности (к этому моменту она уже выбрана в TmpCurCombine
   // xmlNode - xml пришедший из КП (класс XMLDOMNode)
   // dateStart, dateEnd - даты начала и конца табеля (класс KDate)

   const int vidscnt=7;

   // флаги, комбинацию которых надо вернуть, если значение РВ в ЛС отличается
   // от разносимого
   int Changes[vidscnt];
   Changes[0]=0x0004; // bEvening
   Changes[1]=0x0008; // bNight
   Changes[2]=0x0010; // bOvertime
   Changes[3]=0x0020; // bSr
   Changes[4]=0x0040; // bDop
   Changes[5]=0x0080; // bHoliday
   Changes[6]=0x0100; // bIdle

   //xml-тэги, из которых брать РВ     
   string xmlTags[vidscnt];
   xmlTags[0]="ВечернееВремя";
   xmlTags[1]="НочноеВремя";
   xmlTags[2]="СверхурочноеВремя";
   xmlTags[3]="ВремяОплачиваемоеПоСреднему";
   xmlTags[4]="ДополнительныйВыход";
   xmlTags[5]="ДополнительныйВыходВПраздничныеДни";
   xmlTags[6]="НецелосменныеПростои";

   //настройка, в которой указан вид, куда нужно разнести РВ из соотв. xml-тэга 
   //0 - не разносить
   string cnfs[vidscnt];
   cnfs[0]="EvVid";
   cnfs[1]="NightVid";
   cnfs[2]="OvertVid";
   cnfs[3]="SrVid";
   cnfs[4]="DopVid";
   cnfs[5]="HolidVid";
   cnfs[6]="IdleVid";
  
   int result=0;
   return result;
}

UserRVUpdateData(ID_Combine, xmlNode, dateStart, dateEnd) 
{  // в этой функции необходимо записать данные в ЛС
   // бросать здесь исключения нельзя ни в коем случае!!!

   // ID_Combine - внутренний код исполняемой должности (к этому моменту она уже выбрана в TmpCurCombine
   // xmlNode - xml пришедший из КП (класс XMLDOMNode)
   // dateStart, dateEnd - даты начала и конца табеля (класс KDate)

   const int vidscnt=7;

   //xml-тэги, из которых брать РВ     
   string xmlTags[vidscnt];
   xmlTags[0]="ВечернееВремя";
   xmlTags[1]="НочноеВремя";
   xmlTags[2]="СверхурочноеВремя";
   xmlTags[3]="ВремяОплачиваемоеПоСреднему";
   xmlTags[4]="ДополнительныйВыход";
   xmlTags[5]="ДополнительныйВыходВПраздничныеДни";
   xmlTags[6]="НецелосменныеПростои";

   //настройка, в которой указан вид, куда нужно разнести РВ из соотв. xml-тэга 
   //0 - не разносить
   string cnfs[vidscnt];
   cnfs[0]="EvVid";
   cnfs[1]="NightVid";
   cnfs[2]="OvertVid";
   cnfs[3]="SrVid";
   cnfs[4]="DopVid";
   cnfs[5]="HolidVid";
   cnfs[6]="IdleVid";


}

*/