SRG 20170425 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м (→Текст) |
Hisava (обсуждение | вклад) м (→Текст) |
||
| (не показано 10 промежуточных версий этого же участника) | |||
| Строка 4: | Строка 4: | ||
= Текст = | = Текст = | ||
| − | local fld, sql, taskanal, __, file_name, temp_path, myarch, ftp, host, port, user, pass, dest_path, to_atolf | + | local fld, sql, taskanal, __, file_name, temp_path, myarch, ftp, host, port, user, pass, dest_path, to_atolf, set_to_atolf, i, aa |
| − | taskanal := | + | temp_path := Nice_Path( ExpandUNCFileName( TempPath ) ) |
| − | if | + | // удалить все из временной папки |
| + | ClearDir( temp_path ) | ||
| + | |||
| + | set_to_atolf := true | ||
| + | |||
| + | if UserKod = 107 | ||
| + | set_to_atolf := YesNo( 'Устанавливать файл - флаг ?', false ) | ||
| + | endif | ||
| + | |||
| + | taskanal := GetPrm( 'TASKANAL', TaskName, TaskNum ) | ||
| + | if Empty( taskanal ) | ||
return | return | ||
endif | endif | ||
| − | fld := ' _1,C,20; _2,C,20; _3,C,20; _4,C,20; _5,C,80; _6,C,30; _7,N,5; _8,C,30; _9,C,30; ' | + | fld := ' _1,C,20; _2,C,20; _3,C,20; _4,C,20; _5,C,80; _6,C,30; _7,N,5; _8,C,30; _9,C,30; _11,C,25; _13,C,25; ' |
try | try | ||
__ := CreateTmpFile( fld, '__', ~IsFreeDel := true ) | __ := CreateTmpFile( fld, '__', ~IsFreeDel := true ) | ||
| − | sql := [ Select FROM_ATOL, FROM_ATOLF, TO_ATOL, TO_ATOLF, FOLDERATOL, FTP_SERVER, FTP_PORT, FTP_LOGIN, FTP_PASS ; | + | sql := [ Select FROM_ATOL, FROM_ATOLF, TO_ATOL, TO_ATOLF, FOLDERATOL, FTP_SERVER, FTP_PORT, FTP_LOGIN, FTP_PASS, FROM_ATOLZ, TO_ATOLZ ; |
From R603 Where R20_KOD = ] + taskanal | From R603 Where R20_KOD = ] + taskanal | ||
| − | SimpleSql( [ Insert into ] + TmpFilePath( __ ) + [( _1, _2, _3, _4, _5, _6, _7, _8, _9 ) ] + sql, ReflisPath ) | + | SimpleSql( [ Insert into ] + TmpFilePath( __ ) + [( _1, _2, _3, _4, _5, _6, _7, _8, _9, _11, _13 ) ] + sql, ReflisPath ) |
| − | Global TO_ATOL | + | Global TO_ATOL, TO_ATOLZ |
| + | |||
| + | i := 0 | ||
| + | file_name := '' | ||
( __ )->( DbGoTop() ) | ( __ )->( DbGoTop() ) | ||
while !( __ )->( eof() ) | while !( __ )->( eof() ) | ||
| − | TO_ATOL := ( __ )->_3 | + | TO_ATOL := atr( ( __ )->_3 ) |
| − | ExportFile( '961' ) | + | TO_ATOLZ := atr( ( __ )->_13 ) |
| + | |||
| + | if !Empty( i ) | ||
| + | // aa := Directory( temp_path + '*spr*', 'A' ) | ||
| + | |||
| + | CopyFile( temp_path + file_name, temp_path + atr( ( __ )->_3 ) ) | ||
| + | |||
| + | endif | ||
| + | |||
| + | if Empty( i ) | ||
| + | if UserKod = 107 | ||
| + | ExportFile( '47' ) | ||
| + | else | ||
| + | ExportFile( '961' ) | ||
| + | endif | ||
| + | endif | ||
// во временной папке лежит файл с именем kpos_1.spr | // во временной папке лежит файл с именем kpos_1.spr | ||
file_name := atr( ( __ )->_3 ) | file_name := atr( ( __ )->_3 ) | ||
temp_path := Nice_Path( ExpandUNCFileName( TempPath ) ) | temp_path := Nice_Path( ExpandUNCFileName( TempPath ) ) | ||
| − | + | myarch := atr( ( __ )->_13 ) | |
| − | + | ||
| − | + | ||
| − | + | ||
RunProcess( [winrar a -dh -ep ] + temp_path + myarch + [ ] + temp_path + file_name ) | RunProcess( [winrar a -dh -ep ] + temp_path + myarch + [ ] + temp_path + file_name ) | ||
| Строка 43: | Строка 68: | ||
pass := atr( ( __ )->_9 ) | pass := atr( ( __ )->_9 ) | ||
| − | |||
myarch := StrTran( myarch, '.zip', '' ) | myarch := StrTran( myarch, '.zip', '' ) | ||
myarch := atr( myarch ) + '.zip' | myarch := atr( myarch ) + '.zip' | ||
| Строка 52: | Строка 76: | ||
WriteTxtFile( { 'файл-флаг' }, to_atolf, temp_path, true ) | WriteTxtFile( { 'файл-флаг' }, to_atolf, temp_path, true ) | ||
| − | FTPPUT( ftp, temp_path + to_atolf, dest_path, to_atolf ) | + | |
| + | if set_to_atolf | ||
| + | FTPPUT( ftp, temp_path + to_atolf, dest_path, to_atolf ) | ||
| + | endif | ||
| + | |||
finally | finally | ||
FTPCLOSE( ftp ) | FTPCLOSE( ftp ) | ||
end | end | ||
| + | i := i + 1 | ||
( __ )->( DbSkip() ) | ( __ )->( DbSkip() ) | ||
end | end | ||
| Строка 62: | Строка 91: | ||
finally | finally | ||
CloseTable( __ ) | CloseTable( __ ) | ||
| − | DeleteVars( 'TO_ATOL' ) | + | DeleteVars( 'TO_ATOL', 'TO_ATOLZ' ) |
end | end | ||
| Строка 74: | Строка 103: | ||
// _8 логин | // _8 логин | ||
// _9 пароль | // _9 пароль | ||
| + | // _11 Файл импорта rep в архиве | ||
| + | // _13 Файл экспорта spr в архиве | ||
// \\fabius\Fabius\Frontol\ | // \\fabius\Fabius\Frontol\ | ||
Message( 'Файлы выгружены' ) | Message( 'Файлы выгружены' ) | ||
| + | |||
| + | // 1) имя архива справочников должно быть kpos_1.spr.zip | ||
= Смотрите также = | = Смотрите также = | ||
Текущая версия на 08:42, 11 мая 2017
SRG_20170425 - это программа из справочника R266
Выгрузить файлы на FTP
Текст
local fld, sql, taskanal, __, file_name, temp_path, myarch, ftp, host, port, user, pass, dest_path, to_atolf, set_to_atolf, i, aa
temp_path := Nice_Path( ExpandUNCFileName( TempPath ) )
// удалить все из временной папки
ClearDir( temp_path )
set_to_atolf := true
if UserKod = 107
set_to_atolf := YesNo( 'Устанавливать файл - флаг ?', false )
endif
taskanal := GetPrm( 'TASKANAL', TaskName, TaskNum )
if Empty( taskanal )
return
endif
fld := ' _1,C,20; _2,C,20; _3,C,20; _4,C,20; _5,C,80; _6,C,30; _7,N,5; _8,C,30; _9,C,30; _11,C,25; _13,C,25; '
try
__ := CreateTmpFile( fld, '__', ~IsFreeDel := true )
sql := [ Select FROM_ATOL, FROM_ATOLF, TO_ATOL, TO_ATOLF, FOLDERATOL, FTP_SERVER, FTP_PORT, FTP_LOGIN, FTP_PASS, FROM_ATOLZ, TO_ATOLZ ;
From R603 Where R20_KOD = ] + taskanal
SimpleSql( [ Insert into ] + TmpFilePath( __ ) + [( _1, _2, _3, _4, _5, _6, _7, _8, _9, _11, _13 ) ] + sql, ReflisPath )
Global TO_ATOL, TO_ATOLZ
i := 0
file_name :=
( __ )->( DbGoTop() )
while !( __ )->( eof() )
TO_ATOL := atr( ( __ )->_3 )
TO_ATOLZ := atr( ( __ )->_13 )
if !Empty( i )
// aa := Directory( temp_path + '*spr*', 'A' )
CopyFile( temp_path + file_name, temp_path + atr( ( __ )->_3 ) )
endif
if Empty( i )
if UserKod = 107
ExportFile( '47' )
else
ExportFile( '961' )
endif
endif
// во временной папке лежит файл с именем kpos_1.spr
file_name := atr( ( __ )->_3 )
temp_path := Nice_Path( ExpandUNCFileName( TempPath ) )
myarch := atr( ( __ )->_13 )
RunProcess( [winrar a -dh -ep ] + temp_path + myarch + [ ] + temp_path + file_name )
to_atolf := atr( ( __ )->_4 )
dest_path := atr( ( __ )->_5 )
host := atr( ( __ )->_6 )
port := ( __ )->_7
user := atr( ( __ )->_8 )
pass := atr( ( __ )->_9 )
myarch := StrTran( myarch, '.zip', )
myarch := atr( myarch ) + '.zip'
try
ftp := FTPOPEN( host,, user, pass, ~PassiveMode := true )
FTPPUT( ftp, temp_path + myarch, dest_path, myarch )
WriteTxtFile( { 'файл-флаг' }, to_atolf, temp_path, true )
if set_to_atolf
FTPPUT( ftp, temp_path + to_atolf, dest_path, to_atolf )
endif
finally
FTPCLOSE( ftp )
end
i := i + 1
( __ )->( DbSkip() )
end
finally
CloseTable( __ )
DeleteVars( 'TO_ATOL', 'TO_ATOLZ' )
end
// _1 файл импорта rep
// _2 флаг импорта
// _3 файл экспорта srp
// _4 флаг экспорта
// _5 папка обмена
// _6 FTP-сервер
// _7 порт
// _8 логин
// _9 пароль
// _11 Файл импорта rep в архиве
// _13 Файл экспорта spr в архиве
// \\fabius\Fabius\Frontol\
Message( 'Файлы выгружены' )
// 1) имя архива справочников должно быть kpos_1.spr.zip