vandalsvq писал(а) 06. Апреля 2009 :: 08:14:Пойдем дальше?
В общем запрос есть, текст запроса устанавливается один раз, потом он переформируется и при повторной установке (в т.ч. и поставщика данных в ТП) 1С зависает долго думает и падает
Тоже примерно такое пытался пробывать, но списал всё на свои руки и недоученность.
В общем делаю пример по справочнику Сотрудники. Хочу, чтобы при быстром поиске табличное поле оставляла только нужные строки (=удовлетворяющие критерию поиска). Делаю так:
//===========================================================
Процедура СоздатьТП()
ТекстЗапроса="
|SELECT id as [Элемент :Справочник.Сотрудники]
| ,isfolder [ЭтоГруппа]
| ,idx_CODE [КлючПорядка]
|FROM Справочник_Сотрудники
|";
Провайдер=СоздатьОбъект("SQLiteDataProvider");
Провайдер.УстановитьБД(_БазаЛайт);
Провайдер.Отладка(флОтладка);
Провайдер.УстановитьТекстЗапроса(ТекстЗапроса, "[КлючПорядка]", "[Элемент :Справочник.Сотрудники]");
тпНаФорме.ПоставщикДанных="";
ДобавитьКолонкуТП(тпНаФорме, "Элемент");
ДобавитьКолонкуТП(тпНаФорме, "ЭтоГруппа");
тпНаФорме.ПоставщикДанных=Провайдер;
тпНаФорме.ОбновитьСтроки();
КонецПроцедуры // СоздатьТП
//===========================================================
Процедура тпНаФормеПриБыстромПоиске(ТабличноеПоле, чТипБыстрогоПоиска, нДанные, чФСО)
ИмяКолонки=ТабличноеПоле.ТекущаяКолонка.Имя;
Если ИмяКолонки="Элемент" Тогда
ТекстЗапроса="
|SELECT id as [Элемент :Справочник.Сотрудники]
| ,isfolder [ЭтоГруппа]
| ,idx_CODE [КлючПорядка]
|FROM Справочник_Сотрудники
|WHERE descr like '"+нДанные+"%'";
тпНаФорме.ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса, "[КлючПорядка]", "[Элемент :Справочник.Сотрудники]");
тпНаФорме.ОбновитьСтроки();
КонецЕсли;
КонецПроцедуры // тпНаФормеПриБыстромПоиске
//===========================================================
Процедура тпНаФормеПриОкончанииБыстрогоПоиска(ТабличноеПоле, флРезультат, флПерепозиционировано)
ТекСтрока=тпНаФорме.ТекущаяСтрока;
ТекстЗапроса="
|SELECT id as [Элемент :Справочник.Сотрудники]
| ,isfolder [ЭтоГруппа]
| ,idx_CODE [КлючПорядка]
|FROM Справочник_Сотрудники";
тпНаФорме.ПоставщикДанных.УстановитьТекстЗапроса(ТекстЗапроса, "[КлючПорядка]", "[Элемент :Справочник.Сотрудники]");
тпНаФорме.ОбновитьСтроки();
тпНаФорме.ТекущаяСтрока=ТекСтрока;
КонецПроцедуры // ПриОкончанииБыстрогоПоиска(ТабличноеПоле, флРезультат, флПерепозиционировано)
В общем падает. Что я делаю не так и как надо правильно?