Поставщик - ODBCDataProvider.MSSQL
Периодически табличное поле заполняется с ошибкой
Server: Msg 170, Level 15, State 1, Line N
Line N: Incorrect syntax near 'by'.
Смотрю профайлер - запрос выполняется столько раз - сколько столбцов в табличном поле
причем запрос обрывается на "order by" до тех пор, пока в запросе не появятся все объявленные столбцы
Что я делаю не так?
ТекстЗапроса = "
|select
| case when j.closed & 0x1 = 1 then 1 when j.ismark = 1 then 6 else 0 end as Пиктограмма
| , j.date_time_iddoc as [date_time_iddoc]
| , j.iddoc as [Док$Документ.Договор]
| , j.docno as [НомерДок$Строка]
| , left(j.date_time_iddoc, 8) as [Дата$Дата]
| , case $д.Статус when 1 then 'На визировании' when 2 then 'Подписан' end as [Статус$Строка]
| , $д.ВизаПросрочена as [ВизаПросрочена$Число]
| , $д.НомерДоговора as [НомерДоговора$Строка]
| , $д.Контрагент as [Контрагент$Справочник.Контрагенты]
| , dbo.фн_ПолучитьПодписанта(j.iddoc) as [Подписант$Справочник.Пользователи]
| , j.$ОбщийРеквизит.Фирма as [Фирма$Справочник.Фирмы]
| , j.$ОбщийРеквизит.Автор as [Автор$Справочник.Пользователи]
|from
| _1sjourn j (nolock, index = ACDATETIME)
| inner join $Документ.Договор д (nolock) on д.iddoc = j.iddoc
|where
| (j.date_time_iddoc between '20080101' and '20090101')
|";
ТабПоле.ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
Поля = ТабПоле.ПоставщикДанных.Поля;
Поля.Добавить("Пиктограмма");
Поля.Добавить(date_time_iddoc);
Поля.Добавить(Док);
Поля.Добавить(НомерДок);
Поля.Добавить(Дата);
Поля.Добавить(Статус);
Поля.Добавить(ВизаПросрочена);
Поля.Добавить(НомерДоговора);
Поля.Добавить(Контрагент);
Поля.Добавить(Подписант);
Поля.Добавить(Фирма);
Поля.Добавить(Автор);
ТабПоле.ПоставщикДанных.УстКлючПорядка("date_time_iddoc");
ТабПоле.ПоставщикДанных.Обновить();