Если говорить конкретно, я думаю, что метод .protect для объектов листа не работает, у меня есть код, который добавляет защиту к листу, вызванному пользовательской функцией меню, код работал до вчерашнего дня, который вызывает исключение мой код выглядит примерно так:
function setProtection(fila){
if(fila == undefined){
do{
//check some conditions
}while(isNaN(fila) || fila == undefined || fila<4);
}
var link = bitacora.getRange(fila, 5).getValue();
console.log('Este es el link: '+link) //I put logs just to see where does the code was stopping
var id = link.split('/')[5]
var protection = SpreadsheetApp.openById(id).getSheets()[0].protect();
console.log('Se obtuvo la proteccion');
var me = Session.getEffectiveUser();
console.log(me)
protection.addEditor(me);
protection.removeEditors(protection.getEditors());
if (protection.canDomainEdit()) {
protection.setDomainEdit(false);
}
console.log('Terminé de modificar la protección')
protection.addEditor(//add someone);
}
Дело в том, что теперь функция останавливается на строке:
var protection = SpreadsheetApp.openById(id).getSheets()[0].protect();
Поэтому я попытался выяснить, имеет ли она какое-то отношение к разрешениям или что-то еще, но я являюсь владельцем файла, который я пытаюсь редактировать, странным является то, что защита действительно установлена, но затем выдается исключение: «Ошибка службы: Spradsheets»
Поэтому я попытался изолировать проблему в новой функции, просто пытаясь установить защиту на другом листе
var protection = SpreadsheetApp.openById(randomFileId).getSheets()[0].protect();
Проблема сохраняется, кто-нибудь знает, как решить эту проблему?
Спасибо заранее