
//    просмотр полей типа T (nal_podr) и заполнение поля "Для Удал2" - prz_del2
//  "Конец расчета таблицы"__:
//  UnloadScriptModule("user\\reform_nalp");LoadScriptModule("user\\reform_nalp");return PrzDel2(__AdrTable);
PrzDel2(__AdrTable)  
{
   var CTabl = CreateObject("CurPrnTbl");
   CTabl.Initial(__AdrTable);
   int cr=CTabl.Count_Rcr();                 // число рабочих записей в таблице

   int tn_old = 0;
   int n_pod_old = 0;
   // цикл по записям таблицы
   for (int zap=0; zap<cr; zap++)
   {
     int ord     = atoi(CTabl.TextS("Order",zap));
     int tn      = atoi(CTabl.TextS("C_FIO",zap));
     int n_pod   = atoi(CTabl.TextS("FCnal_podr",zap)); 
     
     int prz = 1;
     if((tn == tn_old) && (n_pod == n_pod_old))  CTabl.STextS("prz_del2",zap, static_cast_to_string(prz));
      
     tn_old = tn;
     n_pod_old = n_pod;
   }

   CTabl.Rewrite();

}


//    просмотр полей типа T (nal_podr) и заполнение поля "Для Удаления" - prz_del
//    "Конец приема из ЛС"__:
//  UnloadScriptModule("user\\reform_nalp");LoadScriptModule("user\\reform_nalp");return Dial_2(__AdrTable);  

Dial_2(__AdrTable)
{
   var CTabl = CreateObject("CurPrnTbl");    // объект класса для работы с текущей таблицей
   CTabl.Initial(__AdrTable);
   int cr=CTabl.Count_Rcr();                 // число рабочих записей в таблице

   
   int tab_n,  pod_n,  mes_a;
   tab_n = pod_n = mes_a = 0;
   // заполняем текущую таблицу новыми данными
   // цикл по записям таблицы
   for (int zap=0; zap<cr; zap++)
   {
     int ord     = atoi(CTabl.TextS("Order",zap));
     int tn      = atoi(CTabl.TextS("C_FIO",zap));     
     
     int n_pod1  = atoi(CTabl.TextS("FCnal_podr",zap));
     int a_mes1  = atoi(CTabl.TextS("abs_m",zap));

     // блок  расчетов  
     int prz = 0;
     if((tab_n == tn) && (pod_n == n_pod1) && ((a_mes1-mes_a) == 1))  prz = 1;

     // блок записи/добавления данных в таблицу
     if(prz == 1)  CTabl.STextS("prz_del",zap, static_cast_to_string(prz));
     //CTabl.STextS("prz_del",zap, static_cast_to_string(prz));

     tab_n = tn;
     pod_n = n_pod1;
     mes_a = a_mes1;

   }

   CTabl.Rewrite();

}


PreMonth(__AdrTable)
{
   var CTabl = CreateObject("CurPrnTbl");    // объект класса для работы с текущей таблицей
   CTabl.Initial(__AdrTable);
   int cr=CTabl.Count_Rcr();                 // число рабочих записей в таблице

   // цикл по записям таблицы
   for (int zap=0; zap<cr; zap++)
   {
     int a_mes1 = atoi(CTabl.TextS("abs_m",zap));
         
     int o_1    = atoi(CTabl.TextS("O_9999",zap));       // nal_podr тек месяца

     char d1[21], d2[21], d3[21]; 
     
     //операции с предыд месяцем
     var dat  = CreateObject("KDate");   dat.SetMonth(a_mes1-1);   //инициализация абс.месяцем-1
         string s =dat.GetStr();                                   //мм.гггг
         sprintf(d1,"01.%s",to_string(s));                         //дд.мм.гггг
         FreeSpaceString(d1,3,"");     
     var dat2  = CreateObject("KDate");  dat2.SetDate(to_string(d1));  //инициализация датой дд.мм.гггг (предыд месяц)
     GetKchValue("nal_podr",d3,10,dat2);                               
     int o_2    = atoi(d3);                                            // nal_podr предыд месяца

     //операции со след месяцем
     var dat_next  = CreateObject("KDate");   dat_next.SetMonth(a_mes1+1);
         string s_n =dat_next.GetStr();

     
     CTabl.STextS("Dat_1",zap, to_string(s_n));
     CTabl.STextS("pre_m",zap, to_string(d1));                   // записываем предыдущий месяц
     CTabl.STextS("FCnal_podr",zap, to_string(o_2));             // записываем nal_podr предыд месяца

     int prz = 1;
     if(o_1 == o_2) CTabl.STextS("prz",zap, to_string(prz));
   }

   CTabl.Rewrite();

}
