Перейти к основному содержимому

Память скрипта

«Память» хранит значения между запусками скрипта: номер последнего обработанного заказа, дату последней выгрузки, счётчики, настройки. Значения видны и редактируются на вкладке «Память» редактора.

Два хранилища​

ХранилищеКому доступно
Properties.scriptтолько этому скрипту
Properties.tableвсем скриптам таблицы

Команды у обоих одинаковые.

Вкладка «Память»: память скрипта и память таблицы

Команды​

const last = Properties.script.get("lastOrder"); // строка или null
Properties.script.set("lastOrder", 1052); // строка, число или true/false
Properties.script.setJson("seen", [1, 2, 3]); // объект или массив
const seen = Properties.script.getJson("seen") || [];
Properties.script.has("lastOrder"); // true или false
Properties.script.delete("lastOrder");
Properties.script.keys(); // все ключи
Properties.script.getAll(); // { ключ: значение }
Properties.script.clear(); // удалить всё

Числа и true/false читаются обратно строкой: Properties.script.get("lastOrder") вернёт "1052". Преобразуйте сами: Number(Properties.script.get("lastOrder") || 0).

Пример: обработать только новые заказы​

function main() {
const sheet = Coverse.table.getSheet("Заказы");
const rows = sheet.getDataRange().getValues();
const last = Number(Properties.script.get("lastRow") || 1);

for (let i = last; i < rows.length; i++) {
console.log("Новый заказ:", rows[i][0], rows[i][3]);
}

Properties.script.set("lastRow", rows.length);
}

Значения записываются в «Память» в конце запуска. Если запуск завершился ошибкой, изменения, сделанные до ошибки, тоже сохраняются.

Ограничения​

  • до 100 ключей в каждом хранилище;
  • значение до 9216 байт (около 9 КБ);
  • в «Память» нельзя класть пароли и токены: для них есть Секреты.

Properties.table общая для всех скриптов таблицы: если её меняют несколько скриптов, договоритесь о названиях ключей, чтобы они не перезаписывали значения друг друга.