@Erdan

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

Добрый день! Есть готовый скрипт который по заданному запросу находит IDчаты с другого листа и отправляет данные с таблицы. Как доработать скрипт чтобы в таблице писать в столбце N "выполнено" (т.е. не адрес IDчата) а скрипт делал выборку по столбцу E? надеюсь понятно обьяснил, сам нуб в программировании, скрипт брал почти готовый чуть подогнал. Кто поможет с доработкой скрипта или предложит другое решение тому отправлю сделаю донат.

ссылка на таблицу https://docs.google.com/spreadsheets/d/1wVi_m8u4TV...

Сам скрипт
function SendTelegram(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var activeCell = ss.getActiveSheet().getActiveCell();
var sheet = ss.getSheetByName("Лист1");
var renge = sheet.getRange("B:B").getValues();
var rowNum = activeCell.getRow();
var lastRowInCol = renge.filter(String).length;
var namesEngineer = sheet.getRange(2, 2, lastRowInCol - 1, 1).getValues();
var nameEngineer = activeCell.getValue();
var namesEngineerArr = namesEngineer.map(function(row){return row[0]});
var rowEngineer = namesEngineerArr.indexOf(nameEngineer) + 2;

var chatID = sheet.getRange(rowEngineer, 3).getValue();

var orderDate = ss.getActiveSheet().getRange(rowNum, 4).getValue();
var orderNumApplicant = ss.getActiveSheet().getRange(rowNum, 6).getValue();
var orderResponsible = ss.getActiveSheet().getRange(rowNum, 10).getValue();
var orderInfo = ss.getActiveSheet().getRange(rowNum, 9).getValue();
var orderResponsiblegroup = ss.getActiveSheet().getRange(rowNum, 11).getValue();
var orderStatus = ss.getActiveSheet().getRange(rowNum, 14).getValue();

var tokken = "7168347020:AAHDb8PhrL7y1vClLSdIcKluVEQv46VO9dk";

var text = encodeURIComponent("По вашей заявке от " + orderDate + "№ " + orderNumApplicant + "\n" + " " + orderInfo + "\n" + "Поступила информация от исполнителя: " + orderResponsible + "\n" + "Подразделение: " + orderResponsiblegroup + "\n" + "Статус: " + orderStatus);
var url = "https://api.telegram.org/bot" + tokken + "/sendMessage?chat_id=" + chatID + "&text=" + text;

messBox(url)

Logger.log(rowEngineer)
}

function messBox(url) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ui = SpreadsheetApp.getUi();

var columStatusDate = ss.getActiveSheet().getActiveCell().getColumn();
var rowStatusDate = ss.getActiveSheet().getActiveCell().getRow();

if(ss.getActiveSheet().getName() == "Лист2")
if(columStatusDate == 14 && rowStatusDate > 2)
var response = ui.alert("Отправить отчет заказчику?", ui.ButtonSet.YES_NO)
if(response == ui.Button.YES) {
var openUrl = UrlFetchApp.fetch(url).getContentText();
}
}

66286ff2a1293031458260.png

662870194d920901277063.png
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Код написан неправильно. Смысл дорабатывать его не вижу.

Решение заключается в том, что можно взять параллельно диапазон такого же размера и обращаться к нему по индексу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы