ORL 170922 — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) (Новая страница: «ORL_170922 - это сведения из справочника R238 = Смотрите также = R238») |
Hisava (обсуждение | вклад) м |
||
| Строка 1: | Строка 1: | ||
[[ORL_170922]] - это сведения из справочника [[R238]] | [[ORL_170922]] - это сведения из справочника [[R238]] | ||
| + | Движение по товарам | ||
| + | [[Магазин]] - Сведения - Движение товаров с начала месяца по дату | ||
| + | = Условие отбора = | ||
| + | public aa40, aa70 | ||
| + | local r20_kod, id, fld, sql, _, _2, msg | ||
| + | id := InputDate() | ||
| + | if Empty( id ) | ||
| + | return | ||
| + | endif | ||
| + | r20_kod := GETPARAM( 'TASKANAL' ) | ||
| + | M->QwrTitle := ' ( ' + BOM( id ) + ' - ' + id + ' ) ' + RealName( 'R20', r20_kod ) + ' ( ' + r20_kod + ' )' | ||
| + | aa40 := 'Остаток;на утро;' + BOM( id ) | ||
| + | aa70 := 'Остаток;на вечер;' + id | ||
| + | try | ||
| + | WaitMsg( 'Подготовка данных', msg ) | ||
| + | fld := ' _0,C,10; _1,C,4; _2,N,5; _3,C,40; _4,N,14,4; _5,N,14,4; _6,N,14,4; _7,N,14,4; _8,C,40; _9,C,40; ' | ||
| + | _ := CreateTmpFile( fld, '_', ~IsFreeDel := true, ~Own := Self ) | ||
| + | _2 := CreateTmpFile( fld, '_2', ~IsFreeDel := true, ~Own := Self ) | ||
| + | // _4 остаток на начала месяца | ||
| + | sql := [ Select REFL, KOD, BAMNT From MTUN] + Ret_f_ext( id ) + [ Where BKACNT = '41.2 ' and REFLANAL = 'R20 ' and ; | ||
| + | ANAL = ] + r20_kod + [ and KOD > 0 and BAMNT <> 0 ] | ||
| + | SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2, _4 ) ] + sql, OpdataPath ) | ||
| + | // _5 приход | ||
| + | sql := [ Select DREFL2, DANAL2, AMNT From PRVS] + Ret_f_ext( id ) + [ Where DEBT = '41.2 ' and DREFL1 = 'R20 ' and ; | ||
| + | DANAL1 = ] + r20_kod + [ AND DANAL2 > 0 and AMNT <> 0 and DATDOC <= '] + SqlDate( id ) + [' ] | ||
| + | SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2, _5 ) ] + sql, OpdataPath ) | ||
| + | // _6 расход | ||
| + | sql := [ Select KREFL2, KANAL2, AMNT From PRVS] + Ret_f_ext( id ) + [ Where KRED = '41.2 ' and KREFL1 = 'R20 ' and ; | ||
| + | KANAL1 = ] + r20_kod + [ AND KANAL2 > 0 and AMNT <> 0 and DATDOC <= '] + SqlDate( id ) + [' ] | ||
| + | SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2, _6 ) ] + sql, OpdataPath ) | ||
| + | // r08 | ||
| + | sql := [ Delete From ] + TmpFilePath( _2 ) + [ Where _1 = 'R11 ' ] | ||
| + | SimpleSql( sql, TempPath ) | ||
| + | // _2 -> _ | ||
| + | sql := [ Select _2, Sum( _4 ), Sum( _5 ), Sum( _6 ) From ] + TmpFilePath( _2 ) + [ Group by _2 ] | ||
| + | SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _2, _4, _5, _6 ) ] + sql, TempPath ) | ||
| + | // _7 остаток на дату | ||
| + | sql := [ Update ] + TmpFilePath( _ ) + [ Set _7 = _4 + _5 - _6 ] | ||
| + | SimpleSql( sql, TempPath ) | ||
| + | // r08 | ||
| + | sql := [ Update _ Set _0 = CODEGROUP, _3 = Left( PNAME, 40 ) From ] + TmpFilePath( _ ) + [ _ left outer join R08 ON _2 = KOD ] | ||
| + | SimpleSql( sql, ReflisPath ) | ||
| + | ( _ )->( DbGoTop() ) | ||
| + | while !( _ )->( eof() ) | ||
| + | ( _ )->_8 := Left( FULLNAMEGROUP2( 'R08', ( _ )->_0, 3 ), 40 ) | ||
| + | ( _ )->_9 := Left( FULLNAMEGROUP2( 'R08', ( _ )->_0, 4 ), 40 ) | ||
| + | ( _ )->( DbSkip() ) | ||
| + | end | ||
| + | ( _ )->( DbGoTop() ) | ||
| + | finally | ||
| + | HideMsg( msg ) | ||
| + | end | ||
| + | result := _ | ||
| + | // _0 группа | ||
| + | // _1 справочник | ||
| + | // _2 код | ||
| + | // _3 наименование | ||
| + | // _4 остаток на начала месяца | ||
| + | // _5 приход | ||
| + | // _6 расход | ||
| + | // _7 остаток на дату | ||
| + | // _8 группа, уровень 3 | ||
| + | // _9 группа, уровень 4 | ||
= Смотрите также = | = Смотрите также = | ||
[[R238]] | [[R238]] | ||
Версия 07:58, 2 октября 2017
ORL_170922 - это сведения из справочника R238
Движение по товарам
Магазин - Сведения - Движение товаров с начала месяца по дату
Условие отбора
public aa40, aa70
local r20_kod, id, fld, sql, _, _2, msg
id := InputDate()
if Empty( id )
return
endif
r20_kod := GETPARAM( 'TASKANAL' )
M->QwrTitle := ' ( ' + BOM( id ) + ' - ' + id + ' ) ' + RealName( 'R20', r20_kod ) + ' ( ' + r20_kod + ' )'
aa40 := 'Остаток;на утро;' + BOM( id )
aa70 := 'Остаток;на вечер;' + id
try
WaitMsg( 'Подготовка данных', msg )
fld := ' _0,C,10; _1,C,4; _2,N,5; _3,C,40; _4,N,14,4; _5,N,14,4; _6,N,14,4; _7,N,14,4; _8,C,40; _9,C,40; '
_ := CreateTmpFile( fld, '_', ~IsFreeDel := true, ~Own := Self )
_2 := CreateTmpFile( fld, '_2', ~IsFreeDel := true, ~Own := Self )
// _4 остаток на начала месяца
sql := [ Select REFL, KOD, BAMNT From MTUN] + Ret_f_ext( id ) + [ Where BKACNT = '41.2 ' and REFLANAL = 'R20 ' and ;
ANAL = ] + r20_kod + [ and KOD > 0 and BAMNT <> 0 ]
SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2, _4 ) ] + sql, OpdataPath )
// _5 приход
sql := [ Select DREFL2, DANAL2, AMNT From PRVS] + Ret_f_ext( id ) + [ Where DEBT = '41.2 ' and DREFL1 = 'R20 ' and ;
DANAL1 = ] + r20_kod + [ AND DANAL2 > 0 and AMNT <> 0 and DATDOC <= '] + SqlDate( id ) + [' ]
SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2, _5 ) ] + sql, OpdataPath )
// _6 расход
sql := [ Select KREFL2, KANAL2, AMNT From PRVS] + Ret_f_ext( id ) + [ Where KRED = '41.2 ' and KREFL1 = 'R20 ' and ;
KANAL1 = ] + r20_kod + [ AND KANAL2 > 0 and AMNT <> 0 and DATDOC <= '] + SqlDate( id ) + [' ]
SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2, _6 ) ] + sql, OpdataPath )
// r08
sql := [ Delete From ] + TmpFilePath( _2 ) + [ Where _1 = 'R11 ' ]
SimpleSql( sql, TempPath )
// _2 -> _
sql := [ Select _2, Sum( _4 ), Sum( _5 ), Sum( _6 ) From ] + TmpFilePath( _2 ) + [ Group by _2 ]
SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _2, _4, _5, _6 ) ] + sql, TempPath )
// _7 остаток на дату
sql := [ Update ] + TmpFilePath( _ ) + [ Set _7 = _4 + _5 - _6 ]
SimpleSql( sql, TempPath )
// r08
sql := [ Update _ Set _0 = CODEGROUP, _3 = Left( PNAME, 40 ) From ] + TmpFilePath( _ ) + [ _ left outer join R08 ON _2 = KOD ]
SimpleSql( sql, ReflisPath )
( _ )->( DbGoTop() )
while !( _ )->( eof() )
( _ )->_8 := Left( FULLNAMEGROUP2( 'R08', ( _ )->_0, 3 ), 40 )
( _ )->_9 := Left( FULLNAMEGROUP2( 'R08', ( _ )->_0, 4 ), 40 )
( _ )->( DbSkip() )
end
( _ )->( DbGoTop() )
finally
HideMsg( msg )
end
result := _
// _0 группа
// _1 справочник
// _2 код
// _3 наименование
// _4 остаток на начала месяца
// _5 приход
// _6 расход
// _7 остаток на дату
// _8 группа, уровень 3
// _9 группа, уровень 4