// модуль предназначен для приема файла из ОК
//                                - "f:\ok_imp.dbf"   
// вызывается по Alt_F10  из  "Приём данных ОК-->АМБа  (льготники)"

char nt1[4], nt2[4], nt3[4], nt4[4], nt5[4], nt6[4];

  // char NameFile1DBF[256];
  // char NameFile2DBF[256];
  // char NameFile3DBF[256];
  // char NameFile4DBF[256];
  // char NameFile5DBF[256];
  // char NameFile6DBF[256];

   char NameFileDBF[256];
   var TablDbf = CreateObject("CurPrnTbl");

   var CTabl   = CreateObject("CurPrnTbl");

        // Text_Text(NameFileDBF,"f:\\ok_imp.dbf",255);
        // if (Panel_Path("Введите путь и имя файла:",NameFileDBF,1)==ESC) return false;
        // FreeSpaceString(NameFileDBF,2," ");


Dialog( AdrCTabl,     // адрес передаваемой таблицы
       AdrCListTabl, // адрес списка таблиц
       RcrInList      // номер записи в списке таблиц
     )
{
  CTabl.Initial(AdrCTabl);
  CTabl.Clear();   // очистка таблицы


  Text_Text(NameFileDBF,"f:\\ok_imp.dbf",255);
  if (Panel_Path("Введите путь и имя файла:",NameFileDBF,1)==ESC) return false;
  FreeSpaceString(NameFileDBF,2," ");


  ReadDBF(NameFileDBF);


  return 1;
}



ReadDBF(NumFil)
{
 char NmFl[256];
 sprintf(NmFl,"%s",static_cast_to_string(NumFil));
 FreeSpaceString(NmFl,2," ");

 //var WorFl =  "c:\\zakaz\\" + NmFl + ".dbf";
 TablDbf.InitialNameFile(static_cast_to_string(NmFl));

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

       // Начинаем обработку файла построчно
     for ( int RcrDbf=0; RcrDbf<TablDbf.Count_Rcr(); ++RcrDbf )
      {
       int TabN   = atoi(TablDbf.TextS("C_FIO",RcrDbf));
       int KodPod = atoi(TablDbf.TextS("FCpodr",RcrDbf));
       string Fa  = TablDbf.TextS("FCf",RcrDbf);
       string Im  = TablDbf.TextS("FCi",RcrDbf);
       string Ot  = TablDbf.TextS("FCo",RcrDbf);

       string kps  = TablDbf.TextS("CodPS",RcrDbf);
       string prof = TablDbf.TextS("CodLgPr",RcrDbf);
       string lbeg = TablDbf.TextS("DatLgNa",RcrDbf);
       string lend = TablDbf.TextS("DatLgKo",RcrDbf);

       //int KodKat = atoi(TablDbf.TextS("Kateg",RcrDbf));
       //string spz = TablDbf.TextS("FCzatr",RcrDbf);
       //string bal = TablDbf.TextS("Bal",RcrDbf);
       //string tema  = TablDbf.TextS("Tems",RcrDbf);
       //double summ  = atof(TablDbf.TextS("Summ",RcrDbf));
       //double sum1  = atof(TablDbf.TextS("Base_1",RcrDbf));

       FreeSpaceString(prof,2," ");
       if(strlen(prof) > 0) WriTabl(TabN,KodPod,Fa,Im,Ot,kps,prof,lbeg,lend);


      }
}


WriTabl(a1,a2,a3,a4,a5,a6,a7,a8,a9)
{
        string BezKPS = "27-3";   FreeSpaceString(BezKPS,2," ");
        string NewKPS = "123456789";   FreeSpaceString(NewKPS,2," ");
        string KodPR;
        char a77[90];
        sprintf(a77,"%s",static_cast_to_string(a7)); 
        FreeSpaceString(a77,2," ");

        int CurRcr = CTabl.Count_Rcr()-1;
        CTabl.Add_Rcr(CurRcr,1);

        CTabl.STextS("C_FIO",CurRcr, static_cast_to_string(a1));
        CTabl.STextS("FCpodr",CurRcr, static_cast_to_string(a2));
        CTabl.STextS("FCf",CurRcr, static_cast_to_string(a3));
        CTabl.STextS("FCi",CurRcr, static_cast_to_string(a4));
        CTabl.STextS("FCo",CurRcr, static_cast_to_string(a5));

        if(a77 != BezKPS) CTabl.STextS("CodPS",CurRcr, static_cast_to_string(a6));
        if(a77 == BezKPS) CTabl.STextS("CodPS",CurRcr, static_cast_to_string(NewKPS));
        CTabl.STextS("CodLgPr",CurRcr, static_cast_to_string(a7));
        CTabl.STextS("DatLgNa",CurRcr, static_cast_to_string(a8));
        CTabl.STextS("DatLgKo",CurRcr, static_cast_to_string(a9));

}
