![]() |
|
УФ Отбор в динамическом списке | ☑ | ||
---|---|---|---|---|
0
ЛучшийПрограммер1С
27.07.23
✎
12:50
|
Программно устанавливаю отбор в динамическом списке.
Список.Отбор.Элементы.Очистить(); Если ЗначениеЗаполнено(НомерПартии) Тогда ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерПартии"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит; ЧтоИскать = СтрЗаменить(НомерПартии, " ", Символы.НПП); ЭлементОтбора.ПравоеЗначение = ЧтоИскать; ЭлементОтбора.Использование = Истина; КонецЕсли; И ситуация такая. Если данных много, за два-три месяца, то поиск идёт только за последний месяц где-то. Строка с нужным номером партии есть в списке. Но её не находит. Скажем строка за май. При выборке - параметрами задаётся период - если выборка май-июль, то не находит. - если же март-май, то находит. |
|||
1
ЛучшийПрограммер1С
27.07.23
✎
13:00
|
Я немного поэкспериментировал. Суть в том, что она ищет записи нужные, но очень долго.
Если они в начале списка, то находит быстро, а если далеко то очень долго, то есть несколько минут или даже часов. Как бы ускорить это? |
|||
2
ЛучшийПрограммер1С
27.07.23
✎
13:17
|
Ну наверное не годится тогда в запросе делать Представление для числа в виде строки, нужно тогда в отдельном поле делать строку и её брать потом в запрос.
|
|||
3
ЛучшийПрограммер1С
27.07.23
✎
13:29
|
причём как-то интересно, на каком-то количестве первых строк быстро находит, а потом тормозит
|
|||
4
shuhard
27.07.23
✎
13:31
|
(3) кэши - наше всё =)
|
|||
5
ЛучшийПрограммер1С
27.07.23
✎
13:40
|
(4) и как мне кэш увеличить?
|
|||
6
ЛучшийПрограммер1С
27.07.23
✎
14:27
|
Нашёл решение. Вместо использования приведения к строке оставил число. Получилось что в колонке или число или строка.
Отбор поменял на поиск в списке. ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("НомерПартии"); ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ЧтоИскать = СтрЗаменить(НомерПартии, " ", Символы.НПП); ИлиИскать = Число(ЧтоИскать); СписокЗнач = Новый Массив; СписокЗнач.Добавить(ЧтоИскать); СписокЗнач.Добавить(ИлиИскать); ЭлементОтбора.ПравоеЗначение = СписокЗнач; ЭлементОтбора.Использование = Истина; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |