Google Apps Script.Триггеры-запуск скриптов в определенный момент.Triggers Google Sheets Урок 8.

Поділитися
Вставка
  • Опубліковано 14 жов 2024
  • В этом уроке я расскажу о Триггерах в Google Apps Script которые при наступлении разных событий запускают ваш скрипт, из видео вы узнаете зачем нужны триггеры, где они используются и как с помощью них можно дать временный доступ пользователям к защищенному диапазону.
    Смотрите до конца, будет интересно.
    #STMSolution #Googlesheets #Googlescript
    Поддержи автора канала пальцем в верх и подпиской это для
    меня лучший стимул продолжать развиваться.
    Станьте спонсором канала, и вы получите доступ к эксклюзивным бонусам. Подробнее:
    / @stmsolution
    💰 Поддержать монетой:
    🎊 stm-solution.d...
    🥇Bitcoin - bc1q5ve3p8zmcm6z9tapts6padpmnvv572tsujukad
    📲 Через кнопку "Спасибо"
    👍 Или станьте спонсором канала!
    Все уроки по Гугл таблицам в одном плейлисте - • Google таблицы. Как со...
    Помощь по гугл таблицам - пишите в ВК id8947072
    Мой паблик в Telegram - t.me/stmsolution
    Буду рад видеть вас в моей группе ВК - public1...
    Twitter - / stm_solution
    Мой сайт stmsolution.ru
    Еще больше видео на моем канале / @stmsolution

КОМЕНТАРІ • 102

  • @stmsolution
    @stmsolution  4 роки тому +2

    Пишите свои пожелания и замечания сюда. Постараюсь на все ответить.
    Если вам нравится видео, вы можете его поддержать лайком а так же, при желании, поддержать канал монетой
    🎊 stm-solution.diaka.ua/donate
    🥇Bitcoin - bc1q5ve3p8zmcm6z9tapts6padpmnvv572tsujukad
    📲 Через кнопку "Спасибо"
    👍 Или станьте спонсором канала!

    • @commypanda8177
      @commypanda8177 3 роки тому

      Тайм-коды были бы кстати

  • @alexpo87
    @alexpo87 4 роки тому +24

    Чувак, я с твоей подачи начал углубляться в гугл шитс/скриптс, посомтрел почти все ролики и могу сказать - это великолепно! )))
    Спасибо тебе большое! Жду видео как горячих пирожков

    • @stmsolution
      @stmsolution  4 роки тому +1

      Спасибо, очень приятно, что не зря все делаю!

    • @emersonkonnor6338
      @emersonkonnor6338 3 роки тому

      I know I am kind of off topic but do anyone know a good website to watch new movies online?

  • @Елена_Позднякова
    @Елена_Позднякова 4 роки тому +3

    Большое спасибо за видео! Уже в который раз пересматриваю, параллельно разбираюсь с документацией разработчика, экспериментирую с кодом. Вы мне очень помогли! 🌸🌸🌸

  • @юрийВеретнов-н4з
    @юрийВеретнов-н4з 4 роки тому +6

    Очень здорово!
    Ждём видео, как отправить событие через копку с телефона

  • @СтаниславГончаров-ш8ш

    Полезный контент как раз то что нужно

  • @AlexeyKorytko
    @AlexeyKorytko 4 роки тому +3

    Автору лайк!
    Порекомендуйте хорошие курсы по скриптам гугла. Интересуют с учебной программой, а не просто набор видео уроков.

    • @stmsolution
      @stmsolution  4 роки тому

      К сожалению, по скриптам нет курсов, на сколько знаю, только по таблицам.

    • @AlexeyKorytko
      @AlexeyKorytko 4 роки тому

      @@stmsolution спасибо

  • @VRplaYK1
    @VRplaYK1 4 роки тому +2

    Хм. Если тут зависать, то постепенно дойдёт. Стопудоф... Жду следующий урок. Спасибо большое

    • @stmsolution
      @stmsolution  4 роки тому +1

      Стараемся, спасибо что смотрите.

  • @inkognitoneparsya8211
    @inkognitoneparsya8211 4 роки тому

    Классные темы, продолжайте дальше)
    Хочу замутить график для работников, где бы отображались замены, больничные и отпуска, и что бы можно было делать выборки, кто сколько отработал, проболел и тд и быстро изменять если нужно.

  • @ОксанаХарченко-д9г

    Все хорошо и понятно. Доступная подача материала. Единственное качество видео максимальное 720, все видно, но глазу приятно качество повыше. Но это не помешает мне пользоваться Вашими уроками.

    • @stmsolution
      @stmsolution  Рік тому

      не силен я в монтаже видео))

  • @sergeykimkz
    @sergeykimkz 3 роки тому

    Здравствуйте, хочу предложить тему для видео. Есть страница "заказы", и предполагается, что заказ выполняется или должен быть выполнен
    в этот же день, на следующий сутки заказ уже теряет смысл (например заказ курьера на перевозку документов из одного места в другое
    или доставка пиццы и т.д.). Совокупность заказов текущего дня при наступлении следующих суток (это триггер) должна перейти на другую страницу "архив",
    а сама совокупность на странице заказы должна очиститься для освобождения места на новых заказав наступающего суток
    Тема важна для многих и привлечет много просмотров и лайков.

  • @AleksTrifonov
    @AleksTrifonov 2 роки тому +1

    Отлично! Но есть вопрос.
    Мы защитили диапазон от редактирования, и расчеты производятся скрпитом, который запускается триггером. А если редактор изменит скрипт, который подвешен на триггер? Он ведь там, по сути, написать может что угодно. Есть возможность защитить скрипт от редактирования?

  • @Nik_tvnow
    @Nik_tvnow 3 роки тому

    Классный контент, спасибо за труд!!!

  • @АндрейХлыбов-н5т

    Спасибо!

  • @dimitripasmore
    @dimitripasmore 4 роки тому

    Спасибо. Супер интересно и доступно.

  • @Gulnara1709
    @Gulnara1709 3 роки тому +1

    Спасибо Вам

  • @mishakrutiytr
    @mishakrutiytr 4 роки тому +2

    через тригери гугл форми можна на телефоні скоро створювати документи, договора і т . д. Тобто якщо є клієнт для якого потрібно швидко зробити договір по шаблону тоді в гугл форму записуєм дані клієнта а макроси або формули автоматично закидають їх в поля договору. Дальше сожна зберегти його в PDF, зразу роздрукувати і надіслати поштою, і це все в декілька кнопок на телефоні.

    • @stmsolution
      @stmsolution  4 роки тому

      Да, есть такая возможность

    • @rehau-8587
      @rehau-8587 4 роки тому

      Підкажіть, будь ласка, як можна поєднати в Гугл диск доковський і екселівський документи? При зоповненні договору, щоб вся інфа відображалась і в базі і в інших документах. Ніяк не можу знайти.

  • @РинатАхметзянов-ц8б

    Все так просто оказывается ) спасибо за этот контент 👍
    А можно ли заполнить шаблонный документ используя скрипты ? Порой необходимо подготовить кучу документов для печати

    • @stmsolution
      @stmsolution  4 роки тому

      Можно конечно, делаете шаблон , заполняете его скриптами и делаете копию для печати

  • @pomor117
    @pomor117 4 роки тому

    Очень полезно !!!

  • @АнатолийАнатольевич-ж2ы

    лайк. спасибо за твою пользу

  • @aleksey3750
    @aleksey3750 4 роки тому

    Спасибо большое!!!!

  • @ВячеславБаландин-д1р

    Приветствую!
    За урок огромное спасибо!
    Сразу решил применить в работе. Возникла проблема, триггер настроен на проставление даты, если ячейка примет значение Выполнено (режим - при редактировании). Было всё отлично, пока я не автоматизировал проставление Выполнено по условию =IF(ISBLANK(C19);"Анализ";IF(B19=True;"Выполнено";"В процессе")). Условие соблюдается, в ячейке значение Выполнено, а дата не проставляется больше по триггеру.
    Подскажете решение?

    • @stmsolution
      @stmsolution  Рік тому

      Вместо формулы тот же скрипт пропишите

  • @Андрей-з5з6в
    @Андрей-з5з6в 2 роки тому +1

    Подскажите пожалуйста , а какая разница в тригерах между "при редактировании" и "при изменении"?

    • @stmsolution
      @stmsolution  2 роки тому +1

      Изменение может быть без редактирования. На пример, у вас через importrange тянутся данные из другой таблицы, и вы хотите что бы при изменении данных в другой таблице, записывалась дата и время в этой таблице. Такой себе лог изменений в другой таблице, так вот при редактировании - триггер тут не сработает, а вот при изменении , да, так как данные в листе будут меняться без редактирования. Пример дурацкий, но надеюсь обьяснил.

  • @МосгортурМГТ
    @МосгортурМГТ 2 роки тому

    добрый день! Уточните, почему при установки триггера в определенное время Формат не дает установить дату и время, в каком формате устнавливается?

  • @ОлександрКарпенко-к5т

    Подскажите по тригеру на определенную дату время. Ввожу дату и время в формате из подсказки гугл, но поле красное и не дает сохранить дд.мм.гггг, чч:мм. В чем ошибка?

  • @ГИЭТББишкек
    @ГИЭТББишкек 4 роки тому +2

    Здравствуйте при выборе триггера по определенному дату сохранения не происходить, помогите пожалуйста как запустить триггер по определенному дату и времени

    • @Елена_Позднякова
      @Елена_Позднякова 4 роки тому +1

      Триггер можно устанавливать с помощью кода. Вот здесь как раз есть 2 примера триггеров с датами: developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically

  • @ТаняГаштольд
    @ТаняГаштольд 4 роки тому

    Добрый день. Спасибо за видео, развиваюсь в этом направлении. Похоже вы Профи, может решите этот ребус). Сейчас пытаюсь решить одну задачу. Может быть у вас есть идеи, как это можно сделать. Есть два гугл документа №1 и №2. В №1 - 1Лист, в №2 - 3 Листа. Данные из №1 и двух Листов документа №2 попадают в Лист3 (документа №2). Там данные обрабатываются и возвращаются обратно. Гугл таблицы обмениваются данными с помощью IMPORTRANGE. К таблицам в №1 и №2 будут иметь доступ разные группы людей с доступом - редактирование. Задача: в документе №2 нужно скрыть Лист3, в котором будут обрабатываться эти данные от всех, кроме меня. Цель - скрыть формулы расчета. К этому Листу ни у кого не должно быть доступа на его открытие. При попытке восстановить функцию "Показать Лист", ( а еще лучше при скачивании или копировании этого гугл документа) чтобы запрашивался пароль, который будет только у меня. Я решила эту задачу, создав три гугл документа, и в итоге никто не имеет доступа к расчетам, но столкнулась с тем, что данные возвращаются с большой задержкой (более 1 минуты), а нужно получать мгновенно, как если бы они все были в одном файле. Есть идеи?

    • @stmsolution
      @stmsolution  4 роки тому

      Скриптами, через триггеры , а пароль через вывод диалогового окна

  • @romansmirnov1633
    @romansmirnov1633 Рік тому

    Очень хочу понять, как настроить триггер, чтобы скрипт запускался строго в определенное время (мин) с помощью календаря (такая функция имеется, но не понятно, как ее настроить)

  • @crypto_portfolio
    @crypto_portfolio 2 роки тому

    Спасибо за ваши уроки! Подскажите, столкнулся с ситуацией: я записал макрос. Хочу что бы он выполнялся по тригеру времени. Но этого не происходит. В журнале выполнений все ок. Ошибок нет. Есть лог что он выполняется. Но по факту ничего не происходит. При ручном запуске макрос выполняется. По запуску по времени - нет (( Знаете как исправить эту ситуацию?

    • @stmsolution
      @stmsolution  2 роки тому

      Я не вижу что у вас там сделано, предполагаю что какое то условие не отрабатывает или может не тот скрипт на триггер повесить

    • @crypto_portfolio
      @crypto_portfolio 2 роки тому +1

      @@stmsolution Разобрался. Макрос по трипперу времени выполняется только если страница на которой он выполняется является первой по очереди. В противном случае нужно как то указывать либо Id либо имя страницы. Просто сделал страницу первой и все заработало.

    • @stmsolution
      @stmsolution  2 роки тому +1

      Это не лучшее решение, лучше через getSheetByName() обращайтесь к листу и все

    • @ДаленСуюнов
      @ДаленСуюнов 2 роки тому

      Здравствуйте, получилось? Голову тоже вот ломаю

    • @crypto_portfolio
      @crypto_portfolio 2 роки тому

      @@ДаленСуюнов Да. Сделал страницу первой

  • @inkognitoneparsya8211
    @inkognitoneparsya8211 3 роки тому

    Очень интересно как при помощи гугл таблицы залогиница по логин у и паролю на сайт и выгрузить данные, таблицы

    • @stmsolution
      @stmsolution  3 роки тому

      Посмотрите UrlFetchApp

  • @evgenkurnitsky
    @evgenkurnitsky 4 роки тому +1

    Просмотрел все ролики. учусь многому.
    если есть желание по сотрудничать , можем пообщаться в ЛС!

    • @stmsolution
      @stmsolution  4 роки тому

      пишите мне в телеграм +380500803198

    • @evgenkurnitsky
      @evgenkurnitsky 4 роки тому

      @@stmsolution ок

  • @Vladimir-nw9xd
    @Vladimir-nw9xd 7 місяців тому

    Подскажите, пожалуйста, можно ли настроить триггер так, чтобы он запускался по времени при закрытой таблице. Например, ночью в 3:00, когда с таблицей никто не работает.

    • @stmsolution
      @stmsolution  7 місяців тому +1

      Конечно, триггер по времени выбираете и там дальше под себя ставите

    • @Vladimir-nw9xd
      @Vladimir-nw9xd 7 місяців тому

      @@stmsolution спасибо, все получилось.🤝

  • @ОГС-у7я
    @ОГС-у7я 4 роки тому +1

    Поставил крест на google, урезают вычислительные мощности, простой скрипт спустя месяц работает час и крашится с отчетом на почту)

    • @stmsolution
      @stmsolution  4 роки тому

      Может, что то не правильно прописано, что вызывает краш. Но сколько пользуюсь скриптами, всегда все ок.

  • @ЛитвинЛюбомир-р1ч
    @ЛитвинЛюбомир-р1ч 4 роки тому +1

    Працював я над проектом, де потрібно було обробити близько 40к записів. Так ось що я скажу, GetValue i SetValue працюють ультраповільно. Правильніше загнати весь діапазон в масив GetValues потім e у циклі сформувати результуючий масив з певною розмірністю та методом SetValues вивести в таблицю. так звернення до таблиці буде 2 рази.

    • @stmsolution
      @stmsolution  4 роки тому

      Согласен,но я ещё не показывал методы обработки массивов, по этому показываю пока так.

  • @pvv_live2226
    @pvv_live2226 4 роки тому

    Добрый день! Как правильно настроить триггеры на отправку данных с разных форм ? Сделал общий триггер OnFormSubmit - но он срабатывает, при заполнении любой из форм. Может ссылочку какую дадите - где этот вопрос освещен.

    • @stmsolution
      @stmsolution  4 роки тому

      В Гугл таблицах такого нет, оно только взаимодействует уже с отправленой формой, запустить её само оно не сможет, только если сделать в самой таблице форму ввода , тогда можно настроит отправку

    • @pvv_live2226
      @pvv_live2226 4 роки тому

      Задал параллельно вопрос на ru.stackoverflow.com:
      У меня разработаны несколько гугл форм ответы на которые отображаются на соответствующих листах в гугл таблицах. Я создал триггер на функцию function onFormSubmit(e) ... мои инструкции ... } для обработки события заполнения формы. Впоследствии осуществляется выполнении дальнейших инструкций при заполнении ответов на любую из разработанных форм. Как правильно выполнить разграничение выполнения кода в зависимости от заполнения ответов по конкретной форме (по ID формы я так понимаю) ? Другими словами мне необходимо выполнить реакцию для каждой формы по отдельности. Пробовал создать несколько функций и для каждой из них написать триггер - однако это не принесло желаемого результата. Подскажите в каком направлении двигаться или может у кого есть ссылка на подробный разбор.
      Мне ответили что можно:
      Очень странно, что вы попали в такую ситуацию, т.к. этого просто не может быть, или вы что-то не так делаете с самого начала.
      Задание триггеров для конкретной Формы
      function createTrigger() {
      ScriptApp.newTrigger('onFormSubmit')
      .forForm('ABC123')
      .onFormSubmit()
      .create();
      }
      Чтение идентификатора Формы при срабатывании события отправки Формы
      function onFormSubmit(e) {
      console.log(e.source.getId());
      }

  • @sunflower-biz-ua
    @sunflower-biz-ua 3 роки тому

    Спасибо большое! Не могу нигде найти как прописать триггер, который будет запускать весь остальной скрипт при добавлении в таблицу новой строки.

    • @stmsolution
      @stmsolution  3 роки тому

      onEdit и прописать условие, при котором будет все срабатывать

    • @sunflower-biz-ua
      @sunflower-biz-ua 3 роки тому

      @@stmsolution Как прописать условие добавления новой строки?

    • @sunflower-biz-ua
      @sunflower-biz-ua 3 роки тому

      @@stmsolution Новая строка добавляется в таблицу в фоном режиме сторонним сервисом. Триггеры на такие события не реагируют :(

  • @Mike-cp5vy
    @Mike-cp5vy 3 роки тому

    Как поставить тригер при открытие листа, не документа, а именно листа?

  • @ПавелМирошниченко-д2у

    А можно в двух словах про кнопку на мобильной версии? Целый день убил не нашел как сделать. Пришлось ставить проверку данных (флажек) и тригер привязывать к изменению ячейки с флажком. Есть ли другой способ?

    • @stmsolution
      @stmsolution  4 роки тому

      Именно так ))только добавьте очищение чекбокса и будет вам кнопка)))

    • @юрийВеретнов-н4з
      @юрийВеретнов-н4з 4 роки тому

      STM Solution не совсем понятно,
      В теле скрипта в конце прописать уничек

    • @stmsolution
      @stmsolution  4 роки тому

      @@юрийВеретнов-н4з sheet.getRange(1,1).unckeck

  • @СергейПёнушкин
    @СергейПёнушкин 4 роки тому +1

    По ходу я что-то пропустил... про функции )))))))

  • @nikolaynikolayidi530
    @nikolaynikolayidi530 4 роки тому

    Я посмотрел про триггеров, спасибо. Но проблема в том, что я хочу, чтобы после нажатия кнопки работал триггер, а не при каждом изменении. Как я могу это сделать?

    • @stmsolution
      @stmsolution  4 роки тому

      Создайте кнопку в меню таблиц при помощи onOpen триггер функции

    • @nikolaynikolayidi530
      @nikolaynikolayidi530 4 роки тому

      @@stmsolution Я сделал это, но другие пользователи не могут добавлять данные в защищенную базу данных. Триггер не работает

  • @BooHurry
    @BooHurry 4 роки тому +1

    Ничего не понятно,но очень интересно, очень)

    • @stmsolution
      @stmsolution  4 роки тому

      Вам рекомендую начать с 1 урока по гугл таблицам;)

    • @СергейПёнушкин
      @СергейПёнушкин 4 роки тому +1

      Как раз наоборот все понятно ))))))

  • @naokinakano7361
    @naokinakano7361 3 роки тому

    Как сделать, чтобы триггер срабатывал только при изменение в одном из столбцов?

    • @stmsolution
      @stmsolution  3 роки тому

      Прописать условие if(sheet.getColumn()==2){ваш скрипт} Посмотрите дальше видео, там есть этот момент

  • @ДмитрийПасечник-ш2ы

    Почему бы не вставлять скрипт с таблицей в описании видео чтоб не писать новичкам всё это руками?

    • @stmsolution
      @stmsolution  4 роки тому +1

      Я думал над этим, но решил все таки оставить как есть, так как хочу что бы изучающий сам всё сделал, а так материал усвоиться лучше.

  • @mikhailivanov7037
    @mikhailivanov7037 4 роки тому

    !

  • @2010Sheb
    @2010Sheb 4 роки тому

    Как привязать триггер к изменению определенной ячейки?

    • @stmsolution
      @stmsolution  4 роки тому

      =if(sheet.getRange(1,1).getValue()="Слово"){}

    • @2010Sheb
      @2010Sheb 4 роки тому

      @STM Solution Это не совсем то что мне нужно, я хочу чтобы скрипт сам запускался при любом изменении значения ячейки А1. Т.е если я ввожу значение 3746:526 в ячейку А1 запускается функция

    • @2010Sheb
      @2010Sheb 4 роки тому

      я разобрался народ, UrlFetchApp не запускается внутри onEdit()

  • @ЕвгенийАнатольевич-ы6т

    Как вам задать видеовопрос?

    • @stmsolution
      @stmsolution  3 роки тому

      В описании Канала все контакты

  • @NonameDiablo
    @NonameDiablo 2 роки тому

    как можно законеrтится с рест апи?

    • @stmsolution
      @stmsolution  2 роки тому

      Это вопрос не на одно видео)) взять ключ предоставляемый сервисом написать скрипт авторизации через urlFetchApp , законнектится и седлать запрос)) это очень коротко и не понятно)) но как говорю про это надо в видео очень подробно рассказывать.

  • @ахуец
    @ахуец 4 роки тому

    Здравствуйте, подскажите, как попарно помножить бесконечно много значений выдаваемых двумя функциями filter?

    • @stmsolution
      @stmsolution  4 роки тому

      В скрипте или в таблице через формулу?

    • @ахуец
      @ахуец 4 роки тому

      @@stmsolution в таблице, формулу, если такая есть..

  • @юрийВеретнов-н4з
    @юрийВеретнов-н4з 4 роки тому +2

    Очень здорово!
    Ждём видео, как отправить событие через копку с телефона

  • @adikol100
    @adikol100 2 роки тому +1

    Спасибо!