Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема ТП: не отображаются данные (число прочтений - 4148 )
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
ТП: не отображаются данные
20. Января 2010 :: 09:49
Печать  
Привет всем!
Решил попробовать сабж.
Код
Выбрать все
// тз как поставщик данных
ТЗИнформацииПоКлиентам = КлассSQL.ВыполнитьСкрипт(1,1);
лкТабличноеПоле = лкФорма.СоздатьЭлементУправления("ТабличноеПоле","КнопкаТабличноеПоле");
лкТабличноеПоле.СтильЗаголовков = 1;
лкТабличноеПоле.ТаймаутОбновления = 10;
лкТабличноеПоле.Колонки.Добавить("Код");
лкТабличноеПоле.Колонки.Добавить("Наименование");
лкТабличноеПоле.Колонки.Добавить("ФИО");
лкТабличноеПоле.Колонки.Добавить("Адрес");
лкТабличноеПоле.Колонки.Добавить("Оборот");
лкТабличноеПоле.Колонки.Добавить("Доход");
ПоставщикДанных = СоздатьОбъект("VTProvider");
ПоставщикДанных.УстТаблицуЗначений(ТЗИнформацииПоКлиентам);
лкТабличноеПоле.ПоставщикДанных = ПоставщикДанных;
лкТабличноеПоле.ОбновитьСтроки();
 



Исходная тз содержит 3 строки.
табличное поле содержит пустые 3 строки
что я делаю не так?
1cpp 2.5.0.7
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТП: не отображаются данные
Ответ #1 - 20. Января 2010 :: 10:01
Печать  
нет свези между колонками ТП и данными поставщика.
Колонка = лкТабличноеПоле.Колонки.Добавить("Код");
Колонка.Данные = "Код"; //тут имя поля поставщика данных
  

1&&2&&3
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: ТП: не отображаются данные
Ответ #2 - 20. Января 2010 :: 13:43
Печать  
trad писал(а) 20. Января 2010 :: 10:01:
нет свези между колонками ТП и данными поставщика.
Колонка = лкТабличноеПоле.Колонки.Добавить("Код");
Колонка.Данные = "Код"; //тут имя поля поставщика данных


Связал, спасибо большое.

А еще вопрос: а как можно сделать, чтобы пир выводе данных в ТП ширина колонок автоматически расширялась по содержимому?
Я в документации нашел метод автоширина
Код
Выбрать все
лкТабличноеПоле.Автоширина();
 


Но он срабатывает при двойном клике мышки на границе колонки..
А как сделать так, чтобы вывод колонко сразу был таким?
Если я не хоччу явно задавать ширину для каждой колонки
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: ТП: не отображаются данные
Ответ #3 - 20. Января 2010 :: 16:44
Печать  
С шириной разобрался.
Остался последний вопрос:
Код
Выбрать все
Процедура КнопкаТабличноеПолеПриВыбореЗаголовка(Колонка)
	 Сообщить(Колонка.ЗнакУпорядочивания);
КонецПроцедуры
 



Код
Выбрать все
Справочник.Клиенты.ФормаСписка.ДляНачинающих.Модуль(150)}: Поле агрегатного объекта не обнаружено (ЗнакУпорядочивания)
 



Может это реализовано только в icpp?
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: ТП: не отображаются данные
Ответ #4 - 20. Января 2010 :: 16:53
Печать  
Странно, при определении ТП все проходит на ура..
Код
Выбрать все
лкТабличноеПоле.Колонки.Наименование.ЗнакУпорядочивания = 1;
 

  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: ТП: не отображаются данные
Ответ #5 - 20. Января 2010 :: 16:56
Печать  
И в примере господина Ситникова используется эта процедура..
Код
Выбрать все
роцедура ПриВыбореЗаголовка(Колонка) Экспорт
	Если Колонка.Имя = "Картинка" Тогда
		Возврат;
	КонецЕсли;

	МетаРеквизит = Метаданные.Справочник(ИдСправочника).Реквизит(Колонка.Имя);
	Если МетаРеквизит.Выбран() = 1 Тогда
		Если (МетаРеквизит.Тип = "Строка") и (МетаРеквизит.Длина = 0) Тогда
			//строка неограниченной длины
			Возврат;
		КонецЕсли;
	КонецЕсли;

	Если Колонка.ЗнакУпорядочивания = 1 Тогда
		Колонка.ЗнакУпорядочивания = 2;
	Иначе
		Колонка.ЗнакУпорядочивания = 1;
	КонецЕсли;

	Для ъ = 1 По Колонки.Количество() - 1 Цикл
		ТекКолонка = Колонки.Получить(ъ);
		Если ТекКолонка <> Колонка Тогда
			ТекКолонка.ЗнакУпорядочивания = 0;
		КонецЕсли;
	КонецЦикла;

	КлючПорядка = Колонка.Данные + ?(Колонка.ЗнакУпорядочивания = 2, " DESC", "");
	Обновить();
КонецПроцедуры
 



И требования к версии у него более чем скромные 2.0.1.2
  
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: ТП: не отображаются данные
Ответ #6 - 20. Января 2010 :: 17:14
Печать  
Разобрался
А в документации было сказано, что в процедуру в качестве параметра передается значение типа "КолонкаТабличногоПоля".
А на самом деле само ТП Печаль
А как же в этой процедуре добраться до колонки, заголовок которой я дергаю???
  
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП: не отображаются данные
Ответ #7 - 20. Января 2010 :: 18:45
Печать  
В документации сказано:
Цитата:
Каждое событие, кроме описанных параметров, всегда имеет первый параметр, имеющий значение объекта - источника событий (само табличное поле)
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТП: не отображаются данные
Ответ #8 - 21. Января 2010 :: 05:44
Печать  
объявление в модуле формы должно быть таким:
Процедура КнопкаТабличноеПолеПриВыбореЗаголовка(ТП, Колонка)
а в модуле КОПа без первого параметра.
  

1&&2&&3
Наверх
 
IP записан
 
ArtInSky
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 26. Июня 2009
Re: ТП: не отображаются данные
Ответ #9 - 21. Января 2010 :: 07:45
Печать  
Невнимательность подвела.
Salimbek,trad спасибо большое.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать