|
Запрос тормозит при выводе |
☑ |
0
RINCH
26.04.17
✎
17:50
|
Здравствуйте, Товарищи программисты)
Зада: Раскрасить контрагентов на форме списка при определенном условии (Контрагентов очень много) так что бы не тормозила система... запрос рабочий , но тормозит.
Проблемы: не УПР формы, "Оформление Строк" есть только при событие Получении данных, сделать через запрос так как в дальнейшем условие в запросе усложнится..
Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|ГДЕ
| Контрагенты.ЗапретОбслуживания = ИСТИНА";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Для каждого ОформлениеСтроки из ОформленияСтрок цикл
спСписокПриВыводеСтроки(ЭтаФорма, Элемент, ОформлениеСтроки, ОформлениеСтроки.ДанныеСтроки);
Выборка.Следующий();
Если ОформлениеСтроки.ДанныеСтроки.Ссылка=Выборка.Ссылка Тогда
ОформлениеСтроки.ЦветФона= WebЦвета.Красный ;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
|
|
1
Волшебник
модератор
26.04.17
✎
17:51
|
а-ха-ха...
|
|
2
RINCH
26.04.17
✎
17:52
|
(1) ?)
|
|
3
Волшебник
модератор
26.04.17
✎
17:54
|
(2) Тут и так цикл, а ты делаешь запрос, потом цикл с проверкой на равно...
Добавь скрытую колонку ЗапретОбслуживания и сделай так:
Для каждого ОформлениеСтроки из ОформленияСтрок цикл
спСписокПриВыводеСтроки(ЭтаФорма, Элемент, ОформлениеСтроки, ОформлениеСтроки.ДанныеСтроки);
Если ОформлениеСтроки.ДанныеСтроки.ЗапретОбслуживания Тогда
ОформлениеСтроки.ЦветФона= WebЦвета.Красный ;
КонецЕсли;
КонецЦикла;
|
|
4
apokrit
26.04.17
✎
17:59
|
(3) Наступило время вредных советов? ;)
(0)
1)Нужно сначала перебрать все оформления строк и набить ссылки в массив.
2)В запросе добавить условие Ссылка В &РанееПолученныйМассив
Ну и как бы код вообще не рабочий - ни кто ведь не обещал что порядок строк в выборке будет соответствовать порядку строк в коллекции ОформленияСтрок.
Как вариант - можно например на шаге 1) набить оформления в соответствие с значением ссылки в качестве ключа, дальше обходить выборку и там по ключу искать нужное оформление строки для простановки оформления.
|
|
5
Неверный Параметр И
26.04.17
✎
18:04
|
|
|
6
Fragster
гуру
26.04.17
✎
18:50
|
(4).1 удивительно, но совет совсем не вредный, работать будет наиболее быстро.
|
|
7
Vaflya
26.04.17
✎
22:49
|
Насколько я понял это форма списка контрагентов, запросом берется реквизит из контрагента, вывод - достаточно в цикле перебора оформлений написать Если ...данныестроки.ссылка.запрет Тогда красный цвет и все
|
|
8
RINCH
27.04.17
✎
05:12
|
(7) (6) (4) (3)
Да все оказалась гораздо проще ) Но с другим условием ваши советы пригодятся, Спасибо)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший