Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Невидимые колонки табличного поля - как правильно получить данные? (число прочтений - 6303 )
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Невидимые колонки табличного поля - как правильно получить данные?
05. Февраля 2009 :: 11:03
Печать  
Версия Icpp latest, вчера качал
Код
Выбрать все
	  Колонки=ТабличноеПоле.Колонки;
	Колонка=Колонки.Добавить("Док_вид");
	Колонка.Заголовок="Док_вид";
	Колонка.Ширина = 0;
	Колонка.Данные="Док_вид";
	Колонка.ГоризонтальноеВыравнивание=1;
	Колонка.ИзменениеРазмера =МенятьРазмер;  
	Колонка.ЗнакУпорядочивания=1;
	Колонка.Видимость=0;

	Колонки=ТабличноеПоле.Колонки;
	Колонка=Колонки.Добавить("Док");
	Колонка.Заголовок="Док";
	Колонка.Ширина = 0;
	Колонка.Данные="Док";
	Колонка.ГоризонтальноеВыравнивание=1;
	Колонка.ИзменениеРазмера =МенятьРазмер;  
	Колонка.ЗнакУпорядочивания=1;
	Колонка.Видимость=0;
	ТабличноеПоле.ПоставщикДанных=Источник;		  
     ТабличноеПоле.ПоставщикДанных.Поля.Док.Автоудаление=0;
ТабличноеПоле.ПоставщикДанных.Поля.Док_вид.Автоудаление=0;
 



Поставщик MSSQL
Я предполагал что колонки не видны, но данные можно получить через ДанныеСтроки. Как это было в 2.0.3.7

А как теперь правильно?
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #1 - 05. Февраля 2009 :: 11:13
Печать  
Правильно предполагал.
А что, ДанныеСтроки.Получить("Док_вид") не катит?
  
Наверх
ICQ  
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #2 - 05. Февраля 2009 :: 11:27
Печать  
Код
Выбрать все
Процедура РеквТабличноеПолеПриВыводеСтроки(ТП,ОфСтроки, Данные)

	Док=Данные.Док;

 



Поле агрегатного объекта не обнаружено (Док)

Да и автоудаление не срабатывает видимо, потому что еще при создании ругается:
ТабличноеПоле.ПоставщикДанных.Поля.Док.Автоудаление=0;;
Поле агрегатного объекта не обнаружено (Док)

Логично предположив, что колонки удаляются после
ТабличноеПоле.ПоставщикДанных=Источник;      
Попробовал сделать так:
Источник.Поля.Док.Автоудаление=0;
Но тоже не работает
Поле агрегатного объекта не обнаружено (Док)

В какую сторону копать?
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #3 - 05. Февраля 2009 :: 11:32
Печать  
ТабличноеПоле.ПоставщикДанных.Поля.Добавить("Док").Автоудаление=0;
  
Наверх
ICQ  
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #4 - 05. Февраля 2009 :: 12:05
Печать  
Не, не катит Печаль

Код
Выбрать все
ТабличноеПоле.ПоставщикДанных.Поля.Добавить("Док").Автоудаление=0;
	ТабличноеПоле.ПоставщикДанных.Поля.Добавить("Док_вид").Автоудаление=0;
Для к=1 по ТабличноеПоле.ПоставщикДанных.Поля.Количество() Цикл
		Сообщить(ТабличноеПоле.ПоставщикДанных.Поля.Получить(к).Имя);
	КонецЦикла;

 



Выдает только видимые поля, и спотыкается

Недопустимое значение параметра.
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #5 - 05. Февраля 2009 :: 12:20
Печать  
Источник = СоздатьОбъект("ODBCDataProvider.MSSQL");
Источник.Поля.Добавить("Док").Автоудаление=0;
  
Наверх
ICQ  
IP записан
 
vandalsvq
1c++ power user
Отсутствует


Я всего лишь als-особиратель
;-)

Сообщений: 2487
Местоположение: Уфа
Зарегистрирован: 18. Июля 2007
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #6 - 05. Февраля 2009 :: 12:32
Печать  
vip писал(а) 05. Февраля 2009 :: 12:20:
Источник = СоздатьОбъект("ODBCDataProvider.MSSQL");
Источник.Поля.Добавить("Док").Автоудаление=0;


насколько я понял в целях оптимизации провайдер не рассчитывает колонки которые не видны... если автоудаление = 1... правильно я понял? Улыбка
  

Отхожу от дел. Долго и мучительно.
Наверх
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #7 - 05. Февраля 2009 :: 12:34
Печать  
Если сделать так как ты написал, то
Значение не представляет агрегатный объект (Автоудаление)

Если так как я уже пробовал

Код
Выбрать все
	  Источник.SetQueryText (ТекстЗапроса);
	Источник.БазаДанных=База;
	  Источник.УстКлючПорядка("date_time_iddoc");
	Источник.Поля.Добавить("Док").Автоудаление=0;
	Источник.Поля.Добавить("Док_вид").Автоудаление=0;
 



То ошибки нет, но поля все равно удаляются
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #8 - 05. Февраля 2009 :: 12:37
Печать  
vandalsvq писал(а) 05. Февраля 2009 :: 12:32:
насколько я понял в целях оптимизации провайдер не рассчитывает колонки которые не видны... если автоудаление = 1... правильно я понял? Улыбка


Правильно, но вот только как сделать автоудаление=0 понять пытаюсь. В 2.03.7 не было автоудаления, и невидымые колонки можно было получить через ДанныеСтроки, не видя их на экране.
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #9 - 05. Февраля 2009 :: 12:38
Печать  
vandalsvq писал(а) 05. Февраля 2009 :: 12:32:
vip писал(а) 05. Февраля 2009 :: 12:20:
Источник = СоздатьОбъект("ODBCDataProvider.MSSQL");
Источник.Поля.Добавить("Док").Автоудаление=0;


насколько я понял в целях оптимизации провайдер не рассчитывает колонки которые не видны... если автоудаление = 1... правильно я понял? Улыбка

Правильно понял.
Цитата:
То ошибки нет, но поля все равно удаляются

Не удаляются.
Давай маленькую тестовую обработку.
  
Наверх
ICQ  
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #10 - 05. Февраля 2009 :: 12:48
Печать  
Ну вроде как то так.

Создание поля по кнопке сформировать
  

_______001.ert ( 48 KB | Загрузки )

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #11 - 05. Февраля 2009 :: 12:54
Печать  
Все у тебя работает.
Только так исправь:
     Для к=0 по ТабличноеПоле.ПоставщикДанных.Поля.Количество()-1 Цикл
           Сообщить(ТабличноеПоле.ПоставщикДанных.Поля.Получить(к).Имя);
     КонецЦикла;      
  
Наверх
ICQ  
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #12 - 05. Февраля 2009 :: 13:13
Печать  
Смешно Печаль Тестовый пример работает, а реальный не работает - все один в один сделано... Ладно разберусь поди спасибо.
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
yudin
Full Member
***
Отсутствует


Краткость - с.т.

Сообщений: 131
Местоположение: Ростов - на - Дону
Зарегистрирован: 25. Мая 2006
Пол: Мужской
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #13 - 05. Февраля 2009 :: 13:19
Печать  
Может заодно завалялся небольшой пример использования параметров в запросе табличного поля?  Подмигивание
  

С уваженьем, дата, подпись
Наверх
wwwICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Невидимые колонки табличного поля - как правильно получить данные?
Ответ #14 - 05. Февраля 2009 :: 16:44
Печать  
К комментариям vip'a могу еще только добавить, что Автоудаление=0 для полей надо ставить уже после установки текста запроса.

P.S.
В свое время была идея сделать "зависимые" поля данных.
Ну, например, поле Док_вид - как правило зависимо от поля Док и должно появляться в запросе вместе с полем Док.
Поэтому изменение видимости колонки Док должно одновременно влиять на появление обоих полей в запросе.

Руки до этого не дошли. Пока.
Однако подобная логика и сейчас прекрасно реализуется, в том числе через событие ПриИзмененииВидимостиКолонки().
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать