|
|
| Строка 2: |
Строка 2: |
| | см. ALL_TO_ALL, документ [[UTH]] | | см. ALL_TO_ALL, документ [[UTH]] |
| | [[ACS_TO_ACS3]]( data ) | | [[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
| |
| | = Смотрите также = | | = Смотрите также = |
| | [[Полезные функции]] | | [[Полезные функции]] |
| | | | |
| | [[Функции Delphi]] | | [[Функции Delphi]] |