Руководство разработчика

Функция ЗАП_КЭШ_ДИАЛОГ_ЖУРН

Функция ЗАП_КЭШ_ДИАЛОГ_ЖУРН позволяет получить значение расчетного столбца из клиентского кэша. Для каждого окна журнала платформа генерирует уникальный строковый идентификатор. Этот идентификатор передается в алгоритмы с помощью поля ОПЕР_КОНТЕКСТ.экземпляр.

ФУНКЦИЯ ЛОГИКА: ЗАП_КЭШ_ДИАЛОГ_ЖУРН(СТРОКА: экземпляр; ЦЕЛОЕ: номер; СТРОКА: столбец, текст)

Параметры

экземпляр
Строковый идентификатор окна.
номер
Уникальный номер операции.
столбец
Имя расчетного столбца.
текст
Текст расчетного столбца.

Возвращаемое значение

ДА – в случае успеха, НЕТ – в случае ошибки.

Пример

Функция ЗАП_КЭШ_ДИАЛОГ_ЖУРН может использоваться для группового расчета значений сразу для нескольких операций.

	
ФУНКЦИЯ СТРОКА: ВычислениеДля(ЦЕЛОЕ: опер_ид)
  ПЕРЕМ дв0 = ДАТАВРЕМЯ_СЕРВ
  ПАУЗА(100)
  ПЕРЕМ дв1 = ДАТАВРЕМЯ_СЕРВ
  РЕЗУЛЬТАТ = СТР(опер_ид) + "^s" + СТР(дв0) + "^s" + СТР(дв1)
КОНЕЦ_ФУНКЦИИ

ВЫЧИСЛИТЬ(ПЕРЕМ ОПЕР_КОНТЕКСТ: контекст; // вход
          ПЕРЕМ ОПЕРАЦИЯ: оп;            // вход
          СТРОКА: столбец;               // вход
          ПЕРЕМ СТРОКА: текст)           // вход/выход

  ПЕРЕМ ЦЕЛОЕ: опер_ид_в_кэше[]
  ЕСЛИ КЭШ_ДИАЛОГ_ЖУРН(контекст.экземпляр, опер_ид_в_кэше, 100) ТО

    ПЕРЕМ ЦЕЛОЕ: опер_ид_для_расчета[] 
    опер_ид_для_расчета += оп.номер
    ЦИКЛ ИНДЕКС (опер_ид = опер_ид_в_кэше[*])
      ЕСЛИ опер_ид <> оп.номер ТО
        ЕСЛИ СУЩ_КЭШ_ДИАЛОГ_ЖУРН(контекст.экземпляр, опер_ид, столбец) ТО
          ОТЛАДКА("Текст уже есть в кэше для: " + СТР(опер_ид) + ", " + столбец)
        ИНАЧЕ
          опер_ид_для_расчета += опер_ид
        КОНЕЦ_ЕСЛИ
      КОНЕЦ_ЕСЛИ
    КОНЕЦ_ЦИКЛА
    
    ОТЛАДКА(опер_ид_для_расчета)
    
    ПЕРЕМ СТРОКА: результаты[ЦЕЛОЕ]
    ЦИКЛ ИНДЕКС (опер_ид = опер_ид_для_расчета[*])
      ПЕРЕМ СТРОКА: выч_текст = ВычислениеДля(опер_ид)
      ЕСЛИ опер_ид = оп.номер ТО
        текст = выч_текст
      КОНЕЦ_ЕСЛИ  
      результаты[опер_ид] = выч_текст
    КОНЕЦ_ЦИКЛА 
    
    ЦИКЛ ИНДЕКС (выч_текст = результаты[опер_ид])
      ЕСЛИ НЕ ЗАП_КЭШ_ДИАЛОГ_ЖУРН(контекст.экземпляр, опер_ид, столбец, выч_текст) ТО
        ОТЛАДКА("Не удалось записать в кэш!")
      КОНЕЦ_ЕСЛИ
    КОНЕЦ_ЦИКЛА
     
  КОНЕЦ_ЕСЛИ
КОНЕЦ

См. также: