Раскрасить строки ДокументСписок

Форум 1С: Одинэс.Ру

Найти!

Раскрасить строки ДокументСписок

Romario_1c
24.07.2009 - 12:25
Ситуация ДокументСписок. У документа есть реквизит от его значения зависит цвет строки. Делаю так
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
ЗначениеЯчейкиСуммаБрак = ОформлениеСтроки.ДанныеСтроки.Ссылка.СуммаБрак;
Если ЗначениеЯчейкиСуммаБрак <> Неопределено Тогда
Если ЗначениеЯчейкиСуммаБрак > 0 Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.Желтый;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
 
Работает медленно, есть ли другие способы? Спасибо
 
К списку тем 1 > К списку форумов
Google Adsense

Re: Раскрасить строки ДокументСписок

Romario_1c
11 - 24.07.2009 - 13:10
(10) Я все таки не пойму. У меня есть Журнал документа. В нем 4 документа. Разве количество итераций цикла не булет равен 4?

Re: Раскрасить строки ДокументСписок

roma n
12 - 24.07.2009 - 13:12
У меня есть список документов. В нем 2536489 документов. Количество итераций цикла будет гораздо меньше

Re: Раскрасить строки ДокументСписок

Romario_1c
13 - 24.07.2009 - 13:14
(13)Я смотрю в отладчике, получается 4 итерации

Re: Раскрасить строки ДокументСписок

roma n
14 - 24.07.2009 - 13:20
(13) еще раз: у тебя все 4 документа отображаются в списке, все 4 строки необходимо оформить на экране. Вот если документов будет существенно больше, чем может показать форма, вот тут количество итераций будет соответствовать количеству видимых строк
Правда есть ещё особенность - само событие может вызываться не единожды, как можно было бы ожидать

Re: Раскрасить строки ДокументСписок

Romario_1c
15 - 24.07.2009 - 13:22
(14)а-а-а Спаисбо за науку, Да вызывается зараза не единожды.

Re: Раскрасить строки ДокументСписок

Romario_1c
16 - 24.07.2009 - 13:24
(15) Наберусь наглости. А как же его вызывать единожды?

Re: Раскрасить строки ДокументСписок

roma n
17 - 24.07.2009 - 13:33
(16) никак. Это особенность поведения платформы. При перерисовке списка она изо всех сил пытается сохранить текущую строку на прежнем месте. Иногда это получается за одну порцию получения данных из БД, иногда за две (например при единичном клике по стрелке линейки скроллинга), а иногда дёргать данные приходится довольно много раз - это особенно заметно при установленных отборах

Re: Раскрасить строки ДокументСписок

roma n
18 - 24.07.2009 - 13:58
+ Кстати скорость (0) можно заметно увеличить
1) Убрать Ссылка. (см 6) Свойство текущиеДанные уже содержит нужную тебе ссылку и считывать все данные объекта из БД не имеет смысла
2) организовать кеширование данных в форме  и лезть в БД только по объектам, по которым данные не были получены ранее (тут надо думать как этот кеш обновлять при изменении объекта)
3) тащить данные из БД один раз при возникновении события

Re: Раскрасить строки ДокументСписок

Romario_1c
19 - 24.07.2009 - 14:07
(17,18) Спасибо, бум думать.

Re: Раскрасить строки ДокументСписок

roma n
20 - 24.07.2009 - 14:43
(19) че думать-то? Ссылку убери.
2-3 из (18) в данном случае не нужны: оно нужно когда данные дергаешь из других источников (остатки с регистра в справочник номенклатуры и тп)
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
© 2009 Форум 1С: Одинэс.Ру
В основу сайта был положен архив форума «Территория 1С»