Добрый день!
Прошу помочь, сам не смог разобраться.
У меня есть кастомное меню с кнопкой, на которую назначена функция. Эта функция вызывается и работает в любой ячейке определенного столбца. Если вызвана из нужного столбца - вызывает ui.prompt, регуляркой проверяет введенное юзером значение и записывает полученное значение в активную ячейку и ведет лог.
Вопрос: как мне сделать так, чтобы ячейки столбца, который будут изменять юзеры, были защищены от редактирования руками, но при этом этом редачились через написанную функцию, путём нажатия кнопки меню ?
Если просто защитить столбец от редактирования, кнопка (скрипт) с аккаунта юзера возвращает ошибку - редактирование запрещено.
Пробовал через класс Protection, ничего не вышло :(
Очень прошу помочь, спасибо!
Кусок кода:
var check = function (callback) {
var response = ui.prompt('Изменить плановое время сборки', 'Введите новое время в формате ЧЧ:ММ:', ui.ButtonSet.OK_CANCEL);
if (response.getSelectedButton() === ui.Button.CANCEL || response.getSelectedButton() === ui.Button.CLOSE) return
if (!response.getResponseText().match(/^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/)) {
ui.alert('Время указано неправильно, повторите ввод.')
check()
}
else {
fin (response.getResponseText())
}
}
var fin = function (data) {
spreadsheet.toast(`Плановое время сборки изменено на ${data}`, 'Готово!', 10)
logSheet.appendRow([new Date(), "Ячейка: ", changed_cell, 'Было:', spreadsheet.getActiveRange().getValue(), 'Стало:', data, 'пользователь:', me]);
spreadsheet.getActiveCell().setValue(data);
return
}
check()