CREATE PLAN NHC 2
Материал из Фабиус wiki
Версия от 09:49, 27 июля 2017; Hisava (обсуждение | вклад)
CREATE_PLAN_NHC_2 - это функция из справочника R266
Текст
parameters kod local fld, sql, t, aa, r, msg, i fld := ' t_KOD,N,5; t_NAME,C,60; t_1,N,14,4; t_2,N,14,8; ' try msg := WaitMsg( RealName( 'R11', kod, true ) ) sql := [ Delete From R71 Where KODPROD = ] + kod + [ and VAR_NUM = 10 ] SimpleSql( sql, ReflisPath ) t := CreateTmpFile( fld, 't', ~IsFreeDel := true ) r := Div_z( 1000, R11Wght( kod ), 4 ) aa := CREATE_PLAN_NHC_3( kod ) if !IsEmpty( aa ) for i := 1 to len( aa ) ( t )->( DbAppend() ) ( t )->t_KOD := aa[i,1] ( t )->t_1 := aa[i,2] ( t )->t_2 := Div_z( aa[i,2], r, 8 ) next endif // плановая рецептура - рецептура номер 10 // --- R264 --- sql := [ Select KOD ; From R264 ; Where KOD = ] + str( kod ) + '00010' aa := SqlToArr( sql, {'KOD'}, ReflisPath ) if IsEmpty( aa ) sql := [ Insert into R264( KOD, KODPROD, VAR_NUM, PNAME ) ; Values ( ] + str( kod ) + '00010' + [, ] + kod + [, 10, 'рецептура 10' ) ] SimpleSql( sql, ReflisPath ) endif // *** R264 *** fld := 'r_KODPROD,N,5; r_R264KOD,N,10; r_VAR_NUM,N,5; r_REFL,C,4;; r_KOD,N,5; r_TON_AMNT,N,11,4; r_UNIT_AMNT,N,14,8; ' r := CreateTmpFile( fld, 'r', ~IsFreeDel := true ) ( t )->( DbGoTop() ) while !( t )->( eof() ) ( r )->( DbAppend() ) ( r )->r_KODPROD := kod ( r )->r_R264KOD := val( str( kod ) + '00010' ) ( r )->r_VAR_NUM := 10 ( r )->r_REFL := 'R08 ' ( r )->r_KOD := ( t )->t_KOD ( r )->r_TON_AMNT := ( t )->t_1 ( r )->r_UNIT_AMNT := ( t )->t_2 ( t )->( DbSkip() ) end sql := [ Select r_KODPROD, r_R264KOD, r_VAR_NUM, r_REFL, r_KOD, r_TON_AMNT, ; r_UNIT_AMNT ; From ] + TmpFilePath( r ) SimpleSql( [ Insert into R71( KODPROD, R264KOD, VAR_NUM, REFL, KOD, ; TON_AMNT, UNIT_AMNT ) ] + sql, ReflisPath ) finally CloseTable( r ) CloseTable( t ) HideMsg( msg ) end // t // t_KOD - код сырья или материала // t_NAME - наименование // t_1 - количество на тонну // t_2 - количество на единицу // r // r_KODPROD - // t_R264KOD - // r_VAR_NUM - // r_REFL - // r_KOD - // r_TON_AMNT - // r_UNIT_AMNT -