Message ( &Arg,  &pcT, W, A)
//////////////////////////////////////////////////////////////////
// Сообщение(парам1,парам2)
// парам1 - текст сообщения
// парам2 - заголовок окна
//////////////////////////////////////////////////////////////////
{
   var FuncParam =  CreateObject("ParamFuncRW");
   FuncParam.IInitial(static_cast_to_string(Arg),",",10);
   int CountParam=FuncParam.Count();

   if ( CountParam )
   {
      MessageBox(0,FuncParam.Get(0),FuncParam.Get(1),1);
   }
   return pcT;
}
ExtractFrag(sP,CharDiv,Num) //выцепляем фрагмент строки от Num CharDiv до следующей CharDiv
{
 char Ret[257];
 int i=0;
 int j=0;
 int cntDiv=0;
 int j1=0;
 while(strlen(sP)-1>i && Num>0) //Встаем на начало фрагмента
 {
  if (sP[i]==CharDiv) cntDiv++;
  i++;
  if (cntDiv>=Num) break;
 };
 while(strlen(sP)-1>i && sP[i]!=CharDiv)
 {
  Ret[j]=sP[i];
  j++;
  i++;
 };
 Ret[j]='\0';
 string Ret1=Ret;
 return Ret1;
}
FragAddress( &Arg,  &pcT, W, A)
// из строки adrs берем чего надоть.
{
 char Str[255]; 
 char Rez[256];
 char s1[256];
 int i; 
 char RezDocCode[3];
 var Par=CreateObject("ParamFuncRW");            //можно анализировать параметры
 Par.IInitial(static_cast_to_string(Arg),",",3); //можно анализировать параметры
 
 
 R_Face("adres",Rez,256,0);
 i=atoi(Par.Get(0));
 switch(i)
 {
  case 0:
   s1=ExtractFrag(Rez,',',i);
   break;
  case 1:
   s1=ExtractFrag(Rez,',',i);
   break;
  case 2:
   s1=" ";
   break;
  case 3:
   s1=ExtractFrag(Rez,',',i);
   break;
  case 4:
   s1=" ";
   break;
  case 5:
   s1=ExtractFrag(Rez,',',i);
   break;
  case 6:
   s1=ExtractFrag(Rez,',',i);
   break;
  case 7:
   s1=" ";
   break;
  case 8:
   s1=ExtractFrag(Rez,',',i);
   break;
  case 9:
   s1="Г";
   break;
  case 10:
   s1="РОССИЯ";
   break;
  default:
   s1=" ";
 }
 sprintf(Str,"%s",s1);
 Text_Text(pcT,Str,W);
 //Double_Text(pcT,s*100,A,W);
 return pcT;

}
FragPasport( &Arg,  &pcT, W, A)
//хочется получить из passport нужную часть: серию, номер, кем, когда и пр.
{

 char Str[255]; 
 char Rez[256]; 
 char sTmp[256];
 char s1[256];  
 int iTmp;
 int i; 
 char RezDocCode[3];
 char Korka[6250];
 var Par=CreateObject("ParamFuncRW");            //можно анализировать параметры
 Par.IInitial(static_cast_to_string(Arg),",",3); //можно анализировать параметры
 
 
//  RezDocCode=R_Face("doc_code",RezDocCode,2,0); 
  R_Face("doc_code",RezDocCode,2,0); 
  R_Face("pasport",Rez,256,0);
// паспорта СССР игнорируем
  if (RezDocCode=="01")  //Это паспорт СССР
  {
   s1[0]='-';
   s1[1]='\0';
   sprintf(Str,"%s",s1);
   Text_Text(pcT,Str,W);
   return pcT;
  }


//  strcpy(s1,Rez,255);
  for(i=0;i<256;i++) s1[i]=Rez[i];

   if (Par.Get(0)=="SERN") 
   {
    if (RezDocCode=="01")  //Это паспорт СССР
    {
     sTmp=strstr(Rez,"-");
     iTmp=strlen(s1)-strlen(sTmp)+1;
     s1[iTmp]='\0';
    }
    if (RezDocCode=="21")
    {
     s1[2]='\0';
    }
   }
   if (Par.Get(0)=="SERS") 
   {
    if (RezDocCode=="01") 
    {
     sTmp=strstr(Rez,"-");
     for(i=0;i<strlen(sTmp)-1;i++)
     {
      if(sTmp[i+1]==',')  break;
      s1[i]=sTmp[i+1];
     }
     s1[i]='\0';
    }
    if (RezDocCode=="21")  //Это паспорт РФ
    {
     sTmp=s1;
     for(i=0;i<strlen(sTmp)-3;i++)
     {
      if(sTmp[i+3]==',')  break;
      s1[i]=sTmp[i+3];
     }
     s1[i]='\0';
    }
   }
   if (Par.Get(0)=="NUM") 
   {
    sTmp=strstr(Rez,",");
    for(i=0;i<strlen(sTmp)-1;i++)
    {
     if(sTmp[i+1]==',')  break;
     s1[i]=sTmp[i+1];
    }
    s1[i]='\0';
   }
   if (Par.Get(0)=="VIDAN") 
   {
    sTmp=RTrim(strstr(Rez,","));
    for(i=0;i<strlen(sTmp)-1;i++) s1[i]=sTmp[i+1];
    s1[i]='\0';
    sTmp=RTrim(strstr(s1,","));
    for(i=0;i<strlen(sTmp)-1;i++)
    {
     if(sTmp[i+1]==',')  break;
     s1[i]=sTmp[i+1];
    }
    s1[i]='\0';
   }
   if (Par.Get(0)=="DATE") 
   {
    sTmp=RTrim(strstr(Rez,","));
    for(i=0;i<strlen(sTmp)-1;i++) s1[i]=sTmp[i+1];
    s1[i]='\0';
    sTmp=RTrim(strstr(s1,","));
    for(i=0;i<strlen(sTmp)-1;i++) s1[i]=sTmp[i+1];
    s1[i]='\0';
    sTmp=RTrim(strstr(s1,","));
    for(i=0;i<strlen(sTmp)-1;i++)
    {
     s1[i]=sTmp[i+1];
    }
    s1[i]='\0';
   }
// double s=atof(GetVarValue(Par.Get(1)));
// string sd=GetVarValue(Par.Get(0));
 sprintf(Str,"%s",s1);
 Text_Text(pcT,Str,W);
 //Double_Text(pcT,s*100,A,W);
 return pcT;
}