такая проблема: если список полей в поставщика добавлять только до установки текста запроса, то исчезает поле типизации колонки документ. автоудаление в 0 не дает поставить здесь. если создавать только после установки текста запроса, то ругается на то что не заданы поля сортировки и ключа. поэтому создаю поля до и после утсановки текста запроса, но мне кажется что это криво, но по крайней мере работает
но есть одна засада. Поставщик (или ТП?) генерит ошибочный запрос типа
select top 53
from _1SJOURN as журн (NOLOCK)
where convert(datetime,left(журн.date_time_iddoc,8),112)>='20080501'
AND
convert(datetime,left(журн.date_time_iddoc,8),112)<='20080531'
AND
журн.sp1006 in (select val from #Автор)
order by
и ТП соотв сперва выдает сообщение об ошибке. что совсем не красиво
в чем я не прав? может надо как то по другому это дело инициализировать? или запрос просто очень большой ( скл код получается под 5000 строк)
вот текст программы:
тпДанные =_Форма.СоздатьЭлементУправления("ТабличноеПоле", "пДанные");
тпДанные.РежимВыделенияСтроки =2;
тпДанные.РежимВыделения =1;
тпДанные.ЦветФонаВыделения=7479376;
тпДанные.СтильЗаголовков =1;
тпДанные.РазрешитьПеретаскивание = 0;
тпДанные.РазрешитьНачалоПеретаскивания= 0;
тпДанные.SetTextMargins(, 0, , 2);
тпДанные.ФиксацияСлева =2;
тпДанные.ФиксацияСправа =0;
тпДанные.ТаймаутОбновления=5;
//
Источник=СоздатьОбъект("ПоставщикДанныхODBC.MSSQL");
Источник.БазаДанных=СоздатьОбъект("ODBCDataBase");
тпДанные.ПоставщикДанных=Источник;
//
ДобавитьКолонку("Документ","Документ",1,0);
ДобавитьКолонку("ДатаВремя","Дата",1,0);
ДобавитьКолонку("Автор","Автор",1,0);
ДобавитьКолонку("Фирма","Фирма",1,0);
ДобавитьКолонку("БЮ","БЮ",3,0);
ДобавитьКолонку("Сумма","Сумма",2,0);
ДобавитьКолонку("Валюта","Валюта",3,0);
ДобавитьКолонку("Клиент","Контрагент",1,0);
ДобавитьКолонку("Сделка","Договор",1,0);
ТекстЗапроса="
|SELECT
| журн.iddoc as [Документ $Документ], журн.idDocDef as [Документ_вид], журн.date_time_iddoc as [Позиция],
| CONVERT(char(20),dbo.get_doc_time(журн.date_time_iddoc),120 )as [ДатаВремя],
| журн.$ОбщийРеквизит.Автор as [Автор $Справочник.Пользователи],
| журн.$ОбщийРеквизит.Фирма as [Фирма $Справочник.Фирмы],
| журн.$ОбщийРеквизит.Проект as [БЮ $Справочник.НаправленияБизнеса],
| "+ЗапросНаГрафуЖурнала("Сумма")+",
| "+ЗапросНаГрафуЖурнала("Валюта")+",
| "+ЗапросНаГрафуЖурнала("Клиент")+",
| "+ЗапросНаГрафуЖурнала("Сделка")+"
|FROM
| _1SJOURN as журн (NOLOCK)
|"+Отбор()+"
|";
//сообщить(ТекстЗапроса);
//период
а.Получить("ПериодС"));
са.Получить("ПериодПо"));
//Автор
спАвтор=спПараметрыЗапроса.Получить("Автор");
если ПустоеЗначение(спАвтор)=0 тогда
глГлобальный.Запрос.УложитьСписокОбъектов(спАвтор,"#Автор","Пользователи");
конецЕсли;
//Фирма
спФирма=спПараметрыЗапроса.Получить("Фирма");
если ПустоеЗначение(спФирма)=0 тогда
глГлобальный.Запрос.УложитьСписокОбъектов(спФирма,"#Фирма","Фирмы");
конецЕсли;
//
Поля=тпДанные.ПоставщикДанных.Поля;
Поля.Добавить("Документ");
Поля.Добавить("Документ_вид");
Поля.Добавить("Позиция");
Поля.Добавить("ДатаВремя");
Поля.Добавить("Автор");
Поля.Добавить("Фирма");
Поля.Добавить("БЮ");
Поля.Добавить("Сумма");
Поля.Добавить("Валюта");
Поля.Добавить("Клиент");
Поля.Добавить("Сделка");
//
тпДанные.ПоставщикДанных.Отладка(1);
тпДанные.ПоставщикДанных.УстТекстЗапроса(ТекстЗапроса);
тпДанные.ПоставщикДанных.Отладка(1);
//
Поля=тпДанные.ПоставщикДанных.Поля;
Поля.Добавить("Документ");
Поля.Добавить("Документ_вид");
Поля.Добавить("Позиция");
Поля.Добавить("ДатаВремя");
Поля.Добавить("Автор");
Поля.Добавить("Фирма");
Поля.Добавить("БЮ");
Поля.Добавить("Сумма");
Поля.Добавить("Валюта");
Поля.Добавить("Клиент");
Поля.Добавить("Сделка");
//
тпДанные.ПоставщикДанных.УстИдПоле("Документ");
тпДанные.ПоставщикДанных.УстКлючПорядка("Позиция");