Провожу дальнейшие исследования на тему ускорения работы ТП.
Обнаружилась у меня одна базка, с бОООльшим количеством доков. Если открыть журнал на ТП, например за год, скроллинг тормозит секунды 3. Это сводит на нет всю идею реализации.
Вот, какую идею хочу обсудить:
1. Делаем временную таблицу, ##temp_1sjourn.
ТекстЗапроса = "
|SELECT
| date_time_iddoc,
| iddoc,
| iddocdef,
| docno
|into
| ##temp_1sjourn
|FROM
| _1sjourn
|WHERE
| 1 = 0
|";
2. Загоняем в нее "ближайшие" для текущего документа доки .
ТекстЗапроса = "
|INSERT
| ##temp_1sjourn
|SELECT
| top 100
| date_time_iddoc,
| iddoc,
| iddocdef,
| docno
|FROM
| _1sjourn (NOLOCK INDEX=JOURNAL)
|WHERE
| IDJOURNAL = " + МД.ИДОбъекта(Метаданные.Журнал("Акции")) + " and
| date_time_iddoc >= :Док
|ORDER BY
| date_time_iddoc
|";
ТекстЗапроса = "
|INSERT
| ##temp_1sjourn
|SELECT
| top 100
| date_time_iddoc,
| iddoc,
| iddocdef,
| docno
|FROM
| _1sjourn (NOLOCK INDEX=JOURNAL)
|WHERE
| IDJOURNAL = " + МД.ИДОбъекта(Метаданные.Журнал("Акции")) + " and
| date_time_iddoc < :Док
|ORDER BY
| date_time_iddoc DESC
|";
3. В запросе для ТП ссылаемся на временную таблицу
| FROM
| ##temp_1sjourn Журн (NOLOCK)-- _1SJourn Журн (NOLOCK INDEX=JOURNAL)
| INNER JOIN
| $Документ.ПриходАкций ПриходАкций
| On
| --IDJOURNAL = " + МД.ИДОбъекта(Метаданные.Журнал("Акции")) + " and
| --Журн.date_time_iddoc BETWEEN :НачДата AND :КонДата and
| Журн.iddocdef = $ВидДокумента.ПриходАкций and
| Журн.iddoc = ПриходАкций.iddoc
4. В обработке события ПриАктивизацииСтроки, обновляем временную таблицу.
5. В обработке события ПриНажатииКнопкиКлавиатуры обрабатываем "Номе" и "End".
У меня на боевой базе, даже при установке периода в 3 года , все летает.
Вопрос: Утопична ли такая реализация?