ACS TO ACS3
Материал из Фабиус wiki
Версия от 08:29, 15 января 2018; Hisava (обсуждение | вклад)
ACS_TO_ACS3 - это частная программа для USR
см. ALL_TO_ALL, документ UTH
ACS_TO_ACS3( data )
Текст
parameters data global _acs_to_acs_ _acs_to_acs_ := false local uth1, del, rg, path, sql, aa, msg if EMPTY( data ) data := Date() endif path := '\\FABIUS\FABIUS\OPDATA' del := [ KINDDOC = 'UTH' and LVLNUM = '1' ] uth1 := OpenChildDoc( 'UTH', '1', ~ParentForm := "", ~IsCondition := false, ~Month := Month( data ), ~Year := Year( data ) ) ( uth1 )->( SetFilter( del ) ) ( uth1 )->( Refresh() ) ( uth1 )->( DbGoTop() ) try while !( uth1 )->( eof() ) WaitMsg( 'Дополнительная обработка документа номер ' + ( uth1 )->NUMDOC + ' от ' + ( uth1 )->DATDOC + Chr( 10 ) + 'UTH ' + RealName( 'R169', 'UTH' ), msg ) rg := ( uth1 )->USR_RGNUM if !Empty( rg ) // теперь делаем запрос по черной базе и достаем PARENT sql := [ Select PARENT ; From DOCS] + Ret_f_ext( data ) + [ ; Where ] + del + [ and RGNUM = '] + rg + [' ] aa := SqlToArr( sql, { 'PARENT' }, path ) if !IsEmpty( aa ) // aa[1,1] - это RGNUM счет-фактуры в управленческом учете // ищем эту счет-фактуру в налоговом учете sql := [ Select RGNUM ; From DOCS] + Ret_f_ext( data ) + [ ; Where KINDDOC = 'ACS' and LVLNUM = '1' and Trim( ] + SqlField( 'USR_RGNUM',, 'sql_char' ) + [ ) = '] + aa[1,1] + [' ] aa := SqlToArr( sql, { 'RGNUM' } ) if !IsEmpty( aa ) try _acs_to_acs_ := true // теперь aa[1,1] - это RGNUM счет-фактуры в налоговом учете ( uth1 )->PARENT := Padl( aa[1,1], 8 ) finally _acs_to_acs_ := false end endif endif endif ( uth1 )->( DbSkip() ) end finally HideMsg( msg ) end sql := [ Update uth2 ; Set uth2.EXTPARENT = uth1.PARENT ; From DOCS] + Ret_f_ext( data ) + [ uth1 ; left outer join DOCS] + Ret_f_ext( data ) + [ uth2 ON uth1.RGNUM = uth2.PARENT ; Where uth1.KINDDOC = 'UTH' and uth1.LVLNUM = '1' and uth2.KINDDOC = 'UTH' and uth2.LVLNUM = '2' ] SimpleSql( sql, OpdataPath ) // в документе UTH1 сохраняется RGNUM из базы управленческого учета в поле USR_RGNUM // 1. Ищем документ uth1 в "черной" базе с помощью реквизита USR_RGNUM // в документе UTH1 в поле PARENT прописывется RGNUM счета-фактуры // этот же самый RGNUM прописывается в номенклатуре в поле EXTPARENT // номенклатура - это UTH2