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