NAH 170512
Материал из Фабиус wiki
NAH_170512 - это свод из справочника R238
Условие отбора WHERE
local fld, _, _2, sql, ip, my, end_data, msg ip := INPUTPERIOD( true ) try WaitMsg( 'Подготовка данных', msg ) fld := ' _1,N,5; _2,N,14,4; _3,N,14,4; _4,N,14,4; _5,N,14,4; ' _ := CreateTmpFile( fld, '_', ~IsFreeDel := true, ~Own := Self ) _2 := CreateTmpFile( fld, '_2', ~IsFreeDel := true, ~Own := Self ) if Empty( ip ) return endif M->QwrTitle := ' ( ' + StoD( ip[1] ) + ' - ' + StoD( ip[2] ) + ' )' my := StoD( ip[1] ) end_data := StoD( ip[2] ) + 1 while my <> end_data WaitMsg( 'Подготовка данных за ' + Date_Str( my ) + ' года', msg ) // 28 43 sql := [ Select DANAL2, AMNT From PRVS] + Ret_f_ext( my ) + [ Where DEBT = '28 ' and ; KRED = '43 ' and DATDOC = '] + SqlDate( my ) + [' ] SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _4 ) ] + sql, OpdataPath ) // до переделов sql := [ Update _2 Set _1 = UNTILPACK From ] + TmpFilePath( _2 ) + [ _2 left outer join R11 ON _1 = KOD ; Where UNTILPACK > 0 ] SimpleSql( sql, ReflisPath ) // PAC4 ( только изделия с расходом муки ) sql := [ Select DANAL2, AMNT From DOCP] + Ret_f_ext( my ) + [ Where KINDDOC = 'PAC' and LVLNUM = '4' and DREFL1 = 'R10 ' and DANAL1 > 0 and ; ] + SqlField( 'PAIN_AMNT' ) + [ <> 0 and DATDOC = '] + SqlDate( my ) + [' ] SimpleSql( [ Insert into ] + TmpFilePath( _2 ) + [( _1, _2 ) ] + sql, OpdataPath ) my := my + 1 end // _2 -> _ sql := [ Select _1, Sum( _2 ), Sum( _4 ) From ] + TmpFilePath( _2 ) + [ Group by _1 ] SimpleSql( [ Insert into ] + TmpFilePath( _ ) + [( _1, _2, _4 ) ] + sql, OpdataPath ) // r11 sql := [ Update _ Set _3 = Round( _2 * WEIGHT, 1 ), _5 = Round( _4 * WEIGHT, 1 ) From ] + TmpFilePath( _ ) + [ _ left outer join R11 ON _1 = KOD ] SimpleSql( sql, ReflisPath ) ( _ )->( DbGoTop() ) result := _ // _1 код // _2 выработка, штук // _3 выработка, кг // _4 брак, штук // _5 брак, кг finally HideMsg( msg ) end