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

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

Найти!

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

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

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

roma n
1 - 24.07.2009 - 12:33
Работает медленно - как определил?
Зачем проверка на неопределено?

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

Romario_1c
2 - 24.07.2009 - 12:39
Ну как определил, журнал с тормазами работать начал. ПОнятно, что если уменьшить период просмотра оно быстрее работает. Я хочу выяснить есть ли более быстрый способ.

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

Uho
3 - 24.07.2009 - 12:42
а причем тут преиод? вызываться должно ведь только для видимых строк

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

Romario_1c
4 - 24.07.2009 - 12:46
(3) Значит я что-то путаю , если поставить большой период жрунала больше документов попадает в список, соответственно больше итераций цикла - соответственно дольше.

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

roma n
5 - 24.07.2009 - 12:49
Путаешь.
Почитай про динамические списки.
Плохо, что все ссылки из Бд дёргаются

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

Lexusss
6 - 24.07.2009 - 12:50
Ссылка. Тормозит

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

Romario_1c
7 - 24.07.2009 - 12:50
(5)А откуда их дергать - из списка?

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

roma n
8 - 24.07.2009 - 12:51
(7)
ОформлениеЯчейки (CellAppearance)
Значение (Value)
Использование:
Чтение и запись.
Описание:
Тип: Произвольный. Содержит значение, отображаемое в колонке. Если колонка, отображающая данное значение связана с данными, то данное свойство доступно только для чтения.

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

Romario_1c
9 - 24.07.2009 - 13:01
Я так в начале и сделал, а потом клиент решил подправить список(настройкой списка, удалил колонку СУммаБрак) и соответствено цвет пропал

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

roma n
10 - 24.07.2009 - 13:03
(9) отбери возможность изменения настройки этой колонки. Или хотя бы настройки видимости

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С»