Отладка расчёта алгоритма предназначена для выявления и исправления ошибок, а также позволяет посмотреть промежуточные значения, полученные в ходе расчёта. Просмотр промежуточных значений особенно актуален, если внутри расчёта используются промежуточные кубы без таблиц с данными, то есть по таким кубам нельзя просмотреть полученные значения после окончания расчёта алгоритма.
Для отладки алгоритма:
Настройте выполнение расчёта с помощью окна «Настройка выполнения расчёта».
Задайте параметры:
Проверять арифметические операции. Установите флажок для проверки арифметических операций, используемых в формулах расчёта. Если при расчёте алгоритма в формуле производится деление на ноль, то будет выдано соответствующее сообщение с указанием формулы расчёта и блока:
Для коррекции указанной формулы нажмите кнопку «Остановить», после чего будет остановлен расчёт алгоритма. Отредактируйте формулу вручную и выполните повторный расчёт алгоритма.
Для пропуска ошибки нажмите кнопку «Пропустить». После чего рассчитываемые элементы пропускаются и результатом такого расчёта является пустое значение.
При снятом флажке проверка арифметических операций в формулах не выполняется. Если производится деление на ноль, то рассчитываемые элементы пропускаются и результатом такого расчёта является пустое значение;
Примечание. Проверку арифметических операций можно не выполнять, если формула расчёта задана верно и в результате расчёта допустимо содержание пустых значений.
Не сохранять результат в БД. Установите флажок для расчёта алгоритма целиком или расчёта отдельных блоков без сохранения данных. При снятом флажке результаты расчёта алгоритма сохраняются;
Многопоточный расчет. Установите флажок для ускорения расчёта блоков расчёта и блоков контроля, если установлен флажок «Многопоточный расчет» в мастере редактирования блока расчёта или блока контроля. Для блоков агрегации выполняется только однопоточный расчёт. Для получения подробной информации о многопоточном расчёте обратитесь к разделу «Как выполнять многопоточный расчёт?». По умолчанию флажок снят и выполняется однопоточный расчёт алгоритма;
Поточечный расчет. Установите флажок для изменения способа расчёта формул во всех блоках расчёта и блоках контроля, которые содержатся в алгоритме. При поточечном расчёте алгоритма выполняется последовательный расчёт формул в каждой точке данных: сначала формулы рассчитываются по первой точке данных, затем по второй точке и так далее. Такой расчёт можно использовать, если данные по текущей календарной точке зависят от данных, рассчитанных по предыдущей календарной точке. При снятом флажке используется векторный расчёт, то есть формулы рассчитываются по всем точкам данных.
Примечание. Флажок доступен, если в алгоритме расчёта содержатся блоки расчёта и блоки контроля, для которых заданы формулы расчёта.
Если установлен флажок «Поточечный расчет» для конкретных формул расчёта, то расчёт может выполняться несколькими способами. Способы расчёта формул приведены на схемах ниже.
Если в формуле расчёта используются элементы атрибута версионного справочника, то при расчёте алгоритма значения элементов будут одинаковыми для каждой календарной точки.
Важно. Использование параметра приводит к снижению производительности и продолжительному расчёту алгоритма.
Если в алгоритме расчёта содержатся блоки агрегации, то при использовании поточечного расчёта алгоритма невозможен расчёт агрегации для одной календарной точки. Выберите способ расчёта блоков агрегации с помощью переключателей:
Не рассчитывать агрегацию. Блоки агрегации не будут рассчитаны;
Рассчитать до поточечного расчёта. Блоки агрегации будут рассчитаны до поточечного расчёта блоков расчёта и блоков контроля;
Рассчитать после поточечного расчёта. По умолчанию. Блоки агрегации будут рассчитаны после поточечного расчёта блоков расчёта и блоков контроля.
Примечание. Порядок расчёта блоков агрегации в дереве расчёта учитывается только при использовании поточечного расчёта конкретных формул расчёта. При использовании поточечного расчёта алгоритма порядок расчёта блоков агрегации зависит от выбранного способа расчёта.
Для применения заданных параметров нажмите кнопку «Применить».
Если в нескольких блоках используется разная отметка одного и того же источника, установите флажок «Загружать данные отдельно от остальных» в контекстном меню этих блоков в дереве расчёта. Раздельная загрузка данных в таком случае выполняется быстрее и сокращает общее время расчёта алгоритма. Флажок доступен для всех видов блоков.
Для отладки всего алгоритма нажмите кнопку «Рассчитать алгоритм» в группе «Отладка».
Для отладки отдельных блоков выделите их в рабочей области или дереве
расчёта. Для этого в рабочей области используйте клавишу SHIFT, в
дереве расчёта - клавишу CTRL или SHIFT. После выбора блоков нажмите
кнопку «Рассчитать
выделенные» в группе «Отладка».
После запуска расчёта начнётся загрузка данных в алгоритм. После окончания загрузки станет доступна кнопка «Продолжить». Нажмите её для перехода к следующему шагу в расчёте.
Рассчитанный блок меняет свой вид в рабочей области: он становится зелёным. Например, слева блок до расчёта, справа - после расчёта:
Для перехода к определённому шагу расчёта выберите его в раскрывающемся меню кнопки «Продолжить». В меню содержатся все шаги, которые ещё не были выполнены.
Для остановки расчёта нажмите кнопку «Остановить» в группе «Отладка».
Во время отладки расчёта все объекты алгоритма доступны для чтения. Например, можно посмотреть настройки блока расчёта или открыть результаты расчёта блока в инструменте «Аналитические запросы (OALP)».
Примечание. Если при настройке выполнения расчёта был установлен флажок «Не сохранять результаты в БД», но после окончания расчёта необходимо сохранить данные, то нажмите кнопку «Сохранить значения» в группе «Параметры расчёта».
После завершения отладки расчёта будет отображен диалог с результатами. Например:
Если при расчёте возникла ошибка, то будет отображено соответствующее сообщение.
Примечание. Если в структуре алгоритма расчёта содержатся ветвления, то при расчёте алгоритма проверяются условия выполнения веток. В результате проверки загружаются только те источники данных, которые заданы для объектов, содержащихся в удовлетворяющих условиям ветках. Данная оптимизация позволяет сократить время загрузки данных.
Для ускорения расчёта алгоритма обратитесь к разделу «Как ускорить расчёт алгоритма?».
В примере выполняется пошаговый расчёт алгоритма. При этом приёмник данных одного из блоков будет открыт до расчёта и во время расчёта.
См. также:
Начало работы с расширением «Алгоритмы расчёта» в веб-приложении | Построение алгоритма расчёта | Как выполнять многопоточный расчёт?