Как более оптимизированно сделать оформление строка на форме списка?
Собственно есть документ всем известный Заказ покупателя, нужно строку выделять зеленым цветом, если этот документ участвует в документе "Сборка". Документ "Сборка" ни в каких движениях не участвует.
Собственно, получается только писать запрос. Работает довольно быстро, но каждый день растет большое количество заказов.
Как стоит оптимизировать или как лучше реализовать?
Собственно, получается только писать запрос. Работает довольно быстро, но каждый день растет большое количество заказов.
Как стоит оптимизировать или как лучше реализовать?
Процедура СписокПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Заказ", ДанныеСтроки.Ссылка);
Запрос.Текст = "ВЫБРАТЬ
| СборкаДокументыСборки.Ссылка
|ИЗ
| Документ.Сборка.ДокументыСборки КАК СборкаДокументыСборки
|ГДЕ
| СборкаДокументыСборки.Ссылка.ПометкаУдаления = ЛОЖЬ
| И СборкаДокументыСборки.ЗаказПокупателя = &Заказ";
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() ИЛИ ДанныеСтроки.Ссылка._Самовывоз Тогда
ОформлениеСтроки.ЦветФона = WebЦвета.СветлоЗеленый;
КонецЕсли;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Значительно быстрее будет делать запрос не к каждому документу Заказ отдельно, а всем скопом получить, и потом только обрабатывать таблицу значений. Конкретная реализация зависит от:
а) управляемые формы или обычные (какая конфигурация?)
б) если управляемые, то динамический список, или?
а) управляемые формы или обычные (какая конфигурация?)
б) если управляемые, то динамический список, или?
1) используйте процедура СписокПриПолученииДанных, при выводе строки забудьте как страшный сон
2) можно в форме списка объявить переменную формы "пКэш", тип которой указать как "Соответствие", тогда в процедуре "ПриПолученииДанных" при обходе офрмлений, пытаться по ссылке на документ узнать его соответствие (например булево - типа выделять или нет), если ответ неопределено, тогда ссылку в массив, который в запрос
2) можно в форме списка объявить переменную формы "пКэш", тип которой указать как "Соответствие", тогда в процедуре "ПриПолученииДанных" при обходе офрмлений, пытаться по ссылке на документ узнать его соответствие (например булево - типа выделять или нет), если ответ неопределено, тогда ссылку в массив, который в запрос
(4)(5) ну и запрос я бы переписал для этого как-то так
ВЫБРАТЬ РАЗЛИЧНЫЕ
СДС.ЗаказПокупателя
ПОМЕСТИТЬ ТЗ
ИЗ
Документ.Сборка.ДокументыСборки КАК СДС ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Сборка КАК С ПО СДС.Ссылка = С.Ссылка
ГДЕ
НЕ С.ПометкаУдаления И СДС.ЗаказПокупателя В(&мЗаказы)
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
З.Ссылка
ИЗ
Документ.ЗаказПокупателя КАК З ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТЗ КАК ТЗ ПО (З._Самовывоз ИЛИ ТЗ.ЗаказПокупателя = З.Ссылка)
ГДЕ
З.Ссылка В(&мЗаказы)
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот