Код: Выделить всё
.form 'Imp_540'
.ard
.nameinlist 'Загрузить сведения по ЗП'
.var
   file,n,c: longint;
   i,i_eof : integer; // позиция список
   j,j_eof : integer; // позиция цех
   s: string;
   _prop,_Tabn,_fio: array [1..5000] of string;
   _LS: array [1..5000] of comp;
   _Sum: array [1..5000] of double;
   _f : array [1..5] of integer;
   _s : array [1..5] of string;
   _cex : array [1..100] of comp;
   fl_j : byte;
   _dDate :date;
   _mnrec :word;
.endvar
.create view T1
  var
    _NrecLS :comp;
as
select
  lschet.cex,
  lschet.tabn
from
  lschet
where
  ((_NrecLS == lschet.nrec))
;
!.create view t2 as select * from sys_mbf;
.begin
  i:=1;
  _mnrec:=9999;
  _dDate:=date(30,06,2012);
  file:= CreateFileHandle('xxx');
  File_OpenFile('D:\Temp\ZP\limit.txt', stOpenRead, file);
  While not File_EOF(file) do begin
    file_readln(s, file);
!********Пропуск
    _f[1]:=pos(';',s);
    _Prop[i]:=subStr(s,1,_f[1]-1);
!********Табельный номер
    _s[2]:=subStr(s,length(_Prop[i])+2,length(s)-length(_Prop[i]));
    _f[2]:=pos(';',_s[2]);
    _tabn[i]:=subStr(_s[2],1,_f[2]-1);
!********ФИО
    _s[3]:=subStr(_s[2],length(_tabn[i])+2,length(_s[2])-length(_Tabn[i]));
    _f[3]:=pos(';',_s[3]);
    _fio[i]:=subStr(_s[3],1,_f[3]-1);
!********Лицевой счет
    _s[4]:=subStr(_s[3],length(_fio[i])+2,length(_s[3])-length(_fio[i]));
    _f[4]:=pos(';',_s[4]);
    _LS[i]:=comp(subStr(_s[4],1,_f[4]-1));
!********Сумма
    _s[5]:=subStr(_s[4],length(_LS[i])+2,length(_s[4])-length(_LS[i]));
    _f[5]:=pos(';',_s[5]);
    _Sum[i]:=Double(subStr(_s[5],1,_f[5]-1));
    i_eof:=i;
    i:=i+1;
  end;
  i:=1;
  DeleteFileHandle(file);
  j_eof:=1;
end.
.fields
!  _Ls[i] t1._nrecls T1.lschet.cex fl_j
  j_eof-1
.endfields
.begin
  while i<=i_eof
    T1._loop
      {
         begin
           T1._nrecls:=comp(_ls[i]);
           fl_j:=0;
           for (j:=1;j<=j_eof;j:=j+1)
             if _cex[j]=t1.lschet.cex then fl_j:=1;
           if fl_j=0
             begin
               _cex[j_eof]:=t1.lschet.cex;
               j_eof:=j_eof+1;
               _mnrec:=_mnrec+1;
               insert
                 sys_mbf
               set
                 mnrec:=_mnrec,
                 nmnem:='В счет ЗП от '+string(_dDate)+' Имп',
                 cex:=_cex[j_eof-1],
                 choice := 1,
                 koff:=1,
                 kassir:=65535,
                 datan := _dDate,
                 datok := _dDate;
             end;
           i:=i+1;
         end;
      }
end.
                                         ^
.endForm