memvar getlist
local cResScreen, aSetMin, bKey13, cNumDoc, cLine
private cTDCode:=tdocsh->dtype
if !eof()
cResScreen:=savescreen()
aSetMin := SaveSet()
bKey13:=setkey(13, nil)
dbpush()
netuse('utdtype', 'salary\tdtypes')
utdtype->(ordsetfocus('_01'), ;
MakeRefer('utdref', 'Справочник типов табличных документов', 1, {'Код', 'Наименование', 'Код н/у'}, {3, 3, 7}, 'n/w,w+/n', {'DTYPE'}, {'cTDCode'}, 'Upper(cTDCode)', ;
{{|| field->dtype}, {|| field->name}, {|| field->inout}}))
ShadowBox(' Выбор типа ТД для копирования ',10,02,12,47,"N/BG")
getlist:={}
@ 11,04 SAY "Копировать в ТД.:" COLOR "N/BG" GET cTDCode COLOR "N/W,GR+/N" valid !empty(cTDCode)
GetList[1]:reader:={|oGet| refergetreader(oGet, 'utdref') }
READ
RestScreen(,,,,cResScreen)
setkey(13, bKey13)
if lastkey()<>27 .and. utdtype->(dbseek(upper(cTDCode))) .and. yesorno('Копировать список работников из этого ТД'+chr(10)+chr(13)+'в ТД '+cTDCode+' '+alltrim(utdtype->name))
netuse('utdh', 'salary\tdocsh')
netuse('utdc', 'salary\tdocsc')
netuse('utdcols', 'salary\tdcols')
cLine:=utdcols->(ordsetfocus('_01'), setscope('upper(dtype)', upper(cTDCode)), dbgobottom(), if(eof(), '', replicate('0 0', scopecount())))
cNumDoc:=utdh->(ordsetfocus('_01'), setscope('upper(dtype)', upper(cTDCode)), dbgobottom(), if(eof(), '000001', next(field->code)))
utdh->(addrec(), gather(tdocsh->(scatter())), field->dtype:=cTDCode, field->code:=cNumDoc, field->status:='1', field->atotals:=cLine, field->rowid:=xguid(), f_dbunlock())
tdocsc->(ordsetfocus('_01'), setscope('upper(dtype+code)', upper(tdocsh->dtype+tdocsh->code)), ;
dbeval({|| utdc->(addrec(), field->dtype:=cTDCode, field->code:=cNumDoc, field->tnum:=tdocsc->tnum, field->asums:=cLine, field->rowid:=xguid(), f_dbunlock()) }), setscope())
sayandwait('Список работников скопирован.'+chr(10)+chr(13)+'Создан новый ТД с кодом '+cTDCode+' и номером '+cNumDoc)
utdh->(dbclosearea())
utdc->(dbclosearea())
utdcols->(dbclosearea())
endif
utdtype->(dbclosearea())
dbpop()
RestSet(aSetMin)
endif
return
|