Вот текст запроса:
SET NOCOUNT ON
IF EXISTS (SELECT * from sysobjects WHERE name = 'Convert36To10')
drop function dbo.Convert36To10
GO
CREATE FUNCTION dbo.Convert36To10(@Val_36 varchar(9)) Returns int
Begin
DECLARE @j int, @len int, @Val_10 int
DECLARE @Arr36 char(36)
SET @Arr36 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
SET @Val_10 = 0
SET @j = 1
SET @Val_36 = LTrim(RTrim(@Val_36))
SET @len = Len(@Val_36)
while @j <= @len
begin
if @j <> 1
SET @Val_10 = @Val_10 * 36
SET @Val_10 = @Val_10 + CharIndex(Substring(@Val_36, @j ,1), @Arr36) - 1
SET @j = @j+1
end
Return @Val_10
End
GO
IF EXISTS (SELECT * from sysobjects WHERE name = 'TimaDocToStr' )
drop function dbo.TimaDocToStr
GO
CREATE FUNCTION dbo.TimaDocToStr (@DateTime char(23), @Delimiter char(1)) Returns varchar(8)
Begin
DECLARE @strTime char(6), @hours int, @minutes int, @sec int
SET @strTime = Substring(@DateTime, 9, 6)
SET @sec = dbo.Convert36To10(@strTime) / 10000
SET @hours = @sec / 3600
SET @sec = @sec - (@hours * 3600)
SET @minutes = @sec / 60
SET @sec = @sec - (@minutes * 60)
DECLARE @res varchar(8)
if @hours < 10
SET @res = '0' + CAST(@hours as char(1))
else
SET @res = CAST(@hours as char(2))
if @minutes < 10
SET @res = @res + @Delimiter + '0' + CAST(@minutes as char(1))
else
SET @res = @res + @Delimiter + CAST(@minutes as char(2))
if @sec < 10
SET @res = @res + @Delimiter + '0' + CAST(@sec as char(1))
else
SET @res = @res + @Delimiter + CAST(@sec as char(2))
return @res
End
GO
if exists(select * from tempdb..sysobjects where id = object_id('tempdb..#StatDoc'))
drop table #StatDoc
create table #StatDoc (IdStat tinyint, isdel tinyint, isprov tinyint)
INSERT INTO #StatDoc (IdStat, isdel, isprov) VALUES (1, 0, 0)
INSERT INTO #StatDoc (IdStat, isdel, isprov) VALUES (7, 1, 0)
INSERT INTO #StatDoc (IdStat, isdel, isprov) VALUES (2, 0, 1)
if exists(select * from tempdb..sysobjects where id = object_id('tempdb..#VidDoc'))
drop table #VidDoc
create table #VidDoc (VidDocStr char(80), IdVidDoc char(10))
INSERT INTO #VidDoc (VidDocStr, IdVidDoc) VALUES ('ВидДокумента1', '7953')
--Все остальные документы
INSERT INTO #VidDoc (VidDocStr, IdVidDoc) VALUES ('ВидДокумента2', '8000')
SET NOCOUNT OFF
SELECT
#StatDoc.IdStat,
Жур.sp6781 as Статус,
Жур.IDDoc as [Док $Документ],
Жур.IDDocDef as Док_вид,
#VidDoc.VidDocStr,
CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок,
dbo.TimaDocToStr(Жур.Date_Time_iddoc, ':') as ВремяДок,
Жур.sp1005 as [Фирма $Справочник.Фирмы],
Жур.sp8113 as [Отдел $Справочник.Отделы],
Жур.sp1006 as [Автор $Справочник.Пользователи],
Жур.IsMark as Удален,
Жур.Closed as Проведен
FROM
_1SJourn Жур
INNER JOIN #StatDoc (NOLOCK) ON
(Жур.ismark = #StatDoc.isdel) AND
((Жур.Closed & 1) = #StatDoc.isprov)
INNER JOIN #VidDoc (NOLOCK) ON Жур.IDDocDef = #VidDoc.IdVidDoc
WHERE Жур.Date_Time_IDDoc >= '20060901'
AND
Жур.Date_Time_IDDoc <= '20061006Z'
Order By
Жур.Date_Time_IDDoc
SET NOCOUNT OFF
в 1С вываливается с ошибкой: {E:\RAINBOW\МОИОТЧЕТЫ\4.ERT(542)}: State 42000, native 170, message [Microsoft][ODBC SQL Server Driver][SQL Server]Line 4: Incorrect syntax near 'GO'
в 1CQA валится с той же ошибкой
А в QA работает.
Что делать?