//  "Таблицы для работы с платежами" 
// Прием информации из выделенной табл "Уплата НДФЛ ... "
// принимаем уплаченные суммы НДФЛ на бл в межрасчетный период для сравнения с суммой по 604 виду
// вызов из "Ф-ция приёма из файла"   user\ndfl_bl,ReadTblBnk,0

 var CTabl = CreateObject("CurPrnTbl");

ReadTblBnk( AdrCTabl,     // адрес передаваемой таблицы
        AdrCListTabl,     // адрес списка таблиц
           RcrInList      // номер записи в списке таблиц
        )
{
   int MaxRec = 99999;
   double sm_upl[MaxRec];                                      //  массив для приёма сумм из 
   for ( int LRcr=0; LRcr<MaxRec; LRcr++ )  {sm_upl[LRcr]=0;}  //  таблицы "Уплата НДФЛ ... "

   var SpTabl  = CreateObject("CurPrnTbl");     // таблица из списка ("Уплата НДФЛ ... ")
                                                // из поля Summary

   var CListTabl = CreateObject("CurPrnTbl");   // список таблиц
   CListTabl.Initial(AdrCListTabl);

   int CountTabl = 0;

   for ( int LRcr=0; LRcr<CListTabl.Count_Rcr(); LRcr++ )
   {
      if( CListTabl.Check_Empty_Rcr(LRcr) || !CListTabl.Flag_Action_0(LRcr) ) continue;

      long newt = CListTabl.GetTableFromList(LRcr);
      if ( !newt ) continue;

      SpTabl.Initial(newt);         // отмеченная не пустая таблица

          //      CountTabl = CountTabl + 1;                                    
          //      if (ESC==Panel_Zapros(" Прием информации из таблиц ","",
          //                        "  Таблица_N: ",CountTabl, 3)            ) return ESC;
         
                                                     
     // Начинаем обработку таблицы построчно
     for ( int RcrTbl=0; RcrTbl<SpTabl.Count_Rcr(); ++RcrTbl )
      {
       int NewTN = atoi(SpTabl.TextS("C_FIO",RcrTbl));       
       double sumUpl = atof(SpTabl.TextS("Summary",RcrTbl));
       sm_upl[NewTN] = sumUpl;
      }
     // заполнили массив  sm_upl[NewTN]
   }                                   

    
   // обраб текущую табл
   CTabl.Initial(AdrCTabl);                                 
   int CurRcr = CTabl.Count_Rcr()-1;                    // устанвливаем счетчик
   //_________ обработка текущей таблицы
   for ( int RcrTbl=0; RcrTbl<CTabl.Count_Rcr(); ++RcrTbl )
    {
      int tn  = atoi(CTabl.TextS("C_FIO",RcrTbl));
      double sm_604 = atof(CTabl.TextS("Sm_604",RcrTbl));
      double smUpl_2 = sm_604;

      if(sm_upl[tn])      
       {
        double sumUpl = sm_upl[tn];
        CTabl.STextS("ndfl_upl",RcrTbl, to_string(sumUpl));   // суммы предыдущей уплаты из sm_upl[tn]

        smUpl_2 = sm_604 - sumUpl;        
       } 
      CTabl.STextS("Summary",RcrTbl, to_string(smUpl_2));

    }
   CTabl.Rewrite();

  return 1;
}



// _______________________ из  Ctrl_SZVm ___________________________


//  CTabl.Initial(AdrCTabl);    // текущая таблица
//  CTabl.Clear();              // очистка таблицы

//   var CListTabl = CreateObject("CurPrnTbl");   // список таблиц
//   CListTabl.Initial(AdrCListTabl);

  // int CrIns=CListTabl.GetCountInsertRcr();     // колич таблиц, выделнных INS
  //
  // if (ESC==Panel_Zapros(" Просмотр списка выбранных таблиц ","",
  //                       "Всего выбрано таблиц: ",CrIns, 3)      
  //                                                         ) return ESC;                                                             
  //   надо добавить (вставить)

//   for ( int LRcr=0; LRcr<CListTabl.Count_Rcr(); LRcr++ )
//   {
//      if( CListTabl.Check_Empty_Rcr(LRcr) || !CListTabl.Flag_Action_0(LRcr) ) continue;

//      long newt = CListTabl.GetTableFromList(LRcr);
//      if ( !newt ) continue;

//      SpTabl.Initial(newt);
//      CountTabl = CountTabl + 1;
                                    
//      if (ESC==Panel_Zapros(" Прием информации из таблиц ","",
//                        "  Таблица_N: ",CountTabl, 3)
//                                                              ) return ESC;
//      ReadTbl();  
//   }

//  return 1;
//}

//ReadTbl()
//{
           // Если у нас получилась всего одна строка да и та пустая   (т.е. в файле нет информации), то выходим
           // if ( SpTabl.Count_Rcr()<2 &&  SpTabl.Check_Empty_Rcr(0)==-1 ) return ESC;

//     string fio, frv;
     
     // Начинаем обработку файла построчно
//     for ( int RcrTbl=0; RcrTbl<SpTabl.Count_Rcr(); ++RcrTbl )
//      {
//       int NewTN = atoi(SpTabl.TextS("C_FIO",RcrTbl));
//       string FIO = SpTabl.TextS("FIO",RcrTbl);
//... 
//       заполнить массив  mas[tn] = sum;  по каждому ТН сумму перечисл в банк
//      }
//}






