Отладчик
Эта вкладка позволяет посмотреть состояние переменных в момент выполнения кода. Это очень удобно, когда нужно починить переставший работать скрипт или просто отладить его.

Чтобы воспользоваться отладкой, поставьте в коде инструкцию отладки со следующим синтаксисом: debug(parameter : text). Когда код дойдёт до этой инструкции, на вкладке Отладчик появится запись: содержимое параметра станет её заголовком, а под ним будет показана структура всех доступных в этот момент переменных с их текущими значениями.
Панель Ninext должна быть открыта: при закрытой панели достигнутые точки отладки не фиксируются. А вот вкладке Отладчик не обязательно быть на переднем плане.
Чтобы опробовать примеры с этой страницы, вставьте их в Консоль и выполните: Отладчик сразу покажет их точки отладки. Корзина в правом верхнем углу Отладчика очищает список.
Примечание: любую особо интересующую вас переменную можно добавить прямо в текстовую строку, чтобы сразу увидеть её значение на вкладке «Отладчик», — но следите за тем, чтобы тип был текстовым! (например, debug("Debug point 1 : " + Variable1); )
Если присмотреться к вкладке, видно, что при каждом выполнении инструкции debug создаётся новая строка.
В этой строке указано имя точки отладки — текст, переданный параметром в функцию debug, например: debug("my debug point").
В начале строки также показано время, прошедшее с предыдущей строки отладки. Это помогает оценивать быстродействие кода (см. ниже). У первой строки всегда значение «start».
Сама эта строка отладки содержит по строке на каждую переменную, видимую в этом месте скрипта: переменные, объявленные до инструкции debug, переменную цикла и даже ту, объявление которой ещё выполняется, — её значение тогда «void». В каждой строке переменной указаны имя, тип, значение и фрагмент кода, где переменная объявлена.

Раскрыть, скопировать, открыть
Значения выводятся так же, как в Консоли:
- список, запись, объект, ссылка или текст, содержащий JSON, раскрываются щелчком по стрелке;
- при наведении на строку появляется кнопка, копирующая её значение; на строке точки отладки она копирует всю трассировку;
- подчёркнутое значение обозначает запись: щелчок открывает её в Ninox.
Использование в циклах
Если поставить debug внутрь цикла, вы увидите состояние переменных на каждом витке. Видно также время, потраченное на каждый виток. В примере ниже задержка чаще всего остаётся меньше 1 мс.
let a := select Customer
let d := for i in a do
debug("for each customer");
i.'first name' + " " + i.'last name';
end;
debug("all customers");
d;
Но если добавить дорогую по времени выполнения инструкцию, например «select», станет видно, что время между витками заметно вырастает.
let a := select Customer
let d := for i in a do
let e := select Invoice where Customer = i;
debug("for each customer");
i.'first name' + " " + i.'last name' + " " + sum(e.TOTAL);
end;
debug("all customers");
d;
Поставив инструкцию debug до и после блока скрипта, можно измерить общее время его выполнения:
debug("start of script");
let a := select Customer
let d := for i in a do
i.'first name' + " " + i.'last name';
end;
debug("end of script");
d;
