//  сравнение сумм из таблицы и из ЛС
//  вызов модуля из "Начало расчета таблицы"__:
//  LoadScriptModule("user\\Ctrl_Sum");return DialBeg(__AdrTable);


DialBeg(__AdrTable)  
{


  var CTabl = CreateObject("CurPrnTbl");
  CTabl.Initial(__AdrTable);

  int abs_m = atoi(CTabl.TextS("Ex_Cod",3));     // абс мес
  int kol_v = atoi(CTabl.TextS("Cod",3));        // кол видов

  int tn_rec   = 0;  // ТН для записи
  int rec_info = 0;  // признак записи в info
  int rec_line = 0;  // № строки в таблице для записи str_info
  char str_info[250]; // инфо-строка с расхождениями

  string str_1 = "Расхождений не обнаружено";
  string str_2 = "Всего расхождений_: ";
  int info_gl  = 0;

  for ( int LRcr=3; LRcr<CTabl.Count_Rcr(); LRcr++ )
   {
    if ( rec_info == 1 )  CTabl.STextS("Info",rec_line, static_cast_to_string(str_info));

    int tn = atoi(CTabl.TextS("C_FIO",LRcr));
    tn_rec  = tn;
    rec_info = 0;           // обнул признак записи
    sprintf(str_info,"_");  // подготавл пустую str_info

    char ls1[90];
    lsname(Find_Full_TN(tn),ls1);   FreeSpaceString(ls1,3,"");    //double llss = atof(ls1);
    lsread(ls1,0);                  // инициализация ТН

    for (int ord=1; ord <= kol_v; ord++)         //______________________ цикл по видам
     {
      int ex_kod = atoi(CTabl.TextS(ord,0));
      int kod    = Extern_To_Intern(ex_kod);

      double sm_kod_1 = atof(CollectSumm(ex_kod,0,abs_m, CL_MV | CL_EXT ));   // сумма по виду из ЛС
      double sm_kod_2 = atof(CTabl.TextS(ord,LRcr));                    // сумма по виду из таблицы
      double sk_1 = 0;  round2(sm_kod_1,1,0,sk_1);
      double sk_2 = 0;  round2(sm_kod_2,1,0,sk_2);

      if(sk_1 - sk_2)                      
        {
         sprintf(str_info,"%s_%s_%s_%s_:",str_info, static_cast_to_string(ex_kod), static_cast_to_string(sk_1), static_cast_to_string(sk_2));
         rec_info = 1;
         rec_line = LRcr;
         info_gl  += 1;
        }      

                            
                         //   if (ESC==Panel_Zapros(" Считанные данные из таблицы","",
                         //                         "       Виду НУ : ",ex_kod, 10,
                         //                         "       Виду НУ : ",kod, 10,    
                         //                         " Сумма по Виду НУ  : ",sm_kod, 10,
                         //                         " Сумма из таблицы  : ",sm_kod_t, 10)     ) return ESC;
                            

     }

   }
  if ( rec_info == 1 )  CTabl.STextS("Info",rec_line, static_cast_to_string(str_info));

  if ( info_gl == 0 )  CTabl.STextS("Info",2, static_cast_to_string(str_1));
  if ( info_gl  > 0 )
   {
    char info_r[90];
    sprintf(info_r,"%s %d",static_cast_to_string(str_2), info_gl);  FreeSpaceString(info_r,3,"");
    CTabl.STextS("Info",2, static_cast_to_string(info_r));
   }

  //  CTabl.Rewrite();
}



