Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) ТП: Ошибка при выводе строки. Что не так? (число прочтений - 5209 )
SingularSpot
YaBB Newbies
*
Отсутствует


...

Сообщений: 14
Зарегистрирован: 11. Апреля 2007
ТП: Ошибка при выводе строки. Что не так?
22. Мая 2008 :: 11:55
Печать  
Только начал изучать ТП  :)
1срр 2.5.0.6 от 21.12.2007

Код процедуры ниже и сам файл обработки.

Ошибка следующая:
Поле агрегатного объекта не обнаружено (Картинка)
ОформлениеСтроки.Ячейки.Док.ИндексКартинки=ДанныеСтроки.Картинка;

Хотя при этом в ТП картинки отображаются.

[code]
Перем тзКолонки;
//*******************************************
Процедура Сформировать()

     ТекФорма=СоздатьОбъект("Форма");
     ТекФорма.УстановитьФорму(Форма);
     ТП=ТекФорма.СоздатьЭлементУправления("ТабличноеПоле","тпЖурнал");
     ИсточникДанных=СоздатьОбъект("ODBCDataProvider.MSSQL");
     ИсточникДанных.БазаДанных=СоздатьОбъект("ODBCDataBase");
     ТП.ПоставщикДанных=ИсточникДанных;
     Поставщик=ТП.ПоставщикДанных;
     ИсточникДанных.Отладка(0);
     
     Колонки=ТП.Колонки;
     Колонки.Очистить();
     тзКолонки.ВыбратьСтроки();
     Пока тзКолонки.ПолучитьСтроку() = 1 Цикл
           Колонка=Колонки.Добавить(тзКолонки.Имя);
           Колонка.Заголовок=тзКолонки.Заголовок;
           Колонка.Ширина=тзКолонки.Ширина;
           Колонка.Данные=тзКолонки.Имя;
           Колонка.Видимость=тзКолонки.Видимость;
     КонецЦикла;
     ТП.Колонки.Картинка.УстановитьКартинкиСтрок(ИконкиДок,16);
     
     Текст="
     |SELECT
     |      CASE
     |            WHEN Жур.ISMark=1 THEN 6
     |            WHEN Жур.Closed&1=0 THEN 0
     |            WHEN Жур.Closed&1=1 THEN 1
     |      END as Картинка,            
     |      Жур.Iddocdef as Док_вид,
     |      Жур.Iddoc as [Док $Документ],
     |      Жур.Date_Time_IDDoc as DateTimeIDDoc
     |FROM
     |      _1SJourn as Жур
     |WHERE
     |      Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~
     |";
     НачДата=НачМесяца(РабочаяДата());
     КонДата=КонМесяца(РабочаяДата());
     Поставщик.УстановитьТекстовыйПараметр("НачДата",НачДата);
     Поставщик.УстановитьТекстовыйПараметр("КонДата",КонДата);
     Поставщик.УстТекстЗапроса(Текст);
     Поставщик.УстКлючПорядка("DateTimeIDDoc");
     тзКолонки.ВыбратьСтроки();
     Пока тзКолонки.ПолучитьСтроку() = 1 Цикл
           Поле=Поставщик.Поля.Добавить(тзКолонки.Имя);
     КонецЦикла;
     Поставщик.Поля.Картинка.Автоудаление=0;
     Поставщик.Обновить();
     
КонецПроцедуры


Процедура тпЖурналПриВыводеСтроки(_ТП,ОформлениеСтроки,ДанныеСтроки)
     Если _ТП.Колонки.Картинка.Видимость = 1 Тогда
           ОформлениеСтроки.Ячейки.Картинка.ОтображатьКартинку=1;
           ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки=ДанныеСтроки.Картинка
     КонецЕсли;;
КонецПроцедуры


тзКолонки=СоздатьОбъект("ТаблицаЗначений");
тзКолонки.НоваяКолонка("Имя","Строка");
тзКолонки.НоваяКолонка("Заголовок","Строка");
тзКолонки.НоваяКолонка("Ширина","Число",3,0);
тзКолонки.НоваяКолонка("Видимость","Число",1,0);

тзКолонки.НоваяСтрока();
тзКолонки.Имя = "Картинка";
тзКолонки.Заголовок = "";
тзКолонки.Ширина = 8;
тзКолонки.Видимость=1;

тзКолонки.НоваяСтрока();
тзКолонки.Имя = "Док_вид";
тзКолонки.Заголовок = "";
тзКолонки.Ширина = 0;
тзКолонки.Видимость=0;

тзКолонки.НоваяСтрока();
тзКолонки.Имя = "Док";
тзКолонки.Заголовок = "Документ";
тзКолонки.Ширина = 200;
тзКолонки.Видимость=1;[/code]
« Последняя редакция: 23. Мая 2008 :: 08:06 - SingularSpot »  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #1 - 22. Мая 2008 :: 12:21
Печать  
Процедура тпЖурналПриВыводеСтроки(_ТП,ОформлениеСтроки,ДанныеСтроки)
    Если _ТП.Колонки.Картинка.Видимость = 1 Тогда
     ОформлениеСтроки.Ячейки.Картинка.ОтображатьКартинку=1;
     ОформлениеСтроки.Ячейки.Картинка.ИндексКартинки=ДанныеСтроки.Картинка;
    КонецЕсли
КонецПроцедуры
  

1&&2&&3
Наверх
 
IP записан
 
SingularSpot
YaBB Newbies
*
Отсутствует


...

Сообщений: 14
Зарегистрирован: 11. Апреля 2007
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #2 - 23. Мая 2008 :: 07:01
Печать  
Не помогло. То же самое.
И хотелось бы все-таки картинку в колонке Док.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #3 - 23. Мая 2008 :: 07:19
Печать  
ну тогда

Процедура Сформировать()
  ...
     Поставщик.Поля.Картинка.Автоудаление=0;
КонецПроцедуры

Процедура тпЖурналПриВыводеСтроки(_ТП,ОформлениеСтроки,ДанныеСтроки)
     ОформлениеСтроки.Ячейки.Док.ОтображатьКартинку=1;
     ОформлениеСтроки.Ячейки.Док.ИндексКартинки=ДанныеСтроки.Картинка;
КонецПроцедуры
  

1&&2&&3
Наверх
 
IP записан
 
SingularSpot
YaBB Newbies
*
Отсутствует


...

Сообщений: 14
Зарегистрирован: 11. Апреля 2007
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #4 - 23. Мая 2008 :: 07:47
Печать  
Не помогло ))
  
Наверх
 
IP записан
 
PVR
God Member
*****
Отсутствует



Сообщений: 622
Зарегистрирован: 19. Ноября 2007
Пол: Мужской
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #5 - 23. Мая 2008 :: 07:54
Печать  
SingularSpot писал(а) 23. Мая 2008 :: 07:47:
Не помогло ))

прицепи сюда всю обработку или класс, чтоб можно было потестить твой код  Подмигивание

ps
упс, в 1 посте вроде есть, после обеда потестирую у себя  Улыбка
  
Наверх
 
IP записан
 
SingularSpot
YaBB Newbies
*
Отсутствует


...

Сообщений: 14
Зарегистрирован: 11. Апреля 2007
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #6 - 23. Мая 2008 :: 08:04
Печать  
Угу в первом посте.
Последняя версию к этому посту прилепил :)
  

TP_001.ert ( 251 KB | Загрузки )
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #7 - 23. Мая 2008 :: 09:02
Печать  
[quote author=SingularSpot link=1211457346/0#6 date=1211529889]Угу в первом посте.
Последняя версию к этому посту прилепил :)[/quote]
Не ставь поставщика в начале.

Сначала добавляешь колонки, устанавливаешь текст и ключ порядка.
И только в конце - подключаешь поставщика к ТП.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #8 - 23. Мая 2008 :: 09:09
Печать  
+1 и сделать
Код
Выбрать все
	Поставщик.Поля.Картинка.Автоудаление=0;
	Поставщик.Поля.Док_вид.Автоудаление=0;
	ТП.ПоставщикДанных=Поставщик;
	Поставщик.Обновить();
 

  
Наверх
ICQ  
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #9 - 23. Мая 2008 :: 09:11
Печать  
З.Ы. При этом, почему-то происходила типизация вида документа, когда поставщика перенес на место, ТП начало ругаться на отсутствие типизирующего поля, только тогда увидел, что у этого поля Автоудаление=0 не стоит...
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #10 - 23. Мая 2008 :: 09:24
Печать  
Salimbek писал(а) 23. Мая 2008 :: 09:11:
З.Ы. При этом, почему-то происходила типизация вида документа, когда поставщика перенес на место, ТП начало ругаться на отсутствие типизирующего поля, только тогда увидел, что у этого поля Автоудаление=0 не стоит...

Да, мне тоже стало интересно.
Но тут все науке оказалось:
Код
Выбрать все
	Пока тзКолонки.ПолучитьСтроку() = 1 Цикл
		Поле=Поставщик.Поля.Добавить(тзКолонки.Имя);
	КонецЦикла;
 


Из-за этого.

SingularSpot

P.S.

Зря Отладка(0) вначале сделал.
Мог бы сразу увидеть, что при каждом добавлении колонки в ТП при установленном поставщике идет запрос на сервер.
И в начальных запросах никаких картинок нет, что и приводит к временным проблемам при выводе строки.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Salimbek
God Member
*****
Отсутствует



Сообщений: 862
Зарегистрирован: 06. Июня 2006
Пол: Мужской
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #11 - 23. Мая 2008 :: 09:37
Печать  
А, то есть он сначала через видимость это поле из запроса убирал, а потом через добавить снова включал... тогда ясно!
  
Наверх
ICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #12 - 23. Мая 2008 :: 09:55
Печать  
Ага Улыбка

Короче, вот так в итоге должно выглядеть.

P.S.
Флажки заданы для 3.0, в 2.5 может быть чуть по-другому.
Да вообще, зачем тебе 2.5.
  

TP.ert ( 160 KB | Загрузки )

De quelle planète es-tu?
Наверх
 
IP записан
 
SingularSpot
YaBB Newbies
*
Отсутствует


...

Сообщений: 14
Зарегистрирован: 11. Апреля 2007
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #13 - 23. Мая 2008 :: 09:57
Печать  
Все понял. Спасибо большое за помощь! Улыбка
  
Наверх
 
IP записан
 
SingularSpot
YaBB Newbies
*
Отсутствует


...

Сообщений: 14
Зарегистрирован: 11. Апреля 2007
Re: ТП: Ошибка при выводе строки. Что не так?
Ответ #14 - 23. Мая 2008 :: 10:07
Печать  
А текст в ячейках колонки "картинка" у меня отображается с
ОформлениеСтроки.Ячейки.Картинка.ОтображатьТекст=0;
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать