Имя: Пароль:
1C
 
Данные строки при выводе строки - парево с видимостью
0 Гений 1С
 
гуру
26.12.06
13:28
Ребзы, есть справочник договоров, в нем есть реквизит Статус.
Но статус я вывожу в виде картинки.

Т.е. код примерно такой (ПриВыводеСтроки):

Если ДанныеСтроки.Ссылка.Статус=А Тогда
 ОформлениеСтроки.Картинка=КА;
ИначеЕсли ДанныеСтроки.Ссылка.Статус=Б Тогда
 ОформлениеСтроки.Картинка=КБ;
КонецЕсли;

Тормозит-с! Именно на извлечении ссылки.

Решили заменить так:

Если ДанныеСтроки.Статус=А Тогда
 ОформлениеСтроки.Картинка=КА;
ИначеЕсли ДанныеСтроки.Статус=Б Тогда
 ОформлениеСтроки.Картинка=КБ;
КонецЕсли;

Летает!
Но, нужно чтобы колонка Статус была видима, иначе выдает ошибку.
Как-нибудь лечится?
1 vs84
 
26.12.06
13:37
Можно ПередОткрытием добавить колонку Статус, если ее нет, и отключить у нее Автоудаление. После этого ДанныеСтроки.Статус не будет зависеть от видимости колонки
2 Sagitarius
 
26.12.06
13:43
Попробуй так:
Врем = ДанныеСтроки.Ссылка;
3 Sagitarius
 
26.12.06
13:44
Врем2 = Врем.Статус;
Если Врем2 = А Тогда
...
ИначеЕсли Врем2 = Б Тогда
...
КонецЕсли;

Должно помочь.
4 Scooter
 
26.12.06
13:44
(0)ПриПолучении данных запросом КЕШ в ТЗ
ПриВыводеСтроки данные бери из кеша
5 Широкий
 
26.12.06
13:52
В "картинки строк" твоей колонки добавляешь массив картинкок.

далее на примере:

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

т.е. меняешь только индекс отображаемой картинки

Если список заведомо большой - юзай при "получении данных", а не "при выводе строки"

+ в твоем случае написал бы так:
ТекСтатус=ДанныеСтроки.Ссылка.Статус;
Если ТекСтатус=А Тогда
 ОформлениеСтроки.Картинка=КА;
ИначеЕсли ТекСтатус=Б Тогда
 ОформлениеСтроки.Картинка=КБ;
КонецЕсли;
6 Гений 1С
 
гуру
26.12.06
13:58
(3) А чем это лучше моего? Основное время идет на извлечение из ссылки объекта, потом данные хэшируются. Самое большое время на первое извлечение ссылки. Нет, спасибо. ;-)

(4) Тогда уж лучше сразу рисовать в ПриПолученииданных... Лень, да и медленнее, чем если используется видимая колонка.

(1) Вот вариант 1 прикольный. Автоудаление - это что такое???
7 vs84
 
26.12.06
13:59
КолонкаСписка (ListColumn)
АвтоУдаление (AutoDelete)
Использование:
Чтение и запись.
Описание:
Тип: Булево. Указывает, необходимо ли удалять колонку при удалении ее из табличного поля.
8 Sagitarius
 
26.12.06
13:59
Народ, читайте ЖК, там черным по белому написано - время выборки напрямую зависит от количество "точек". На практике давно проверено 2 выборки через 1 точку  в 3-5 раз быстрее одной выборки через >1 точки.
9 Гений 1С
 
гуру
26.12.06
13:59
(7) Я уже почитал, как то невнятно написано... ;-)
10 vs84
 
26.12.06
14:00
(9) согласен, но работает как надо ))
11 Гений 1С
 
гуру
26.12.06
14:01
(10) Спасибки... Круто!
12 vs84
 
26.12.06
14:04
Пожалуйста
13 Гений 1С
 
гуру
26.12.06
15:04
А знаете как наш программист извратился?
Он выводит колонку статус, а при выводе строки заменяет текст на картинку. Оригинально... гыгыгы...