Друзья, с помощью скриптов из одной Таблицы (назовём её Альфа) можно создать в другой Таблице (назовём её Бета) installable триггер (onEdit, onChange, onOpen, onFormSubmit) и при этом в Таблице Бета никто не увидит ни скрипта, ни триггера.
Как это работает – вы редактор Таблицы Бета, но не владелец, вы создаёте (запуская код ниже) из своей Таблицы Альфа триггер в Таблице Бета. Владелец Таблицы Бета не видит ни триггера ни даже скрипта, на который он создан, но скрипт отлично работает в Таблице Бета покуда у вас есть к ней доступ, работает от вашего имени.
function createTrigger() {
ScriptApp
.newTrigger('название скрипта')
.forSpreadsheet('ID Таблицы') //или forForm, forCalendar, forDocument
.onEdit() //или onChange(), onOpen(), onFormSubmit()
.create()
}function script(e) {
Browser.msgBox(JSON.stringify(e))
}Как это можно использовать – например, вы можете отдать Таблицу со скриптом своим сотрудникам, не переживая, что они этот скрипт изменят, сломают или унесут себе (они его просто не увидят).
Пишите свои варианты использования в комментарии 🙂
Installable triggers
Class ScriptApp