Excel это не сложно

Основные форумы => Вопросы по работе в Google-таблицах => Тема начата: Tow от 13.02.2020, 10:57:38



Название: Гугл таблица, как скриптом запустить триггер
Отправлено: Tow от 13.02.2020, 10:57:38
Здравствуйте, подскажите мне пожалуйста. Есть ли возможность запустить скриптом триггер? Ситуация, такая скриптом копирую информация с "листа1" с " таблицы1", в "листа2" с " таблицы2", создал триггер на "редактирование" в "таблицы2", но он не реагирует на копирование скрипта с "таблицы1", создал триггер н изменении тоже самое. А если скопировать в ручную, то срабатывает. Если создавать триггер на время, то нужно чтобы срабатывал каждую минуту, в моем случае не подходит, т.к будет  около 30 триггеров, они могут запускаться одновременно, в таком случае будет каша.  Я так понял триггер не видит работу скрипта, а как сделать, чтобы заметил???


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Дмитрий Щербаков(The_Prist) от 13.02.2020, 11:25:00
Триггеры вроде нормально работали всегда, но вот при внесении изменений скриптами они насколько знаю не срабатывают. Можно попробовать идти от обратного: зачем Вам запускать триггер скриптом, если можно в скрипте все тоже самое и прописать? А триггер будет срабатывать только при изменении в ручном режиме(что логично)?
А так само название триггера в скрипте: onEdit(e)
e - объект, вызвавший триггер.


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Tow от 13.02.2020, 11:56:04
У меня "таблица2" связующая с "таблицой3". Смысл в том, что сотруднику нужно отправить информацию из "таблица1" в "таблица3", но доступ к "таблица3" у него нет, чтобы он не смог увидеть все данные в ней. Поэтому у него есть доступ к "таблица2", а там уже работает триггер. Получается так с "таблица1" скриптом в "таблица2" триггером в "таблица3". А вот здесь можно по подробнее может ко мне подойдет "Можно попробовать идти от обратного: зачем Вам запускать триггер скриптом, если можно в скрипте все тоже самое и прописать?".


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Дмитрий Щербаков(The_Prist) от 13.02.2020, 17:14:44
А вот здесь можно по подробнее
даже не знаю куда подробнее...Просто вместо триггера при записи скриптом чего-то в "таблица 2" дополняете этот скрипт действиями по записи в "таблица3".


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Tow от 13.02.2020, 19:04:44
Ну тогда нужно сотруднику давать доступ к "таблица3", а этого не нужно делать. Я же на писал "но доступ к "таблица3" у него нет, чтобы он не смог увидеть все данные в ней.", или я вас не правильно понимаю???


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Дмитрий Щербаков(The_Prist) от 14.02.2020, 08:55:12
У Вас в Таблица3 данные вносится должны скриптом? Если да - то зачем сотруднику вообще знать, что она есть? Вы можете внести туда данные скриптом без наличия доступа к этой таблице у сотрудника?
Если нет - то и триггер не сможет, т.к. ему так же будут переданы привилегии вызывающего пользователя.
А если да - то и триггер не нужен и заносить можно напрямую скриптом(открыть им нужную таблицу, внести данные и закрыть)


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Tow от 15.02.2020, 16:10:13
Если нет - то и триггер не сможет, т.к. ему так же будут переданы привилегии вызывающего пользователя.
А если да - то и триггер не нужен и заносить можно напрямую скриптом(открыть им нужную таблицу, внести данные и закрыть)
.
Вы очень сильно ошибаетесь триггер сможет занести данные из "таблицы2"  в "таблицы3", даже если у сотрудника не будет доступа и разрешения к ней. А чтобы скриптом занести данные из "таблицы2"  в "таблицы3, нужен доступ к ней  и разрешения к ней. Я бы не запаривался, тогда с "таблицы3". На практике проверил.


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Дмитрий Щербаков(The_Prist) от 15.02.2020, 17:00:07
Как бы... Я вроде и спрашивал - можете ли Вы внести данные скриптом без наличия доступа к таблице у пользователя. Но Вы правы, ошибся в том, что если доступа нет, то триггером вносятся данные, а скриптом нет. Странно это(ведь триггер, это тот же скрипт), но все же.
Хотя что-то мне подсказывает, что возможно надо правильно скрипт написать, раз триггер при ручном внесении изменений пользователем может это сделать даже при том, что у пользователя доступ только к таблице2, а к таблице3 нет. И по сути скрипт вызывается через триггер именно пользователем без привилегий.
Как вообще делаете запрет доступа к Таблице3? Как выглядит скрипт?


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Tow от 15.02.2020, 19:08:22
Вот так:
function Copyrrrr() {
  var sss = SpreadsheetApp.openById('указывае_адресс_с_какой_таблицы_копировать');
  var ss = sss.getSheetByName('указывае_имя_с_какого_листа_копировать');
 
  var from = ss; 
  var fromValues = from.getDataRange().getValues(); 
  var fromData = fromValues

  var tss = SpreadsheetApp.openById('указывае_адресс_в_какую_таблицу_копировать');
  var ts = tss.getSheetByName('указывае_имя_в_какой_лист_копировать');
 
     
  ts.getRange(ts.getLastRow() + 1, 1, fromData.length, fromData[0].length)
    .setValues(fromData);
    }


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Дмитрий Щербаков(The_Prist) от 15.02.2020, 19:23:11
Как делаете запрет доступа к Таблице3?


Название: Re:Гугл таблица, как скриптом запустить триггер
Отправлено: Tow от 15.02.2020, 19:54:56
Ни совсем понял вопрос. Для сотрудника никак не делаю "запрет доступа к Таблице3", да и нет такой функции запрет к таблице. Есть функция кому дать доступ к таблице. В моем случае сотрудник не знает про нее вообще. Единственное можно узнать, это зайти в скрипты "таблицы2" и там по ковыряться и найти, но опять же доступ он к ней не получит, даже если скопирует ссылку, ведь я не давал ему доступ.