Помощь с кодом

Добрый день, есть код на javascript и таблица привязанная к нему, нужно сделать напоминал ку. Когда запускается код он не видит в таблице строку присвоения. вот результат

!

  1. Никогда не вставляй код скришотом. Вставляй текстом. Тут написано как Как формулировать вопрос, подсвечивать код, благодарить
  2. Когда запускается код он не видит в таблице строку присвоения.
    Напиши в формате “что делаешь, что ожидаешь увидеть” тут описан формат Как формулировать вопрос, подсвечивать код, благодарить

Это все нужно чтобы было проще понять что происходит с кодом и проще помочь. В текущей формулировке никто в здравом уме не возьмется разбираться в том что ты показываешь.


Как мне запустить твой код, что для этого нужно?

1 лайк
function repotr_tg() {
 
   var ss = SpreadsheetApp.getActiveSpreadsheet(); // акцивация таблиц
   var sheet = ss.getSheetByName("Reminder");
   var date_arr =  ss.getRange("A3:M1000").getValues();
   //Logger.log(date_arr[1]);

   
   var now_date = Utilities.formatDate(new Date( ), "GMT+3", "dd.MM.yyyy' 'HH:mm:ss"); // дата которая в данную  секундку

   //var  date_last_notif = Utilities.formatDate(date_arr[1][5], "GMT+3", "dd.MM.yyyy' 'HH:mm:ss");
   //Logger.log(date_last_notif);

  //date_arr.length
  //Logger.log(date_arr.length);
    for (var i = 0; i < 20; i++) { // цикл обработки каждой строки
      
      
      //date_arr[i][8] = Utilities.formatDate(new Date(date_arr[i][8]), "GMT+3", "dd.MM.yyyy' 'HH:mm:ss");
      var ooo1 =  Utilities.formatDate(new Date(date_arr[i][8]), "GMT+3", "dd.MM.yyyy' 'HH:mm:ss");
      /* */
      Logger.log(date_arr[i][6]); 
      Logger.log("Дата когда должно быть оповещение "+ooo1);
      Logger.log("Дата сейчас "+now_date);
      Logger.log(ooo1 < now_date);
      Logger.log(date_arr[i][6] == true);
      
      
      
      
      
      
      
       //Logger.log(ooo1+"<"+now_date+" Условие");
      //Logger.log((ooo1 < now_date));
      
      if(ooo1 < now_date && date_arr[i][6] == true ){
        //Logger.log(ooo1+"<"+now_date+" ОТРАБОТАЛО");
        
        // В этом блоке считаем даты
        var new_date = new Date(); 
        var date_future_notif_new = new Date(new_date.setDate(new_date.getDate()+ date_arr[i][6])); // дата , которая  + какое то количество дней      
        var date_future_notif_new_format = Utilities.formatDate(date_future_notif_new, "GMT+3", "dd.MM.yyyy' 'HH:mm:ss").toString(); // превращаем его в стринг
        var split_date = date_future_notif_new_format.split(" "); // отпиливаем часть в временем     
        var date_future_notif_new_format2 = split_date[0]+" "+date_arr[i][5]; // джойним часть с нужным временем
        
        date_arr[i][8] = date_future_notif_new_format2; // ставим дату следующего нотифа
        date_arr[i][7] = Utilities.formatDate(new Date(), "GMT+3", "dd.MM.yyyy' 'HH:mm:ss"); // ставим дату текущего нотифа  
        
        
      
        
        Logger.log("Отправили уведомлялку");
        // присылаем уведомлялку
         var response = UrlFetchApp.fetch("https://api.telegram.org/bot806432827:AAF0wL7-DYd8SuCZJj6bW520aeVPVW3Ji0o/sendMessage?chat_id="+date_arr[i][3]+"&text="+encodeURIComponent(date_arr[i][1]));
         var products_data = JSON.parse(response);
        
        
        
        ss.getRange("A3:M1000").setValues(date_arr);
        date_arr =  ss.getRange("A3:M1000").getValues();
      } 
      
      return;
      
   }
}

Какую именно строку ты имеешь в виду?

Как выглядит “не видит” (что ты ожидаешь увидеть а что происходит на самом деле).

Как запустить этот код?

Как я понимаю, он должен брать в 5 строке, информацию из таблицы, из-за того, что он этого не делает он и не может выполнить условие в 26 строке
Дальше ломается логика кода и он не хочет выводить нужную информацию, которая заложена в таблице
Не понимаю вопрос: “Как запустить этот код?”

Попробуй поменять то как определяешь границы для диапазона в этой месте ss.getRange("A3:M1000"). Очень возможно что "A3:M1000" - невалидная запись. В документации есть несколько подходов, попробуй этот https://developers.google.com/apps-script/reference/spreadsheet/sheet#getrangerow-column-numrows-numcolumns. Если заработает, значит дело в формате строки.

1 лайк

спасибо, сейчас попробую