Ну что, Миха, хотел багов? Их будет тебе
Есть форма списка справочника контрагентов. Открываем её, и начинаем убирать колонки. Как только в списке остаётся код и наименование, то ТП делается пустым. Трассирвка показала следующее:
Нормальный запрос, с нормальными параметрами
exec sp_executesql N'
select top 21
IsFolder as IsFolder,
IsMark as IsMark,
ID as ID,
ROW_ID as ROW_ID,
Код as Код,
Наименование as Наименование,
ParentID as ParentID
from
(
SELECT
LTrim(Эл.Code) as Код,
RTrim(Эл.Descr) as Наименование,
RTrim(IsNull(Партнеры.Descr, '''')) As Партнер,
Эл.IsFolder as IsFolder,
Эл.ParentID as ParentID,
Эл.IsMark as IsMark,
Эл.ID as ID,
Эл.ROW_ID as ROW_ID
FROM
sc14 Эл (NoLock)
Left Join sc14 Партнеры (NoLock) On Партнеры.ID = Эл.sp1210
WHERE
Эл.ParentID = @QParam_Родитель_1_9_0
) ВсеЭлементы
where
ParentID > @OKParam_0 or IsFolder > @OKParam_1 and ParentID = @OKParam_0 or Наименование > @OKParam_2 and ParentID = @OKParam_0 and IsFolder = @OKParam_1 or ROW_ID > @OKParam_3 and ParentID = @OKParam_0 and IsFolder = @OKParam_1 and Наименование = @OKParam_2
order by
ParentID, IsFolder, Наименование, ROW_ID
', N'@QParam_Родитель_1_9_0 char(9), @OKParam_0 char(9),@OKParam_1 int,@OKParam_2 varchar(100),@OKParam_3 int',
' 5O1 ', ' 5O1 ', 2, '<контрагент>', 7156
Убрали колонку - попортились параметры
where
ParentID > @OKParam_0 or IsFolder > @OKParam_1 and ParentID = @OKParam_0 or Наименование > @OKParam_2 and ParentID = @OKParam_0 and IsFolder = @OKParam_1 or ROW_ID > @OKParam_3 and ParentID = @OKParam_0 and IsFolder = @OKParam_1 and Наименование = @OKParam_2
order by
ParentID, IsFolder, Наименование, ROW_ID
', N'@QParam_Родитель_1_9_0 char(9), @OKParam_0 char(9), @OKParam_1 int, @OKParam_2 varchar(100),@OKParam_3 int',
' 5O1 ', 0, 2, '<контрагент>', 7153
А если мы ещё не угомонились, и нажимаем Home, и пытаемся листать вниз, то получаем
where
ParentID > @OKParam_0 or IsFolder > @OKParam_1 and ParentID = @OKParam_0 or Наименование > @OKParam_2 and ParentID = @OKParam_0 and IsFolder = @OKParam_1 or ROW_ID > @OKParam_3 and ParentID = @OKParam_0 and IsFolder = @OKParam_1 and Наименование = @OKParam_2
order by
ParentID, IsFolder, Наименование, ROW_ID
', N'@QParam_Родитель_1_9_0 char(9),@OKParam_0 char(9),@OKParam_1 int,@OKParam_2 varchar(100),@OKParam_3 int',
' 5O1 ', ' ', -1, '', 0
и выпадение 1С в осадок.
Вот. Видно, что что-то явно не то происходит с параметрами сортировки. Если информации недостаточно, могу попытаться слепить тестовую обработку.
PS. Этот баг существовал и до TF_RC3