Функция КЭШ_ДИАЛОГ_АНАЛИТ
Функция КЭШ_ДИАЛОГ_АНАЛИТ позволяет получить список кодов объектов аналитики, ассоциированных с окном плана аналитики. Получение может осуществляться в алгоритмах, которые вызываются во время показа окна. При листании таблицы объектов кэш заполняется и может содержать тысячи объектов. Для каждого окна плана аналитики платформа генерирует уникальный строковый идентификатор. Этот идентификатор передается в алгоритмы с помощью поля АНАЛИТ_КОНТЕКСТ.экземпляр.
ФУНКЦИЯ ЛОГИКА: КЭШ_ДИАЛОГ_АНАЛИТ(СТРОКА: экземпляр;
ПЕРЕМ СТРОКА: список[];
ЦЕЛОЕ: макс_кол = 0;
СТРОКА: код = "")
Параметры
- экземпляр
- Строковый идентификатор окна.
- список
- Выходной параметр, список кодов объектов в клиентском кэше. Всегда возвращаются полные коды объеектов. Если объектов на уровне плана аналитики много, то кэш содержит лишь часть объектов. Для каталогизаторов возвращаются коды объектов, относящихся к текущей группе. Для группы каталогизатора возвращаются все коды, независимо от количества объектов в группе. Коды возвращаются в порядке следования строк сверху вниз. Т.е. для группы каталогизатора порядок в списке зависит от режима сортировки. Для коллекций коды идут в порядке возрастания, вне зависимости от порядка строк.
- макс_кол
- Необязательный параметр. Максимальное количество кодов объектов. Позволяет ограничить количество возвращаемых кодов указанным количеством самых последних, к которым было обращение в экранном кэше. Параметр учитывается только для таблиц, использующих коллекции объектов аналитики. Для других видов таблиц или при указании 0 (по умолчанию) возвращаются все коды, содержащиеся в кэше. Подробности см. в таблице ниже.
- код
- Необязательный параметр. Опорный код объекта аналитики для получения из кэша кодов в близких строках. Если этот параметр не указан или указан пустой строкой, то возвращаются коды объектов, к которым были самые недавние обращения в кэше. Параметр учитывается только для таблиц, использующих коллекции объектов. Подробности см. в таблице ниже.
Возвращаемое значение
ДА – в случае успешного выполнения, НЕТ – в случае ошибки.
Замечание
В таблицах коллекций объектов поддерживается режим последовательного сканирования, для которого создается отдельный кэш с особыми правилами работы. Режим последовательного сканирования применяется при печати, экспорте, поиске текста, копировании строк таблицы в буфер обмена и др. При вызове функции КЭШ_ДИАЛОГ_АНАЛИТ автоматически определяется контекст вызова – для отображения на экране или для режима сканирования. Особенности поведения в зависимости от режима и значений параметров макс_кол и код приведены в таблице ниже.
Таблица правил получения кодов объектов из кэша
| Значения параметров | Экранный кэш | Кэш сканирования |
|---|---|---|
| макс_кол <= 0, код – не играет роли (по умолчанию) |
Все известные (загруженные в кэш) коды объектов. Их может быть много. | Все коды объектов из кэша сканирования. В одном блоке сканирования содержится не более 200 объектов (для печати и экспорта) и еще меньше для поиска и других задач. |
| макс_кол > 0, код = "" |
Не более макс_кол кодов объектов, к которым были недавние обращения. | Не более макс_кол кодов объектов от начала текущего блока сканирования. Не более размера блока – 200 (для печати и экспорта) и еще меньше для поиска и других задач. |
| макс_кол > 0, код <> "" |
Коды объектов макс_кол/2 вверх от указанного, макс_кол/2 вниз от указанного (до первого объекта, которого нет в кэше). Код указанного объекта включается в список. Если указанный код не найден в кэше, то возвращается пустой список. | Коды объектов макс_кол вперед от указанного (но не далее конца блока). Код указанного объекта включается в список. Если указанный код не найден в текущем блоке, то возвращается пустой список. |