Я создал в проекте несколько рабочих скриптов.
Из этого проекта с набором скриптов я решил сделать библиотеку, к которой будут подключаться пользователи и использовать скрипты, которые он предоставляет.
Идентификатор библиотеки: "MyPro"
В нем есть скрипт, который называется "onEdit001" - записывает информацию о внесенных изменениях в Гугл таблице на соответствующем листе.
Скрипт имеет код:
function onEdit001(event) {
var as = event.source.getActiveSheet();//Текущий лист
var address = event.range.getA1Notation().toUpperCase();//Адрес ячейки
var row = event.range.getRow(); //Номер строки
var col = event.range.getColumn(); //Номер столбца
var newValue = event.value; //Новое значение
var oldValue = event.oldValue; //Старое значение
var userEmail = event.user.getEmail();//Пользователь(работает только при вручную назначенном триггере)
let archiveSheetName = "reg";//Лист, на который выводится информацию об изменениях
let ss = SpreadsheetApp.getActiveSpreadsheet();
let archiveSheet = ss.getSheetByName(archiveSheetName) || ss.insertSheet(archiveSheetName);
archiveSheet.appendRow([new Date(), userEmail, as.getName(), address, oldValue, newValue]);
};
Теперь Пользователь создает у себя скрипт, который ссылается на вышеуказанную функцию "onEdit001" из библиотеки "MyPro".
Выглядит это так:
function myproEdit001() {
MyPro.onEdit001;
}
Далее пользователь заходит в раздел Триггеров и ссылается функцию "myproEdit001" (который привязан к скрипту из подключенной библиотеки). Триггер должен срабатывать каждый раз, когда Пользователь вносит какие то изменения в Гугл таблицу.
Теперь по логике, когда Пользователь в Гугл таблице делает какие-либо действия редактирования, Триггер должен активировать скрипт "myproEdit001", который должен в свою очередь запустить функцию "onEdit001" из библиотеки "MyPro". На указанном листе "reg" из функции "onEdit001" должна появиться соответствующая информация. Но ничего не происходит. Где то нарушена цепочка событий, или неправильно закодировано... Помогите, пожалуйста разобраться.
Делается это для того, что бы каждый Пользователь давал "разрешение" системе указывать свою почту в Гугл таблице. Иначе скрипт работает только в случае, когда Таблица редактировать только Владельцем.
По возможности дайте, пожалуйста, развернутый ответ, так как я очень далек от программирования. И все действия делал "наугад" после предыдущих моих постов с ответами..