Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 процедура разработчика не вызывается из моего приложения  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 581
Есть процедура разработчика. Эту процедуру я пытаюсь вызвать из своего приложения.
В MS процедура выполняется. в моем приложении - нет. Не понятно почему не выполняется.
Больше того, профайлер не видит даже попыток выполнить процедуру.

вот код процедуры
+
/****** Object:  StoredProcedure [dbo].[BookBuyAccFactur_2012]    Script Date: 03/20/2015 09:43:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER OFF
GO

ALTER PROCEDURE  [dbo].[BookBuyAccFactur_2012] --BookBuyAccFactur_2012 '20100101','20120101',0,0,0,5,0,0
	@DateStart  datetime,
	@DateFinish datetime,
	@VidSort    smallint,
	@VidDate    smallint,
	@Currency   smallint,
	@NumDiv     smallint,
	@User       smallint,
	@LogUser    smallint,
	@CheckReport smallint = 0  
AS

--print '111111111111111'

IF @User=-3
BEGIN
	declare @NumDivision smallint
	select @NumDivision = NUM_DIVISION FROM USERS WHERE USERNUM = @LogUser
	
	declare @strNumDivision varchar(10)
	select @strNumDivision = CONVERT(varchar(10),@NumDivision)
END 

CREATE TABLE #TAB_TEMPL_REPORT (
	NUM_ACC_F			 int		  NOT NULL,
    NUM_ACC_FACTUR		 varchar(40)  NOT NULL,
    DATE_ACC_FACTUR		 datetime	  NOT NULL,
    NUM_ACC_EDIT		 varchar(40)  NULL,
    DATE_ACC_EDIT		 datetime     NULL,
    NUM_ACC_CORR		 varchar(40)  NULL,
    DATE_ACC_CORR		 datetime     NULL,
    NUM_ACC_EDIT_CORR    varchar(40)  NULL,
    DATE_ACC_EDIT_CORR	 datetime     NULL,
    NAME_SELL			 varchar(255) NULL, 
    INN_SELL			 varchar(30)  NULL,
    KPPU_SELL			 varchar(30)  NULL,
    DATE_OPL			 datetime	  NULL, 
    DATE_COMING			 datetime	  NULL,
    DATE_REC			 datetime	  NULL, 
    NUM_DECLARE			 varchar(3000)  NULL,
    ALL_SUMMA			 money		  NULL,
    NALOG_EXIST_20_SUMMA money		  NULL,
    NALOG_EXIST_20_NDS   money		  NULL,
    NALOG_EXIST_18_SUMMA money		  NULL,
    NALOG_EXIST_18_NDS   money		  NULL,
    NALOG_EXIST_10_SUMMA money		  NULL,
    NALOG_EXIST_10_NDS   money		  NULL,
    NALOG_EXIST_0_SUMMA  money		  NULL,
    NALOG_FREE_SUMMA	 money		  NULL,
    COUNTRY				 varchar(128) NULL,
    COUNTRY_CODE		 varchar(3)   NULL,
    CURRENCY			 smallint	  NULL,
    DATE_REFLEX			 datetime	  NULL,
    CHECK_REP			 tinyint	  NULL,
    ID_ACC_PARENT		 int		  NULL,
    ID_ACC_CORRECTED	 int		  NULL,
    CODE_KIND_OPER   	 varchar(40)  NULL,
	PLAT_DOC         	 varchar(200)  NULL
                         /*       RESULT   varchar(255)*/
                   )

CREATE TABLE #TAB_TEMPL_REPORT2 (
	NUM_ACC_F             int	 	   NOT NULL, 
	NUM_ACC_FACTUR        varchar(40)  NOT NULL,
	DATE_ACC_FACTUR       datetime	   NOT NULL,
	NUM_ACC_EDIT          varchar(40)  NULL,
	DATE_ACC_EDIT         datetime	   NULL,
	NUM_ACC_CORR          varchar(40)  NULL, 
	DATE_ACC_CORR         datetime	   NULL,
	NUM_ACC_EDIT_CORR     varchar(40)  NULL,
	DATE_ACC_EDIT_CORR    datetime	   NULL, 
	NAME_SELL             varchar(255) NULL,   
	INN_SELL              varchar(30)  NULL,
	DATE_OPL              datetime	   NULL,  
	DATE_COMING           datetime	   NULL,  
	DATE_REC              datetime	   NULL,  
	NUM_DECLARE           varchar(3000)  NULL,
	ALL_SUMMA             money		  NULL,
	NALOG_EXIST_20_SUMMA  money		  NULL,
	NALOG_EXIST_20_NDS    money		  NULL,
	NALOG_EXIST_10_SUMMA  money		  NULL,
	NALOG_EXIST_10_NDS    money		  NULL,
	NALOG_EXIST_0_SUMMA   money		  NULL,
	NALOG_FREE_SUMMA      money		  NULL,
	NUM_ACC_FACTUR_BUY    int	 	    NULL, 
	COUNTRY               varchar(128) NULL,
	COUNTRY_CODE          varchar(3)   NULL,
	CURRENCY              smallint	  NULL,
	DATE_REFLEX           datetime	  NULL,
	NALOG_EXIST_18_SUMMA  money		  NULL,
	NALOG_EXIST_18_NDS    money		  NULL,
	KPPU_SELL             varchar(30)  NULL,
	DATE_SORT             datetime	    NULL, 
	DATE_OPL_EX           varchar(40)  NULL, 
    ALL_SUMMA_RUB         money		     NULL,	
	NALOG_EXIST_20_SUMMA_RUB money		  NULL,	
	NALOG_EXIST_20_NDS_RUB   money		  NULL,	
	NALOG_EXIST_10_SUMMA_RUB money		  NULL,
	NALOG_EXIST_10_NDS_RUB   money		  NULL,	
	NALOG_EXIST_0_SUMMA_RUB  money		  NULL,	
	NALOG_FREE_SUMMA_RUB     money		  NULL,	
	NALOG_EXIST_18_SUMMA_RUB money		  NULL,	
	NALOG_EXIST_18_NDS_RUB   money		  NULL,	
	ID_ACC_CORRECTED         int		  NULL,
	CODE_KIND_OPER            varchar(40)  NULL,
	PLAT_DOC         	 varchar(200)  NULL,
	CURRENCY_NAME             varchar(100)  NULL
	)


declare @strUser varchar(10)
declare @MaxNumArticle int
declare @NumArticle int
select @strUser = CONVERT(varchar(10),@User)


declare @strNumDiv varchar(10)
select @strNumDiv = CONVERT(varchar(10),@NumDiv)


declare @strCurrency varchar(20)
select @strCurrency = CONVERT(varchar(20),@Currency)

declare @strDateStart varchar(8)
select @strDateStart = CONVERT(varchar(8),@DateStart,112)

declare @strDateFinish varchar(8)
select @strDateFinish = CONVERT(varchar(8),@DateFinish,112)





declare @strSQL varchar(8000)
select @strSQL = 'insert into #TAB_TEMPL_REPORT 
select C.ID_ACC_FACTUR,
       C.STR_ACC_FACTUR,
       C.DATE_ACC,
       '''',null,'''',null,'''',null,
       C.NAME_PROVIDER,
       C.INN_PROVIDER,
       C.KPPU_PROVIDER,
       C.DATE_PAY,
       C.DATE_COMING,
       C.DATE_REC,'''',
       0,0,0,0,0,0,0,0,0,'''','''',C.ID_CURRENCY,'
if  @CheckReport = 0  select @strSQL = @strSQL + 'C.DATE_REFLEX,C.CHECK_REP,C.ID_ACC_PARENT,C.ID_ACC_CORRECTED,isnull(C.CODE_OPERATION,''''),C.PLAT_DOC + '' ''+ C.PLAT_DATE  '  
if  @CheckReport = 1  select @strSQL = @strSQL + 'C.DATE_REFLEX,0,C.ID_ACC_PARENT,C.ID_ACC_CORRECTED,isnull(C.CODE_OPERATION,''''),C.PLAT_DOC + '' ''+ C.PLAT_DATE   ' 
        
select @strSQL = @strSQL +  ' from COM_FACTUR_ACC C' 

IF @User=-3 select @strSQL = @strSQL + ',USERS'

select @strSQL = @strSQL + 
	' WHERE C.PAY_BUY = 0 '
if @CheckReport = 0 select @strSQL = @strSQL + 'AND C.CHECK_REP in (0,2) ' 	 
		
select @strSQL = @strSQL + 'AND isnull(C.ID_ACC_PARENT,0) = 0
		AND ((C.ID_CURRENCY='+@strCurrency+' and '+@strCurrency+'<>0) or '+@strCurrency+'=0) '
		
IF @User=-3 select @strSQL = @strSQL + ' AND C.ID_USER_EDIT=USERS.USERNUM
				AND USERS.NUM_DIVISION='+@strNumDivision
ELSE IF @User<>-1 select @strSQL = @strSQL + ' AND C.ID_USER_EDIT='+@strUser

IF @VidDate=0 select @strSQL = @strSQL + ' AND C.DATE_ACC>='''+@strDateStart+'''
		AND C.DATE_ACC<='''+@strDateFinish+''''
ELSE IF @VidDate=1 select @strSQL = @strSQL + ' AND C.DATE_PAY>='''+@strDateStart+'''
		AND C.DATE_PAY<='''+@strDateFinish+''''
ELSE IF @VidDate=2 select @strSQL = @strSQL + ' AND C.DATE_COMING>='''+@strDateStart+'''
		AND C.DATE_COMING<='''+@strDateFinish+''''
ELSE IF @VidDate=3 select @strSQL = @strSQL + ' AND C.DATE_REC>='''+@strDateStart+'''
		AND C.DATE_REC<='''+@strDateFinish+''''
ELSE IF @VidDate=4 select @strSQL = @strSQL + ' AND C.DATE_REFLEX>='''+@strDateStart+'''
		AND C.DATE_REFLEX<='''+@strDateFinish+''''
ELSE select @strSQL = ''
IF @NumDiv <> 0   select @strSQL = @strSQL + 'AND C.NUM_DIVISION = ' + @strNumDiv



exec (@strSQL)




-- заполним исправление
update T set T.NUM_ACC_EDIT = C.EDITION_NUMBER, T.DATE_ACC_EDIT = C.EDITION_DATE,
	T.NAME_SELL = C.NAME_PROVIDER, T.INN_SELL = C.INN_PROVIDER, 
	T.KPPU_SELL = C.KPPU_PROVIDER, CURRENCY = C.ID_CURRENCY, DATE_OPL = C.DATE_PAY
from #TAB_TEMPL_REPORT T, 
	(select C1.ID_ACC_FACTUR,C1.ID_ACC_PARENT, C1.EDITION_NUMBER, C1.EDITION_DATE,
		C1.NAME_PROVIDER, C1.INN_PROVIDER, C1.KPPU_PROVIDER, C1.ID_CURRENCY, C1.DATE_PAY
	from COM_FACTUR_ACC C1
	where C1.EDITION_NUMBER = (select max(C2.EDITION_NUMBER) 
							   from COM_FACTUR_ACC C2 
							   where C2.ID_ACC_PARENT = C1.ID_ACC_PARENT 
							   group by C2.ID_ACC_PARENT ) ) C
where T.NUM_ACC_F = C.ID_ACC_PARENT
  and isnull(T.ID_ACC_CORRECTED,0) = 0


  

-- если была корректировка после исправления:
update #TAB_TEMPL_REPORT set 
	NUM_ACC_EDIT = case when isnull(C.EDITION_NUMBER,0) > 0 then C.EDITION_NUMBER else null end, 
	DATE_ACC_EDIT = case when isnull(C.EDITION_NUMBER,0) > 0 then C.EDITION_DATE else null end,
	ID_ACC_CORRECTED = isnull(C.ID_ACC_PARENT, #TAB_TEMPL_REPORT.ID_ACC_CORRECTED)
from COM_FACTUR_ACC C
where #TAB_TEMPL_REPORT.ID_ACC_CORRECTED = C.ID_ACC_FACTUR


-- заполним корректировочный
update T set T.NUM_ACC_CORR = T.NUM_ACC_FACTUR, T.DATE_ACC_CORR = T.DATE_ACC_FACTUR
from #TAB_TEMPL_REPORT T
where T.ID_ACC_CORRECTED > 0

-- дата и номер счета-фактуры продавца для корректировочного сф
update T set T.NUM_ACC_FACTUR = C.STR_ACC_FACTUR, T.DATE_ACC_FACTUR = C.DATE_ACC
from #TAB_TEMPL_REPORT T, COM_FACTUR_ACC C
where T.ID_ACC_CORRECTED = C.ID_ACC_FACTUR


-- заполним исправление к корректировочному




   update T set T.NUM_ACC_EDIT_CORR = C.EDITION_NUMBER, T.DATE_ACC_EDIT_CORR = C.EDITION_DATE,
	T.NAME_SELL = C.NAME_PROVIDER, T.INN_SELL = C.INN_PROVIDER, 
	T.KPPU_SELL = C.KPPU_PROVIDER, CURRENCY = C.ID_CURRENCY, DATE_OPL = C.DATE_PAY
from #TAB_TEMPL_REPORT T,-- #TAB_TEMPL_REPORT T1,
	(select C1.ID_ACC_FACTUR,C1.ID_ACC_PARENT, C1.EDITION_NUMBER, C1.EDITION_DATE,
		C1.NAME_PROVIDER, C1.INN_PROVIDER, C1.KPPU_PROVIDER, C1.ID_CURRENCY, C1.DATE_PAY
	from COM_FACTUR_ACC C1
	where C1.EDITION_NUMBER = (select max(C2.EDITION_NUMBER) 
							   from COM_FACTUR_ACC C2 
							   where C2.ID_ACC_PARENT = C1.ID_ACC_PARENT 
							   group by C2.ID_ACC_PARENT ) ) C
--where T.ID_ACC_CORRECTED = T1.NUM_ACC_F
--  and T1.NUM_ACC_F = C.ID_ACC_PARENT
--  and isnull(T1.ID_ACC_CORRECTED,0) > 0
  where  T.NUM_ACC_F = C.ID_ACC_PARENT
  and isnull(T.ID_ACC_CORRECTED,0) > 0
  

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.ALL_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_ALL) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR)


UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_20_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =20)

UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_20_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_20_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_20_NDS= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_NDS) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =20)

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_18_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =18)

UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_18_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_18_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_18_NDS= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_NDS) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =18)

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_10_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS<18 AND COM_FACTUR_DEC.NDS>0)

UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_10_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_10_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_10_NDS= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_NDS) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS<18  AND COM_FACTUR_DEC.NDS>0)

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_0_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS=0 and COM_FACTUR_DEC.CHECK_NDS=0)


UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_0_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_0_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_FREE_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.CHECK_NDS=1)


select @NumArticle = 1
select @MaxNumArticle = (select max(NUM_ARTICLE) from COM_FACTUR_DEC,#TAB_TEMPL_REPORT where #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR)

while (@NumArticle <= @MaxNumArticle)
Begin
UPDATE #TAB_TEMPL_REPORT SET #TAB_TEMPL_REPORT.NUM_DECLARE=#TAB_TEMPL_REPORT.NUM_DECLARE +
	(select case when  RTRIM(LTRIM(NUMDECLARE)) <> '' and CHARINDEX(',' + RTRIM(LTRIM(NUMDECLARE)) +'#',#TAB_TEMPL_REPORT.NUM_DECLARE,1)=0 then ',' + NUMDECLARE +'#'  else  '' end  from COM_FACTUR_DEC
	WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
	and COM_FACTUR_DEC.NUM_ARTICLE=@NumArticle )
	WHERE isnull(#TAB_TEMPL_REPORT.ID_ACC_CORRECTED,0) = 0

select @NumArticle = @NumArticle + 1
End
UPDATE #TAB_TEMPL_REPORT SET #TAB_TEMPL_REPORT.NUM_DECLARE = SUBSTRING(#TAB_TEMPL_REPORT.NUM_DECLARE,2,LEN(#TAB_TEMPL_REPORT.NUM_DECLARE)-1)
where #TAB_TEMPL_REPORT.NUM_DECLARE <>''
UPDATE #TAB_TEMPL_REPORT SET #TAB_TEMPL_REPORT.NUM_DECLARE = replace(#TAB_TEMPL_REPORT.NUM_DECLARE,'#','')
where #TAB_TEMPL_REPORT.NUM_DECLARE <>''
--UPDATE #TAB_TEMPL_REPORT SET #TAB_TEMPL_REPORT.NUM_DECLARE=#TAB_TEMPL_REPORT.NUM_DECLARE +
--	(select case when  RTRIM(LTRIM(NUMDECLARE)) <> '' then ',' + NUMDECLARE  else  '' end  from COM_FACTUR_DEC
--	WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
--	and COM_FACTUR_DEC.NUM_ARTICLE=(SELECT  MIN(NUM_ARTICLE)+ 1 FROM COM_FACTUR_DEC
--	WHERE COM_FACTUR_DEC.ID_ACC_FACTUR=#TAB_TEMPL_REPORT.NUM_ACC_F))
--WHERE isnull(#TAB_TEMPL_REPORT.ID_ACC_CORRECTED,0) = 0



UPDATE #TAB_TEMPL_REPORT SET #TAB_TEMPL_REPORT.COUNTRY=
	(select COUNTRY from COM_FACTUR_DEC
	WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
	and COM_FACTUR_DEC.NUM_ARTICLE=(SELECT  MIN(NUM_ARTICLE)FROM COM_FACTUR_DEC
	WHERE COM_FACTUR_DEC.ID_ACC_FACTUR=#TAB_TEMPL_REPORT.NUM_ACC_F))
WHERE isnull(#TAB_TEMPL_REPORT.ID_ACC_CORRECTED,0) = 0

UPDATE #TAB_TEMPL_REPORT SET COUNTRY_CODE = 
	(select NUM_CODE from COM_OKSM
	WHERE  #TAB_TEMPL_REPORT.COUNTRY = COM_OKSM.SMALL_NAME) 
WHERE isnull(#TAB_TEMPL_REPORT.ID_ACC_CORRECTED,0) = 0

update T set T.ALL_SUMMA = (isnull(T.ALL_SUMMA,0) - isnull(T_CORR.ALL_SUMMA,0)),
	T.NALOG_EXIST_20_SUMMA = (isnull(T.NALOG_EXIST_20_SUMMA,0) - isnull(T_CORR.NALOG_EXIST_20_SUMMA,0)),
	T.NALOG_EXIST_20_NDS = (isnull(T.NALOG_EXIST_20_NDS,0) - isnull(T_CORR.NALOG_EXIST_20_NDS,0)),
	T.NALOG_EXIST_10_SUMMA = (isnull(T.NALOG_EXIST_10_SUMMA,0) - isnull(T_CORR.NALOG_EXIST_10_SUMMA,0)),
	T.NALOG_EXIST_10_NDS = (isnull(T.NALOG_EXIST_10_NDS,0) - isnull(T_CORR.NALOG_EXIST_10_NDS,0)),
	T.NALOG_EXIST_0_SUMMA = (isnull(T.NALOG_EXIST_0_SUMMA,0) - isnull(T_CORR.NALOG_EXIST_0_SUMMA,0)),
	T.NALOG_FREE_SUMMA = (isnull(T.NALOG_FREE_SUMMA,0) - isnull(T_CORR.NALOG_FREE_SUMMA,0)),
	T.NALOG_EXIST_18_SUMMA = (isnull(T.NALOG_EXIST_18_SUMMA,0) - isnull(T_CORR.NALOG_EXIST_18_SUMMA,0)),
	T.NALOG_EXIST_18_NDS = (isnull(T.NALOG_EXIST_18_NDS,0) - isnull(T_CORR.NALOG_EXIST_18_NDS,0))
from #TAB_TEMPL_REPORT T, #TAB_TEMPL_REPORT T_CORR
where T_CORR.NUM_ACC_F = T.ID_ACC_CORRECTED

update T set T.ALL_SUMMA = case when T.ALL_SUMMA = 0 then null else T.ALL_SUMMA end,
	T.NALOG_EXIST_20_SUMMA = case when T.NALOG_EXIST_20_SUMMA = 0 then null else T.NALOG_EXIST_20_SUMMA end,
	T.NALOG_EXIST_20_NDS = case when T.NALOG_EXIST_20_NDS = 0 then null else T.NALOG_EXIST_20_NDS end,
	T.NALOG_EXIST_10_SUMMA = case when T.NALOG_EXIST_10_SUMMA = 0 then null else T.NALOG_EXIST_10_SUMMA end,
	T.NALOG_EXIST_10_NDS = case when T.NALOG_EXIST_10_NDS = 0 then null else T.NALOG_EXIST_10_NDS end,
	T.NALOG_EXIST_0_SUMMA = case when T.NALOG_EXIST_0_SUMMA = 0 then null else T.NALOG_EXIST_0_SUMMA end,
	T.NALOG_FREE_SUMMA = case when T.NALOG_FREE_SUMMA = 0 then null else T.NALOG_FREE_SUMMA end,
	T.NALOG_EXIST_18_SUMMA = case when T.NALOG_EXIST_18_SUMMA = 0 then null else T.NALOG_EXIST_18_SUMMA end,
	T.NALOG_EXIST_18_NDS = case when T.NALOG_EXIST_18_NDS = 0 then null else T.NALOG_EXIST_18_NDS end
from #TAB_TEMPL_REPORT T
INSERT INTO #TAB_TEMPL_REPORT2
SELECT --k.KF_REFLECTION,
	t.NUM_ACC_F, 
	t.NUM_ACC_FACTUR,
	t.DATE_ACC_FACTUR,
	t.NUM_ACC_EDIT,
	t.DATE_ACC_EDIT,
	t.NUM_ACC_CORR,
	t.DATE_ACC_CORR,
	t.NUM_ACC_EDIT_CORR,
	t.DATE_ACC_EDIT_CORR,
	t.NAME_SELL, 
	t.INN_SELL,
	t.DATE_OPL, 
	t.DATE_COMING,
	t.DATE_REC,
	t.NUM_DECLARE,
	t.ALL_SUMMA,
	t.NALOG_EXIST_20_SUMMA,
	t.NALOG_EXIST_20_NDS,
	t.NALOG_EXIST_10_SUMMA,
	t.NALOG_EXIST_10_NDS,
	t.NALOG_EXIST_0_SUMMA,
	t.NALOG_FREE_SUMMA,
	0 NUM_ACC_FACTUR_BUY,
	t.COUNTRY,
	t.COUNTRY_CODE,
	t.CURRENCY,
	t.DATE_REFLEX,
	t.NALOG_EXIST_18_SUMMA,
	t.NALOG_EXIST_18_NDS,
	t.KPPU_SELL,
	'22220101' DATE_SORT,
	'22220101' DATE_OPL_EX,


	convert(money,round((t.ALL_SUMMA * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2))			   ALL_SUMMA_RUB,	
	convert(money,round((t.NALOG_EXIST_20_SUMMA * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2)) NALOG_EXIST_20_SUMMA_RUB,
	convert(money,round((t.NALOG_EXIST_20_NDS * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2))   NALOG_EXIST_20_NDS_RUB,
	convert(money,round((t.NALOG_EXIST_10_SUMMA * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2)) NALOG_EXIST_10_SUMMA_RUB,
	convert(money,round((t.NALOG_EXIST_10_NDS * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2))   NALOG_EXIST_10_NDS_RUB,
	convert(money,round((t.NALOG_EXIST_0_SUMMA * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2))  NALOG_EXIST_0_SUMMA_RUB,
	convert(money,round((t.NALOG_FREE_SUMMA * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2))	   NALOG_FREE_SUMMA_RUB,
	convert(money,round((t.NALOG_EXIST_18_SUMMA * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2)) NALOG_EXIST_18_SUMMA_RUB,
	convert(money,round((t.NALOG_EXIST_18_NDS * RATE_NU / NU)*{fn ifnull(k.KF_REFLECTION, case t.CHECK_REP when 0 then 1 else 0 end )},2))   NALOG_EXIST_18_NDS_RUB,
	t.ID_ACC_CORRECTED,
	t.CODE_KIND_OPER,
	t.PLAT_DOC,
	''
FROM #TAB_TEMPL_REPORT t left outer join COM_FACTUR_KF k on t.DATE_COMING >= k.DATE_BEGIN and t.DATE_COMING < k.DATE_NEXT and t.CHECK_REP = 2, 
	COM_RATES_CB r
WHERE r.ID_CURRENCY = t.CURRENCY
	and r.DATE_NEXT > t.DATE_ACC_FACTUR 
	and r.DATE_RATE <= t.DATE_ACC_FACTUR	


if @CheckReport = 0
BEGIN

insert into #TAB_TEMPL_REPORT2(NUM_ACC_F,NUM_ACC_FACTUR,DATE_ACC_FACTUR,
	NUM_ACC_EDIT,DATE_ACC_EDIT,NUM_ACC_CORR,DATE_ACC_CORR,NUM_ACC_EDIT_CORR,DATE_ACC_EDIT_CORR,
	NAME_SELL,INN_SELL,DATE_OPL,DATE_COMING,DATE_REC,NUM_DECLARE,ALL_SUMMA,
	NALOG_EXIST_20_SUMMA,NALOG_EXIST_20_NDS,NALOG_EXIST_10_SUMMA,NALOG_EXIST_10_NDS,
	NALOG_EXIST_0_SUMMA,NALOG_FREE_SUMMA,NUM_ACC_FACTUR_BUY,COUNTRY,COUNTRY_CODE,CURRENCY,
	DATE_REFLEX,NALOG_EXIST_18_SUMMA,NALOG_EXIST_18_NDS,KPPU_SELL,DATE_SORT,DATE_OPL_EX,
	ALL_SUMMA_RUB,NALOG_EXIST_20_SUMMA_RUB,NALOG_EXIST_20_NDS_RUB,NALOG_EXIST_10_SUMMA_RUB,
	NALOG_EXIST_10_NDS_RUB,NALOG_EXIST_0_SUMMA_RUB,NALOG_FREE_SUMMA_RUB,NALOG_EXIST_18_SUMMA_RUB,
	NALOG_EXIST_18_NDS_RUB,ID_ACC_CORRECTED,CODE_KIND_OPER,PLAT_DOC,CURRENCY_NAME)
exec BookSaleAccFactur_2012 @DateStart, @DateFinish, @VidSort, @VidDate, @Currency, @NumDiv, @User, @LogUser,3
END



SELECT --k.KF_REFLECTION,
	t.NUM_ACC_F, 
	t.NUM_ACC_FACTUR,
	t.DATE_ACC_FACTUR,
	t.NUM_ACC_EDIT,
	t.DATE_ACC_EDIT,
	t.NUM_ACC_CORR,
	t.DATE_ACC_CORR,
	t.NUM_ACC_EDIT_CORR,
	t.DATE_ACC_EDIT_CORR,
	t.NAME_SELL, 
	t.INN_SELL,
	t.DATE_OPL, 
	t.DATE_COMING,
	t.DATE_REC,
	t.NUM_DECLARE,
	t.ALL_SUMMA,
	t.NALOG_EXIST_20_SUMMA,
	t.NALOG_EXIST_20_NDS,
	t.NALOG_EXIST_10_SUMMA,
	t.NALOG_EXIST_10_NDS,
	t.NALOG_EXIST_0_SUMMA,
	t.NALOG_FREE_SUMMA,
	t.NUM_ACC_FACTUR_BUY,
	t.COUNTRY,
	t.COUNTRY_CODE,
	t.CURRENCY,
	t.DATE_REFLEX,
	t.NALOG_EXIST_18_SUMMA,
	t.NALOG_EXIST_18_NDS,
	t.KPPU_SELL,
	t.DATE_SORT,
	t.DATE_OPL_EX,
	t.ALL_SUMMA_RUB,	
	t.NALOG_EXIST_20_SUMMA_RUB,
	t.NALOG_EXIST_20_NDS_RUB,
	t.NALOG_EXIST_10_SUMMA_RUB,
	t.NALOG_EXIST_10_NDS_RUB,
	t.NALOG_EXIST_0_SUMMA_RUB,
	t.NALOG_FREE_SUMMA_RUB,
	t.NALOG_EXIST_18_SUMMA_RUB,
	t.NALOG_EXIST_18_NDS_RUB,
	isnull(t.ID_ACC_CORRECTED,0)ID_ACC_CORRECTED,
	t.CODE_KIND_OPER,
	t.PLAT_DOC,
	case when cc.ID_CURRENCY <> 810 then cc.CURRENCY_NAME + '  ' + '('+ cc.CURRENCY_CB + ')' else '' end  CURRENCY_NAME
	FROM #TAB_TEMPL_REPORT2 t ,COM_CURRENCY CC
	where t.CURRENCY = cc.ID_CURRENCY 

ORDER BY CASE
			WHEN @VidSort = 1 THEN t.DATE_ACC_FACTUR
			WHEN @VidSort = 2 THEN t.DATE_OPL
			WHEN @VidSort = 4 THEN t.NUM_ACC_F
			WHEN @VidSort = 5 THEN t.DATE_COMING
			WHEN @VidSort = 7 THEN t.DATE_REC
			WHEN @VidSort = 9 THEN t.DATE_REFLEX

			WHEN @VidSort = 3 THEN t.DATE_OPL
			WHEN @VidSort = 6 THEN t.DATE_COMING
			WHEN @VidSort = 8 THEN t.DATE_REC
			ELSE t.NUM_ACC_F
		END,
		CASE
			WHEN @VidSort = 3 THEN t.DATE_ACC_FACTUR
			WHEN @VidSort = 6 THEN t.DATE_ACC_FACTUR
			WHEN @VidSort = 8 THEN t.DATE_ACC_FACTUR
			ELSE 1
		END,
	t.NUM_ACC_FACTUR

DROP TABLE #TAB_TEMPL_REPORT
---------------------------------------------------------------------------------------------------------------------


Сообщение было отредактировано: 20 мар 15, 11:12
20 мар 15, 11:07    [17408738]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewIvanovec
Больше того, профайлер не видит даже попыток выполнить процедуру.

Значат проблема в вашем приложении
20 мар 15, 11:11    [17408759]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 581
Glory
NewIvanovec
Больше того, профайлер не видит даже попыток выполнить процедуру.

Значат проблема в вашем приложении


другая процедура, моя, из этого приложения вызывается.
т.е. если вместо названия проблемной процедуры, пишу название своей - то моя вызывается

текст вызова:
"execute [dbo].[Kb_BookSaleAccFactur_2012] " & d1 & "," & d2 & ",2,1,810,0,-3," & GlobalUser.Id &",0" 
20 мар 15, 11:33    [17408886]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewIvanovec
другая процедура, моя, из этого приложения вызывается.

И что ? Если не накосячил в одном месте, то автоматом нигде больге не накосячил что ли

NewIvanovec
т.е. если вместо названия проблемной процедуры, пишу название своей - то моя вызывается

Если на сервер не приходит никакой команды, то сервер не может ничего выполнять
20 мар 15, 11:35    [17408899]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
NewIvanovec
Member

Откуда: Msk
Сообщений: 581
а может быть дело во временных таблицах, которые есть в проблемной процедуре?
20 мар 15, 11:44    [17408967]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
Glory
Member

Откуда:
Сообщений: 104760
NewIvanovec
а может быть дело во временных таблицах, которые есть в проблемной процедуре?

Ага. Ваше приложение без обращения к серверу анализирует код процедуры и отказывается ее выполнять, потому что в тексте присутствуют временные таблицы.
А "тупая" management studio даже не подумала об этом.
20 мар 15, 11:46    [17408980]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
NewIvanovec, вы как, простите, отслеживаете профайлером вызов процедуры? Не по SP:Completed ли?
Попробуйте включить и SP:Completed и SP:Starting, если нет ни одного вызова - проблема явно в вашем приложении, если есть Started, но нет Completed - то тогда уже здесь можно вопросы задавать по коду процедуры.

Ну и, на всякий случай, убедитесь, что в фильтре правильное название процедуры указываете.
20 мар 15, 11:51    [17409037]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
exec,
Guest
"процедура" - просто какой-то й.стыд !
вот нафига там динамика ??

к тому же это
select @strSQL = 'insert into #TAB_TEMPL_REPORT ...'

exec (@strSQL)

-- заполним исправление
update ...
from #TAB_TEMPL_REPORT T,

"работать" просто не будет - тут глобальная времянка нужна, в таком случае ...
20 мар 15, 12:07    [17409188]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
exec,, вообще будет, поскольку область видимости временной таблицы - там, где она создается и во всех "вложенных" объектах. а создается она в самой процедуре, а не в динамике. вот если бы создание временной таблицы было внутри exec, то потом из процедуры мы бы не смогли к ней обратиться.
20 мар 15, 12:15    [17409245]     Ответить | Цитировать Сообщить модератору
 Re: процедура разработчика не вызывается из моего приложения  [new]
exec,
Guest
Minamoto,

да, виноват, - не прав
это меня на
select @strSQL = 'select ... into #TAB_TEMPL_REPORT ...'

переклинило )
но всё равно, смысла в динамике не вижу

как и в сотне однотипных update
+
UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.ALL_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_ALL) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR)


UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_20_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =20)

UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_20_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_20_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_20_NDS= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_NDS) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =20)

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_18_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =18)

UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_18_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_18_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_18_NDS= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_NDS) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS =18)

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_10_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS<18 AND COM_FACTUR_DEC.NDS>0)

UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_10_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_10_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_10_NDS= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA_NDS) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS<18  AND COM_FACTUR_DEC.NDS>0)

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_EXIST_0_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.NDS=0 and COM_FACTUR_DEC.CHECK_NDS=0)


UPDATE #TAB_TEMPL_REPORT set #TAB_TEMPL_REPORT.NALOG_EXIST_0_SUMMA= NULL WHERE 
#TAB_TEMPL_REPORT.NALOG_EXIST_0_SUMMA=0 AND #TAB_TEMPL_REPORT.ALL_SUMMA <> 0 

UPDATE #TAB_TEMPL_REPORT  SET #TAB_TEMPL_REPORT.NALOG_FREE_SUMMA= 
(SELECT SUM(COM_FACTUR_DEC.SUMMA) FROM COM_FACTUR_DEC
WHERE  #TAB_TEMPL_REPORT.NUM_ACC_F=COM_FACTUR_DEC.ID_ACC_FACTUR
AND    COM_FACTUR_DEC.CHECK_NDS=1)

это всё в одном нужно сделать
20 мар 15, 12:23    [17409308]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить