Пример исправления битых пар в СМ без перегенерации проводок

Last modified by Nefedenkova Viktoria on 2021/11/30 16:58

При наличии явных проблем с сальдо нужно проверить наличие пар "сломанных" проводок, а именно: нужно открыть форму Тесты в меню Сервис или нажать Alt+F11 на клавиатуре.

01.png

Затем выбрать Битые пары СМ и нажать на кнопку Выбранный тест.

1.png

Результат выполнения выглядит так:

2.png

В UNA-desktop проводки записываются так: sptype=1 - это развёрнутая с минусом КT часть из sptype=0, записанная в ДT, чтобы при необходимости, можно было считать остатки только по ДT.

Ниже приведён пример исправления битых пар в СМ без перегенерации проводок, то есть проверочный запрос по TMDB_CM, выявляющий нестыковки между оригинальной и дублирующей записью с TMDB_CM.  Файл в формате SQL.

   select dt,ct,
   sptype , sum (suma)
   ct1,ctsc,ctdep,ctsc1,ctnrdoc,ctstrsc,ctnrcm,sumavalct,valutact,ctdata,ctcant1
   
,cant,suma,sumagaap,f,m,dtdiv,ctdiv
    from tmdb_cm where
    sptype=0
    
and dt<9000
    and
    nrdoc=404218
    group by dt,ct,sptype
   
   
select * 
countstar
 from (
    (select  nrdoc,cod,sptype,
    data,funct,isvalid,codfcdebaza,nrdocfcdebaza
    ,ct,ct1,ctsc,ctdep,ctsc1,ctnrdoc,ctstrsc
    ,ctnrcm,sumavalct,valutact,ctdata,ctcant1
    ,cant,suma,sumagaap
    
,f,m,ctdiv
    from tmdb_cm where nrdoc=333567 404218
    
and cod=4509799
      and sptype=0)
  union all -
   minus
 (  select nrdoc,cod,sptype,
 data,funct,isvalid,codfcdebaza,nrdocfcdebaza
     ,dt,dt1,dtsc,dtdep,dtsc1,dtnrdoc,dtstrsc
     ,dtnrcm,-sumavaldt,valutadt,dtdata,-dtcant1 dtcant1
     ,-cant cant,-suma suma, -sumagaap  sumagaap
     
,f,m,dtdiv  
     from tmdb_cm where nrdoc=333567 404218
   
  and cod=4509799
      and sptype=1)
    )
    order by cod
   
   
 select *  from tmdb_cm where nrdoc=404218 -
 333567 
404218
   and cod=4509799



 select * from tmdb_cm where sptype=1 and (nrdoc,cod) in (
 select nrdoc,cod  countstar
 from (
    (select  nrdoc,cod,
sptype,
    data,funct,isvalid,codfcdebaza,nrdocfcdebaza
    ,ct,ct1,ctsc,ctdep,ctsc1,ctnrdoc,ctstrsc,ctnrcm,sumavalct,valutact,ctdata,ctcant1
    ,cant,suma,sumagaap
   ,f,m,ctdiv
    from tmdb_cm where data>='01.01.2008' 
nrdoc=404218
     and dt<9000
    and sptype=0)
  union all -
   minus
 (  select nrdoc,cod,sptype,
 data,funct,isvalid,codfcdebaza,nrdocfcdebaza
     ,dt,dt1,dtsc,dtdep,dtsc1,dtnrdoc,dtstrsc,dtnrcm,-sumavaldt,valutadt,dtdata,-dtcant1 dtcant1
     ,-cant cant,-suma suma, -sumagaap  sumagaap
     
,f,m,dtdiv  
     from tmdb_cm where data>='01.01.2008'  nrdoc=404218  
     and sptype=1)
    )
   order by cod
 )


 update tmdb_cm a set suma=(select -suma from tmdb_cm b where b.sptype=0 and  a.nrdoc=b.nrdoc and a.cod=b.cod)
 where sptype=1 and data>='01.01.2008'  and (nrdoc,cod) in (
 select nrdoc,cod  countstar
 from (
    (select  nrdoc,cod,
sptype,
    data,funct,isvalid,codfcdebaza,nrdocfcdebaza
    ,ct,ct1,ctsc,ctdep,ctsc1,ctnrdoc,ctstrsc,ctnrcm,sumavalct,valutact,ctdata,ctcant1
    ,cant,suma,sumagaap
   ,f,m,ctdiv
    from tmdb_cm where data>='01.01.2008' 
nrdoc=404218
     and dt<9000
    and sptype=0)
  union all -
   minus
 (  select nrdoc,cod,sptype,
 data,funct,isvalid,codfcdebaza,nrdocfcdebaza
     ,dt,dt1,dtsc,dtdep,dtsc1,dtnrdoc,dtstrsc,dtnrcm,-sumavaldt,valutadt,dtdata,-dtcant1 dtcant1
     ,-cant cant,-suma suma, -sumagaap  sumagaap
     
,f,m,dtdiv  
     from tmdb_cm where data>='01.01.2008'  nrdoc=404218  
     and sptype=1)
    )
   order by cod
 )

  update tmdb_cm a set dtnrdoc=(select ctnrdoc from tmdb_cm b where b.sptype=0 and  a.nrdoc=b.nrdoc and a.cod=b.cod)
 where sptype=1 and data>='01.01.2008'  and (nrdoc,cod) in (
 select nrdoc,cod  countstar
 from (
    (select  nrdoc,cod,
sptype,
    data,funct,isvalid,codfcdebaza,nrdocfcdebaza
    ,ct,ct1,ctsc,ctdep,ctsc1,ctnrdoc,ctstrsc,ctnrcm,sumavalct,valutact,ctdata,ctcant1
    ,cant,suma,sumagaap
   ,f,m,ctdiv
    from tmdb_cm where data>='01.01.2008' 
nrdoc=404218
     and dt<9000
    and sptype=0)
  union all -
   minus
 (  select nrdoc,cod,sptype,
 data,funct,isvalid,codfcdebaza,nrdocfcdebaza
     ,dt,dt1,dtsc,dtdep,dtsc1,dtnrdoc,dtstrsc,dtnrcm,-sumavaldt,valutadt,dtdata,-dtcant1 dtcant1
     ,-cant cant,-suma suma, -sumagaap  sumagaap
     
,f,m,dtdiv  
     from tmdb_cm where data>='01.01.2008'  nrdoc=404218  
     and sptype=1)
    )
   order by cod
 )