Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Гугл таблица, как скриптом запустить триггер

Автор Tow, 13.02.2020, 10:57:38

« назад - далее »

Tow

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

Дмитрий Щербаков(The_Prist)

Триггеры вроде нормально работали всегда, но вот при внесении изменений скриптами они насколько знаю не срабатывают. Можно попробовать идти от обратного: зачем Вам запускать триггер скриптом, если можно в скрипте все тоже самое и прописать? А триггер будет срабатывать только при изменении в ручном режиме(что логично)?
А так само название триггера в скрипте: onEdit(e)
e - объект, вызвавший триггер.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Tow

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

Дмитрий Щербаков(The_Prist)

Цитата: Tow от 13.02.2020, 11:56:04А вот здесь можно по подробнее
даже не знаю куда подробнее...Просто вместо триггера при записи скриптом чего-то в "таблица 2" дополняете этот скрипт действиями по записи в "таблица3".
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Tow

Ну тогда нужно сотруднику давать доступ к "таблица3", а этого не нужно делать. Я же на писал "но доступ к "таблица3" у него нет, чтобы он не смог увидеть все данные в ней.", или я вас не правильно понимаю???

Дмитрий Щербаков(The_Prist)

У Вас в Таблица3 данные вносится должны скриптом? Если да - то зачем сотруднику вообще знать, что она есть? Вы можете внести туда данные скриптом без наличия доступа к этой таблице у сотрудника?
Если нет - то и триггер не сможет, т.к. ему так же будут переданы привилегии вызывающего пользователя.
А если да - то и триггер не нужен и заносить можно напрямую скриптом(открыть им нужную таблицу, внести данные и закрыть)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Tow

Цитата: Дмитрий Щербаков(The_Prist) от 14.02.2020, 08:55:12
Если нет - то и триггер не сможет, т.к. ему так же будут переданы привилегии вызывающего пользователя.
А если да - то и триггер не нужен и заносить можно напрямую скриптом(открыть им нужную таблицу, внести данные и закрыть)
.
Вы очень сильно ошибаетесь триггер сможет занести данные из "таблицы2"  в "таблицы3", даже если у сотрудника не будет доступа и разрешения к ней. А чтобы скриптом занести данные из "таблицы2"  в "таблицы3, нужен доступ к ней  и разрешения к ней. Я бы не запаривался, тогда с "таблицы3". На практике проверил.

Дмитрий Щербаков(The_Prist)

Как бы... Я вроде и спрашивал - можете ли Вы внести данные скриптом без наличия доступа к таблице у пользователя. Но Вы правы, ошибся в том, что если доступа нет, то триггером вносятся данные, а скриптом нет. Странно это(ведь триггер, это тот же скрипт), но все же.
Хотя что-то мне подсказывает, что возможно надо правильно скрипт написать, раз триггер при ручном внесении изменений пользователем может это сделать даже при том, что у пользователя доступ только к таблице2, а к таблице3 нет. И по сути скрипт вызывается через триггер именно пользователем без привилегий.
Как вообще делаете запрет доступа к Таблице3? Как выглядит скрипт?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Tow

Вот так:
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);
    }

Дмитрий Щербаков(The_Prist)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Tow

#10
Ни совсем понял вопрос. Для сотрудника никак не делаю "запрет доступа к Таблице3", да и нет такой функции запрет к таблице. Есть функция кому дать доступ к таблице. В моем случае сотрудник не знает про нее вообще. Единственное можно узнать, это зайти в скрипты "таблицы2" и там по ковыряться и найти, но опять же доступ он к ней не получит, даже если скопирует ссылку, ведь я не давал ему доступ.

Яндекс.Метрика Рейтинг@Mail.ru