TAKE FROM FTP1
Материал из Фабиус wiki
Версия от 11:21, 4 мая 2017; Hisava (обсуждение | вклад)
TAKE_FROM_FTP1 - это программа из справочника R266
Удалить FTL и FRO
TAKE_FROM_FTP1()
Использование
Текст
local temp_path, aaa, ii, r20_kod, folder, file_name, path, fld temp_path := Nice_Path( ExpandUNCFileName( TempPath ) ) aaa := Directory( temp_path + '*', "D" ) for ii := 1 to len( aaa ) if val( aaa[ii,1] ) > 0 r20_kod := val( aaa[ii,1] ) r20_kod := SeekRef( 'R603', r20_kod, 'R20_KOD', 1 ) if !IsEmpty( r20_kod ) folder := temp_path + aaa[ii,1] file_name := Directory( folder + '\*rep*', "A" ) if Empty( file_name ) loop endif if !IsEmpty( file_name ) file_name := file_name[1,1] endif path := Nice_Path( folder ) file_name := path + file_name fld := ' _0,C,200; _1,D,4; _2,C,20; ' file_frontol := AssignFile( file_name ) if Empty( file_frontol ) return endif TextReset( file_frontol ) aa := ReadLn( file_frontol ) // заполнение временной таблицы while !TextEof( file_frontol ) aa := ReadLn( file_frontol ) WaitMsg( Left( aa, 16 ), msg ) if len( aa ) > 10 ( _ )->( DbAppend() ) ( _ )->_0 := aa ( _ )->_1 := CtoD( Token( aa, 2 ) ) ( _ )->_2 := Right( file_name, 20 ) endif end sql := [ Select DISTINCT _1 From ] + TmpFilePath( _ ) aa := SqlToArr( sql, { '_1' } ) aa := PrepareArr( aa ) for i := 1 to len( aa ) data := aa[i] try WaitMsg( 'Удаление ранее загруженных данных за ' + aa[i], msg ) // FTL sql := [ Delete From DOCP] + Ret_f_ext( data ) + [ Where KINDDOC = 'FTL' and DATDOC = '] + SQlDate( data ) + [' and ; DREFL1 = 'R20 ' and DANAL1 = ] + r20_kod + [ and 'SYSTEM.' = 'SYSTEM.' ] // FRO sql := [ Delete From DOCP] + Ret_f_ext( data ) + [ Where KINDDOC = 'FRO' and DATDOC = '] + SQlDate( data ) + [' and ; KREFL1 = 'R20 ' and KANAL1 = ] + r20_kod + [ and 'SYSTEM.' = 'SYSTEM.' ] SimpleSql( sql, OpdataPath ) finally HideMsg( msg ) end next finally if !Empty( file_frontol ) CloseFile( file_frontol ) endif CloseTable( _ ) HideMsg( msg ) end endif endif next // _0 - текст из файла ( одна строка ) // _1 - дата // _2 - путь к файлу