Другие таблицы и IMPORTRANGE
Скрипт работает со своей таблицей всегда. Чтобы он мог открывать другие таблицы, владелец скрипта добавляет их в список на вкладке «Таблицы» редактора.
Добавить таблицу
- Откройте вкладку «Таблицы» в редакторе скрипта.
- Нажмите «Добавить таблицу».
- Вставьте ссылку из адресной строки или выберите таблицу из своих.
Правила:
- менять список может только владелец скрипта;
- добавить можно только таблицу, которую владелец скрипта может редактировать;
- до 10 таблиц на скрипт;
- если владелец потерял доступ к таблице или её удалили, она остаётся в списке с пометкой «нет доступа», и скрипт её не откроет.

Открыть и прочитать
function main() {
const prices = Coverse.tables.open("0b6f2c1e-5d1a-4c7e-9a3b-2f4d6e8a1c00"); // или ссылка из адресной строки
const rows = prices.getSheet("Цены").getDataRange().getValues();
Coverse.table.getSheet("Заказы").getRange(1, 6, rows.length, rows[0].length).setValues(rows);
}
Coverse.tables.open принимает ссылку или идентификатор таблицы. Coverse.tables.list() возвращает таблицы, которые скрипт может открыть сейчас, с полями id и name.
Что доступно в другой таблице
| Объект | Команды |
|---|---|
| Таблица | getId, getName, getSheets, getSheet, getSheetByName, flush |
| Лист | getName, getRange, getDataRange, getLastRow, getLastColumn, appendRow, appendRows |
| Диапазон | getValues, getValue, getDisplayValues, getDisplayValue, getFormulas, getFormula, setValues, setValue, setFormulas, setFormula, clear |
Оформление, вставка и удаление строк и столбцов, операции с листами, диаграммы, фильтры, примечания, защита и проверка данных в другой таблице недоступны. Диапазон другой таблицы нельзя передать в copyTo: прочитайте значения и запишите их куда нужно.
Пример: журнал в общей таблице.
const journal = Coverse.tables.open("0b6f2c1e-5d1a-4c7e-9a3b-2f4d6e8a1c00").getSheet("Журнал");
journal.appendRow([new Date(), "Отчёт собран"]);
Постоянная связь через IMPORTRANGE
Если данные другой таблицы должны обновляться сами, без запуска скрипта, запишите формулу IMPORTRANGE:
const link = "ССЫЛКА_НА_ТАБЛИЦУ"; // скопируйте из адресной строки таблицы-источника
const sheet = Coverse.table.getSheetByName("Цены") || Coverse.table.insertSheet("Цены");
sheet.getRange("A1").setFormula('=IMPORTRANGE("' + link + '";"Цены!A1:C100")');
Coverse.table.flush();
console.log(sheet.getRange("A1:C3").getValues());
- Таблица-источник должна быть в списке на вкладке «Таблицы».
- Формула должна состоять только из
IMPORTRANGE, вложить её в другую функцию нельзя. - Импортированные значения доступны скрипту сразу после записи.
Как работает IMPORTRANGE в таблицах: IMPORTRANGE: подключение данных между таблицами.
Если код менял другой участник
Доступ к другим таблицам дают права владельца скрипта. Поэтому, если код скрипта последним менял другой участник, доступ к другим таблицам приостанавливается, пока владелец не проверит изменения и не нажмёт «Подтвердить код» (или не сохранит код сам). Своя таблица скрипта при этом работает как обычно.
Лимиты
Лимиты запуска (30 секунд, число запросов) считаются суммарно по всем таблицам. См. Лимиты.