@Mahev

Как разрешить Google App Script редактировать защищенную ячейку или диапазон?

Добрый день!
Прошу помочь, сам не смог разобраться.
У меня есть кастомное меню с кнопкой, на которую назначена функция. Эта функция вызывается и работает в любой ячейке определенного столбца. Если вызвана из нужного столбца - вызывает 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()
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
@Mahev Автор вопроса
Спустя почти 8 часов поиска я разобрался и сделал решение сам.
Если коротко - нужно создать внешнее google web app приложение, в которое с помощью метода fetch передавать адрес ячейки и полученную в промпте от юзера инфу, а уже во внешнем приложении удаленно изменять значение указанной ячейки от имени владельца таблицы (то есть меня).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы