|
Программирование 1c v8
| ☑ |
0
KizerSoze
14.07.12
✎
17:16
|
Здравствуйте.
Как отфильтровать таблицу значений (ТЗ) в модуле?
Если это делать через "НайтиСтроки" то в результате возвращается массив со строками таблицы значений, который приходится с использованием циклов преобразовывать в ТЗ, что очень неэффективно.
Можно провести фильтрацию ТЗ без изменения типа?
|
|
1
Maniac
14.07.12
✎
17:17
|
запроом
|
|
2
Rie
14.07.12
✎
17:24
|
(0) А зачем цикл?
ОтфильтрованнаяТЗ = ИсходнаяТЗ.Выгрузить(ИсходнаяТЗ.НайтиСтроки(Фильтр));
|
|
3
KizerSoze
14.07.12
✎
17:25
|
ТЗ, созданная в модуле, ведь не отображается в конструкторе запроса? Или это можно как-то исправить?
|
|
4
KizerSoze
14.07.12
✎
17:26
|
Сейчас проверю вариант Rie
|
|
5
ЛЮС
14.07.12
✎
17:26
|
СтрокиОтбора = ТЗ.НайтиСтроки(Отбор);
ТЗ = ТЗ.Скопировать(СтрокиОтбора);
И даже так:
ТЗ = ТЗ.Скопировать(Отбор);
(2) Выгрузить - метода ТЧ, а не ТЗ.
|
|
6
Rie
14.07.12
✎
17:27
|
(3) Если очень захотеть - то отобразится :-)
|
|
7
Rie
14.07.12
✎
17:27
|
(5) Верно. Скопировать()
|
|
8
izekia
14.07.12
✎
17:28
|
(1) чем страдаешь?
|
|
9
KizerSoze
14.07.12
✎
17:33
|
Страдаю пятиминутной продолжительностью формирования отчета. Ищу пути повышения эффективности.
|
|
10
ЛЮС
14.07.12
✎
17:37
|
(9) ты замер производительности смотрел? А то причесывание различных отборов вне запроса, обычно имеют нулевую эффективность. Надо с текста запроса начинать, использовать параметры таблиц по максимуму, виртуальные таблицы.
|
|
11
KizerSoze
14.07.12
✎
17:46
|
(10) Признаться, я использовал только секундомер мобильника.
У меня получилась "ТЗ = ТЗ.Скопировать(Отбор)".
Отчет у меня без использования СКД, поэтому так или иначе приходится прочесывать строки. Мне нужны промежуточные фильтрации, чтобы подсчитывать подитог "групповых" строк.
|
|
12
KizerSoze
14.07.12
✎
17:47
|
Спасибо всем Вам большое.
|
|
13
ЛЮС
14.07.12
✎
18:17
|
(11) С секундомером это сурово, по-челябински.
Открой для себя инструмент замера производительности от 1С: Отладка - Замер производительности. Как раз обычный отчет проще анализировать.
|
|
14
МихаилМ
14.07.12
✎
19:39
|
используйте скд
|
|