Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ТП.ОбновитьСтроки (число прочтений - 1847 )
alest
Senior Member
****
Отсутствует



Сообщений: 380
Местоположение: Гродно, Беларусь
Зарегистрирован: 22. Мая 2006
Пол: Мужской
ТП.ОбновитьСтроки
15. Марта 2007 :: 21:52
Печать  
Описание: перечитать строки, отображаемые в данный момент в табличном поле. Табличное поле будет стараться сохранить текущую строку.

Есть код:
Код
Выбрать все
Функция СформироватьТекстЗапроса()
	ТекстЗапроса = "
	|SELECT $ОстаткиТоваровИтоги.Товар AS [Товар $Справочник.Номенклатура]
	|	, $ОстаткиТоваровИтоги.Склад AS [Склад $Справочник.МестаХранения]
	|	, Номенклатура.CODE AS Код
	|	, Номенклатура.DESCR AS Наименование
	|	, Sum($ОстаткиТоваровИтоги.Количество) AS Остаток
	|FROM $РегистрИтоги.ОстаткиТоваров AS ОстаткиТоваровИтоги
	|	INNER JOIN $Справочник.Номенклатура AS Номенклатура ON $ОстаткиТоваровИтоги.Товар = Номенклатура.ID
	//|WHERE ($ОстаткиТоваровИтоги.Склад = :ВыбСклад)
	|GROUP BY $ОстаткиТоваровИтоги.Товар
	|	, $ОстаткиТоваровИтоги.Склад
	|	, Номенклатура.CODE
	|	, Номенклатура.DESCR
	|
	|";
	Возврат ТекстЗапроса;
КонецФункции


Процедура Обновить()
	ПоставщикДанных = тпТовары.ПоставщикДанных("ODBCDataProvider.VFP");

 	//ПоставщикДанных.УстановитьТекстовыйПараметр("ВыбСклад", ВыбСклад);
 	ПоставщикДанных.УстТекстЗапроса(СформироватьТекстЗапроса());
	ПоставщикДанных.УстКлючПорядка("Товар");
	ПоставщикДанных.УстИДПоле("Товар");

	тпТовары.ТаймаутОбновления = 15;

	тпТовары.ДобавитьПоле(ПоставщикДанных, "Товар", 0, 0);
	тпТовары.ДобавитьПоле(ПоставщикДанных, "Код", 0, 1);
	тпТовары.ДобавитьПоле(ПоставщикДанных, "Наименование", 0, 1);
	тпТовары.ДобавитьПоле(ПоставщикДанных, "Остаток", 0, 0);

 	тпТовары.ПоставщикДанных = ПоставщикДанных;

	тпТовары.ОбновитьСтроки();
КонецПроцедуры
 



Так все нормально, а если комментарии снять, то при обновлении строка текущая не сохраняется, ею становится первая.
? Что не так делаю?
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТП.ОбновитьСтроки
Ответ #1 - 16. Марта 2007 :: 10:16
Печать  
При установке поставщика данных ТП полностью удаляет свои строки, поэтому сохранять нечего.
  
Наверх
ICQ  
IP записан
 
alest
Senior Member
****
Отсутствует



Сообщений: 380
Местоположение: Гродно, Беларусь
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТП.ОбновитьСтроки
Ответ #2 - 16. Марта 2007 :: 10:27
Печать  
Так я не вызываю Обновить(), слетает позиция текущая при Автообновлении. Причем это если установлен фильтр по складу (закомментированные строки), а по всем складам нормально ?-)
  
Наверх
ICQ  
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: ТП.ОбновитьСтроки
Ответ #3 - 21. Марта 2007 :: 14:09
Печать  
еще раз рассмотрел вопрос этой ветки.. как оказалось плодотворно

В запросе поставщика данных нельзя использовать пердложение GROUP BY. На это поставщик не расчитан и в этом случае он может формировать неправильные запросы.

Такое решение не случайно: результат запроса с предложением GROUP BY невозможно получать частями, не анализируя при этом весь набор данных. Поэтому решено, что запрос с предложением GROUP BY в поставщике данных не имеет смысла, вместо этого эффективнее получить все данные в память, и их уже отображать в ТП. (поставщик данных ТЗ)
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать