Это статья будет полезна тем, кому необходимо изменить или доработать готовый код Apps Script (в том числе и код, размещённый на этом сайте) под свои насущные потребности.
И первый вопрос:
Разумеется, для того чтобы код снова заработал, его необходимо отлаживать или “дебажить” (от английского debug).
И прежде всего нам необходимо найти то самое место, после которого начинается проблемы и код ведёт себя совсем не так, как от него ожидают.
Стратегий здесь может быть несколько. Самая надёжная из них (но не самая быстрая) - это пошагово пройтись по всему коду, начиная с самого начала.
Для этого в окне редактора необходимо:
На этом рисунке программа остановилась как раз в точке останова в 32-й строке.
Там же на рисунке видно, что в правом блоке под заголовком Debugger находятся четыре кнопки:
Ниже кнопок управления блока Debugger находится блок Variables, где показывается текущее значение переменных в каждой точке останова программы.
Кроме этого мы может вывести нужные значения в консоль с помощью команды
console.log(variable)
На снимки эти данные отображены в нижней части в блоке Execution log.
Если мы хотим проверить работу функции, у которой есть аргументы, (например функции fillColumn(row, col, mask)) то лучшим решением будет сначала создать вспомогательную функцию tmp(), где
Тогда, запуск для отладки этой самой вспомогательной функции tmp(), по сути будет запуском самой функции fillColumn с аргументами.
Собственно говоря, на приведённом выше рисунке функция tmp() как раз и играет подобную вспомогательную роль для функции fillColumn(row, col, mask).
Системная функция onEdit(e) служит для того, чтобы перехватывать изменение/ввод данных на листах Google-таблиц, и не реагирует на стандартную обработку дебагером по breakpoint. Поэтому “отдебажить” её обычным образом у нас не получится.
Решений может быть, как минимум, два:
Browser.msgBox(variable);
Для удобства отладки по второму сценарию в качестве аргументов variable можно добавить значения каких-либо переменных.
Теперь для запуске второго варианта необходимо внести любые изменения на лист Google-таблицы. Это немедленно запустит функцию onEdit(e). И если до строки запуска месседж-бокса нет никаких ошибок, то мы обязательно увидим окно с именем переменной variable.
Дополнительную информация о способах отладки скриптов в редакторе Apps Script, вы сможете получить из этого видео: